packages feed

timberc 1.0.2 → 1.0.3

raw patch · 63 files changed

+11029/−10315 lines, 63 files

Files

LICENSE view
@@ -1,6 +1,6 @@ The Timber compiler <timber-lang.org> -Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> All rights reserved.  Redistribution and use in source and binary forms, with or without
dist/build/timberc/timberc-tmp/Parser.hs view
@@ -134,3322 +134,3336 @@ happyOut21 :: (HappyAbsSyn ) -> ([Constr]) happyOut21 x = unsafeCoerce# x {-# INLINE happyOut21 #-}-happyIn22 :: ([Sig]) -> (HappyAbsSyn )-happyIn22 x = unsafeCoerce# x-{-# INLINE happyIn22 #-}-happyOut22 :: (HappyAbsSyn ) -> ([Sig])-happyOut22 x = unsafeCoerce# x-{-# INLINE happyOut22 #-}-happyIn23 :: ([Sig]) -> (HappyAbsSyn )-happyIn23 x = unsafeCoerce# x-{-# INLINE happyIn23 #-}-happyOut23 :: (HappyAbsSyn ) -> ([Sig])-happyOut23 x = unsafeCoerce# x-{-# INLINE happyOut23 #-}-happyIn24 :: ([Sig]) -> (HappyAbsSyn )-happyIn24 x = unsafeCoerce# x-{-# INLINE happyIn24 #-}-happyOut24 :: (HappyAbsSyn ) -> ([Sig])-happyOut24 x = unsafeCoerce# x-{-# INLINE happyOut24 #-}-happyIn25 :: ([Sig]) -> (HappyAbsSyn )-happyIn25 x = unsafeCoerce# x-{-# INLINE happyIn25 #-}-happyOut25 :: (HappyAbsSyn ) -> ([Sig])-happyOut25 x = unsafeCoerce# x-{-# INLINE happyOut25 #-}-happyIn26 :: (Sig) -> (HappyAbsSyn )-happyIn26 x = unsafeCoerce# x-{-# INLINE happyIn26 #-}-happyOut26 :: (HappyAbsSyn ) -> (Sig)-happyOut26 x = unsafeCoerce# x-{-# INLINE happyOut26 #-}-happyIn27 :: ([Bind]) -> (HappyAbsSyn )-happyIn27 x = unsafeCoerce# x-{-# INLINE happyIn27 #-}-happyOut27 :: (HappyAbsSyn ) -> ([Bind])-happyOut27 x = unsafeCoerce# x-{-# INLINE happyOut27 #-}-happyIn28 :: ([Bind]) -> (HappyAbsSyn )-happyIn28 x = unsafeCoerce# x-{-# INLINE happyIn28 #-}-happyOut28 :: (HappyAbsSyn ) -> ([Bind])-happyOut28 x = unsafeCoerce# x-{-# INLINE happyOut28 #-}-happyIn29 :: (Bind) -> (HappyAbsSyn )-happyIn29 x = unsafeCoerce# x-{-# INLINE happyIn29 #-}-happyOut29 :: (HappyAbsSyn ) -> (Bind)-happyOut29 x = unsafeCoerce# x-{-# INLINE happyOut29 #-}-happyIn30 :: ([Field]) -> (HappyAbsSyn )-happyIn30 x = unsafeCoerce# x-{-# INLINE happyIn30 #-}-happyOut30 :: (HappyAbsSyn ) -> ([Field])-happyOut30 x = unsafeCoerce# x-{-# INLINE happyOut30 #-}-happyIn31 :: (Field) -> (HappyAbsSyn )-happyIn31 x = unsafeCoerce# x-{-# INLINE happyIn31 #-}-happyOut31 :: (HappyAbsSyn ) -> (Field)-happyOut31 x = unsafeCoerce# x-{-# INLINE happyOut31 #-}-happyIn32 :: ([Name]) -> (HappyAbsSyn )-happyIn32 x = unsafeCoerce# x-{-# INLINE happyIn32 #-}-happyOut32 :: (HappyAbsSyn ) -> ([Name])-happyOut32 x = unsafeCoerce# x-{-# INLINE happyOut32 #-}-happyIn33 :: (Lhs) -> (HappyAbsSyn )-happyIn33 x = unsafeCoerce# x-{-# INLINE happyIn33 #-}-happyOut33 :: (HappyAbsSyn ) -> (Lhs)-happyOut33 x = unsafeCoerce# x-{-# INLINE happyOut33 #-}-happyIn34 :: (Rhs Exp) -> (HappyAbsSyn )-happyIn34 x = unsafeCoerce# x-{-# INLINE happyIn34 #-}-happyOut34 :: (HappyAbsSyn ) -> (Rhs Exp)-happyOut34 x = unsafeCoerce# x-{-# INLINE happyOut34 #-}-happyIn35 :: ([GExp Exp]) -> (HappyAbsSyn )-happyIn35 x = unsafeCoerce# x-{-# INLINE happyIn35 #-}-happyOut35 :: (HappyAbsSyn ) -> ([GExp Exp])-happyOut35 x = unsafeCoerce# x-{-# INLINE happyOut35 #-}-happyIn36 :: (GExp Exp) -> (HappyAbsSyn )-happyIn36 x = unsafeCoerce# x-{-# INLINE happyIn36 #-}-happyOut36 :: (HappyAbsSyn ) -> (GExp Exp)-happyOut36 x = unsafeCoerce# x-{-# INLINE happyOut36 #-}-happyIn37 :: (Type) -> (HappyAbsSyn )-happyIn37 x = unsafeCoerce# x-{-# INLINE happyIn37 #-}-happyOut37 :: (HappyAbsSyn ) -> (Type)-happyOut37 x = unsafeCoerce# x-{-# INLINE happyOut37 #-}-happyIn38 :: (Type) -> (HappyAbsSyn )-happyIn38 x = unsafeCoerce# x-{-# INLINE happyIn38 #-}-happyOut38 :: (HappyAbsSyn ) -> (Type)-happyOut38 x = unsafeCoerce# x-{-# INLINE happyOut38 #-}-happyIn39 :: ([Type]) -> (HappyAbsSyn )-happyIn39 x = unsafeCoerce# x-{-# INLINE happyIn39 #-}-happyOut39 :: (HappyAbsSyn ) -> ([Type])-happyOut39 x = unsafeCoerce# x-{-# INLINE happyOut39 #-}-happyIn40 :: (Type) -> (HappyAbsSyn )-happyIn40 x = unsafeCoerce# x-{-# INLINE happyIn40 #-}-happyOut40 :: (HappyAbsSyn ) -> (Type)-happyOut40 x = unsafeCoerce# x-{-# INLINE happyOut40 #-}-happyIn41 :: (Type) -> (HappyAbsSyn )-happyIn41 x = unsafeCoerce# x-{-# INLINE happyIn41 #-}-happyOut41 :: (HappyAbsSyn ) -> (Type)-happyOut41 x = unsafeCoerce# x-{-# INLINE happyOut41 #-}-happyIn42 :: ([Type]) -> (HappyAbsSyn )-happyIn42 x = unsafeCoerce# x-{-# INLINE happyIn42 #-}-happyOut42 :: (HappyAbsSyn ) -> ([Type])-happyOut42 x = unsafeCoerce# x-{-# INLINE happyOut42 #-}-happyIn43 :: (Int) -> (HappyAbsSyn )-happyIn43 x = unsafeCoerce# x-{-# INLINE happyIn43 #-}-happyOut43 :: (HappyAbsSyn ) -> (Int)-happyOut43 x = unsafeCoerce# x-{-# INLINE happyOut43 #-}-happyIn44 :: ([Pred]) -> (HappyAbsSyn )-happyIn44 x = unsafeCoerce# x-{-# INLINE happyIn44 #-}-happyOut44 :: (HappyAbsSyn ) -> ([Pred])-happyOut44 x = unsafeCoerce# x-{-# INLINE happyOut44 #-}-happyIn45 :: (Pred) -> (HappyAbsSyn )-happyIn45 x = unsafeCoerce# x-{-# INLINE happyIn45 #-}-happyOut45 :: (HappyAbsSyn ) -> (Pred)-happyOut45 x = unsafeCoerce# x-{-# INLINE happyOut45 #-}-happyIn46 :: (Kind) -> (HappyAbsSyn )-happyIn46 x = unsafeCoerce# x-{-# INLINE happyIn46 #-}-happyOut46 :: (HappyAbsSyn ) -> (Kind)-happyOut46 x = unsafeCoerce# x-{-# INLINE happyOut46 #-}-happyIn47 :: (Kind) -> (HappyAbsSyn )-happyIn47 x = unsafeCoerce# x-{-# INLINE happyIn47 #-}-happyOut47 :: (HappyAbsSyn ) -> (Kind)-happyOut47 x = unsafeCoerce# x-{-# INLINE happyOut47 #-}-happyIn48 :: (Exp) -> (HappyAbsSyn )-happyIn48 x = unsafeCoerce# x-{-# INLINE happyIn48 #-}-happyOut48 :: (HappyAbsSyn ) -> (Exp)-happyOut48 x = unsafeCoerce# x-{-# INLINE happyOut48 #-}-happyIn49 :: (Exp) -> (HappyAbsSyn )-happyIn49 x = unsafeCoerce# x-{-# INLINE happyIn49 #-}-happyOut49 :: (HappyAbsSyn ) -> (Exp)-happyOut49 x = unsafeCoerce# x-{-# INLINE happyOut49 #-}-happyIn50 :: (Exp) -> (HappyAbsSyn )-happyIn50 x = unsafeCoerce# x-{-# INLINE happyIn50 #-}-happyOut50 :: (HappyAbsSyn ) -> (Exp)-happyOut50 x = unsafeCoerce# x-{-# INLINE happyOut50 #-}-happyIn51 :: (Exp) -> (HappyAbsSyn )-happyIn51 x = unsafeCoerce# x-{-# INLINE happyIn51 #-}-happyOut51 :: (HappyAbsSyn ) -> (Exp)-happyOut51 x = unsafeCoerce# x-{-# INLINE happyOut51 #-}-happyIn52 :: (OpExp) -> (HappyAbsSyn )-happyIn52 x = unsafeCoerce# x-{-# INLINE happyIn52 #-}-happyOut52 :: (HappyAbsSyn ) -> (OpExp)-happyOut52 x = unsafeCoerce# x-{-# INLINE happyOut52 #-}-happyIn53 :: (OpExp) -> (HappyAbsSyn )-happyIn53 x = unsafeCoerce# x-{-# INLINE happyIn53 #-}-happyOut53 :: (HappyAbsSyn ) -> (OpExp)-happyOut53 x = unsafeCoerce# x-{-# INLINE happyOut53 #-}-happyIn54 :: (Exp) -> (HappyAbsSyn )-happyIn54 x = unsafeCoerce# x-{-# INLINE happyIn54 #-}-happyOut54 :: (HappyAbsSyn ) -> (Exp)-happyOut54 x = unsafeCoerce# x-{-# INLINE happyOut54 #-}-happyIn55 :: (Exp) -> (HappyAbsSyn )-happyIn55 x = unsafeCoerce# x-{-# INLINE happyIn55 #-}-happyOut55 :: (HappyAbsSyn ) -> (Exp)-happyOut55 x = unsafeCoerce# x-{-# INLINE happyOut55 #-}-happyIn56 :: (Exp) -> (HappyAbsSyn )-happyIn56 x = unsafeCoerce# x-{-# INLINE happyIn56 #-}-happyOut56 :: (HappyAbsSyn ) -> (Exp)-happyOut56 x = unsafeCoerce# x-{-# INLINE happyOut56 #-}-happyIn57 :: (Exp) -> (HappyAbsSyn )-happyIn57 x = unsafeCoerce# x-{-# INLINE happyIn57 #-}-happyOut57 :: (HappyAbsSyn ) -> (Exp)-happyOut57 x = unsafeCoerce# x-{-# INLINE happyOut57 #-}-happyIn58 :: (Exp) -> (HappyAbsSyn )-happyIn58 x = unsafeCoerce# x-{-# INLINE happyIn58 #-}-happyOut58 :: (HappyAbsSyn ) -> (Exp)-happyOut58 x = unsafeCoerce# x-{-# INLINE happyOut58 #-}-happyIn59 :: (Exp) -> (HappyAbsSyn )-happyIn59 x = unsafeCoerce# x-{-# INLINE happyIn59 #-}-happyOut59 :: (HappyAbsSyn ) -> (Exp)-happyOut59 x = unsafeCoerce# x-{-# INLINE happyOut59 #-}-happyIn60 :: (Exp) -> (HappyAbsSyn )-happyIn60 x = unsafeCoerce# x-{-# INLINE happyIn60 #-}-happyOut60 :: (HappyAbsSyn ) -> (Exp)-happyOut60 x = unsafeCoerce# x-{-# INLINE happyOut60 #-}-happyIn61 :: (Lit) -> (HappyAbsSyn )-happyIn61 x = unsafeCoerce# x-{-# INLINE happyIn61 #-}-happyOut61 :: (HappyAbsSyn ) -> (Lit)-happyOut61 x = unsafeCoerce# x-{-# INLINE happyOut61 #-}-happyIn62 :: (Exp) -> (HappyAbsSyn )-happyIn62 x = unsafeCoerce# x-{-# INLINE happyIn62 #-}-happyOut62 :: (HappyAbsSyn ) -> (Exp)-happyOut62 x = unsafeCoerce# x-{-# INLINE happyOut62 #-}-happyIn63 :: ([Exp]) -> (HappyAbsSyn )-happyIn63 x = unsafeCoerce# x-{-# INLINE happyIn63 #-}-happyOut63 :: (HappyAbsSyn ) -> ([Exp])-happyOut63 x = unsafeCoerce# x-{-# INLINE happyOut63 #-}-happyIn64 :: ([Qual]) -> (HappyAbsSyn )-happyIn64 x = unsafeCoerce# x-{-# INLINE happyIn64 #-}-happyOut64 :: (HappyAbsSyn ) -> ([Qual])-happyOut64 x = unsafeCoerce# x-{-# INLINE happyOut64 #-}-happyIn65 :: (Qual) -> (HappyAbsSyn )-happyIn65 x = unsafeCoerce# x-{-# INLINE happyIn65 #-}-happyOut65 :: (HappyAbsSyn ) -> (Qual)-happyOut65 x = unsafeCoerce# x-{-# INLINE happyOut65 #-}-happyIn66 :: ([Alt Exp]) -> (HappyAbsSyn )-happyIn66 x = unsafeCoerce# x-{-# INLINE happyIn66 #-}-happyOut66 :: (HappyAbsSyn ) -> ([Alt Exp])-happyOut66 x = unsafeCoerce# x-{-# INLINE happyOut66 #-}-happyIn67 :: ([Alt Exp]) -> (HappyAbsSyn )-happyIn67 x = unsafeCoerce# x-{-# INLINE happyIn67 #-}-happyOut67 :: (HappyAbsSyn ) -> ([Alt Exp])-happyOut67 x = unsafeCoerce# x-{-# INLINE happyOut67 #-}-happyIn68 :: (Alt Exp) -> (HappyAbsSyn )-happyIn68 x = unsafeCoerce# x-{-# INLINE happyIn68 #-}-happyOut68 :: (HappyAbsSyn ) -> (Alt Exp)-happyOut68 x = unsafeCoerce# x-{-# INLINE happyOut68 #-}-happyIn69 :: (Rhs Exp) -> (HappyAbsSyn )-happyIn69 x = unsafeCoerce# x-{-# INLINE happyIn69 #-}-happyOut69 :: (HappyAbsSyn ) -> (Rhs Exp)-happyOut69 x = unsafeCoerce# x-{-# INLINE happyOut69 #-}-happyIn70 :: ([GExp Exp]) -> (HappyAbsSyn )-happyIn70 x = unsafeCoerce# x-{-# INLINE happyIn70 #-}-happyOut70 :: (HappyAbsSyn ) -> ([GExp Exp])-happyOut70 x = unsafeCoerce# x-{-# INLINE happyOut70 #-}-happyIn71 :: (GExp Exp) -> (HappyAbsSyn )-happyIn71 x = unsafeCoerce# x-{-# INLINE happyIn71 #-}-happyOut71 :: (HappyAbsSyn ) -> (GExp Exp)-happyOut71 x = unsafeCoerce# x-{-# INLINE happyOut71 #-}-happyIn72 :: ([Alt [Stmt]]) -> (HappyAbsSyn )-happyIn72 x = unsafeCoerce# x-{-# INLINE happyIn72 #-}-happyOut72 :: (HappyAbsSyn ) -> ([Alt [Stmt]])-happyOut72 x = unsafeCoerce# x-{-# INLINE happyOut72 #-}-happyIn73 :: ([Alt [Stmt]]) -> (HappyAbsSyn )-happyIn73 x = unsafeCoerce# x-{-# INLINE happyIn73 #-}-happyOut73 :: (HappyAbsSyn ) -> ([Alt [Stmt]])-happyOut73 x = unsafeCoerce# x-{-# INLINE happyOut73 #-}-happyIn74 :: (Alt [Stmt]) -> (HappyAbsSyn )-happyIn74 x = unsafeCoerce# x-{-# INLINE happyIn74 #-}-happyOut74 :: (HappyAbsSyn ) -> (Alt [Stmt])-happyOut74 x = unsafeCoerce# x-{-# INLINE happyOut74 #-}-happyIn75 :: (Rhs [Stmt]) -> (HappyAbsSyn )-happyIn75 x = unsafeCoerce# x-{-# INLINE happyIn75 #-}-happyOut75 :: (HappyAbsSyn ) -> (Rhs [Stmt])-happyOut75 x = unsafeCoerce# x-{-# INLINE happyOut75 #-}-happyIn76 :: ([GExp [Stmt]]) -> (HappyAbsSyn )-happyIn76 x = unsafeCoerce# x-{-# INLINE happyIn76 #-}-happyOut76 :: (HappyAbsSyn ) -> ([GExp [Stmt]])-happyOut76 x = unsafeCoerce# x-{-# INLINE happyOut76 #-}-happyIn77 :: (GExp [Stmt]) -> (HappyAbsSyn )-happyIn77 x = unsafeCoerce# x-{-# INLINE happyIn77 #-}-happyOut77 :: (HappyAbsSyn ) -> (GExp [Stmt])-happyOut77 x = unsafeCoerce# x-{-# INLINE happyOut77 #-}-happyIn78 :: ([Stmt]) -> (HappyAbsSyn )-happyIn78 x = unsafeCoerce# x-{-# INLINE happyIn78 #-}-happyOut78 :: (HappyAbsSyn ) -> ([Stmt])-happyOut78 x = unsafeCoerce# x-{-# INLINE happyOut78 #-}-happyIn79 :: ([Stmt]) -> (HappyAbsSyn )-happyIn79 x = unsafeCoerce# x-{-# INLINE happyIn79 #-}-happyOut79 :: (HappyAbsSyn ) -> ([Stmt])-happyOut79 x = unsafeCoerce# x-{-# INLINE happyOut79 #-}-happyIn80 :: ([Stmt]) -> (HappyAbsSyn )-happyIn80 x = unsafeCoerce# x-{-# INLINE happyIn80 #-}-happyOut80 :: (HappyAbsSyn ) -> ([Stmt])-happyOut80 x = unsafeCoerce# x-{-# INLINE happyOut80 #-}-happyIn81 :: (Stmt) -> (HappyAbsSyn )-happyIn81 x = unsafeCoerce# x-{-# INLINE happyIn81 #-}-happyOut81 :: (HappyAbsSyn ) -> (Stmt)-happyOut81 x = unsafeCoerce# x-{-# INLINE happyOut81 #-}-happyIn82 :: (Exp) -> (HappyAbsSyn )-happyIn82 x = unsafeCoerce# x-{-# INLINE happyIn82 #-}-happyOut82 :: (HappyAbsSyn ) -> (Exp)-happyOut82 x = unsafeCoerce# x-{-# INLINE happyOut82 #-}-happyIn83 :: (Exp) -> (HappyAbsSyn )-happyIn83 x = unsafeCoerce# x-{-# INLINE happyIn83 #-}-happyOut83 :: (HappyAbsSyn ) -> (Exp)-happyOut83 x = unsafeCoerce# x-{-# INLINE happyOut83 #-}-happyIn84 :: (Exp) -> (HappyAbsSyn )-happyIn84 x = unsafeCoerce# x-{-# INLINE happyIn84 #-}-happyOut84 :: (HappyAbsSyn ) -> (Exp)-happyOut84 x = unsafeCoerce# x-{-# INLINE happyOut84 #-}-happyIn85 :: (Exp) -> (HappyAbsSyn )-happyIn85 x = unsafeCoerce# x-{-# INLINE happyIn85 #-}-happyOut85 :: (HappyAbsSyn ) -> (Exp)-happyOut85 x = unsafeCoerce# x-{-# INLINE happyOut85 #-}-happyIn86 :: (OpExp) -> (HappyAbsSyn )-happyIn86 x = unsafeCoerce# x-{-# INLINE happyIn86 #-}-happyOut86 :: (HappyAbsSyn ) -> (OpExp)-happyOut86 x = unsafeCoerce# x-{-# INLINE happyOut86 #-}-happyIn87 :: (OpExp) -> (HappyAbsSyn )-happyIn87 x = unsafeCoerce# x-{-# INLINE happyIn87 #-}-happyOut87 :: (HappyAbsSyn ) -> (OpExp)-happyOut87 x = unsafeCoerce# x-{-# INLINE happyOut87 #-}-happyIn88 :: (Pat) -> (HappyAbsSyn )-happyIn88 x = unsafeCoerce# x-{-# INLINE happyIn88 #-}-happyOut88 :: (HappyAbsSyn ) -> (Pat)-happyOut88 x = unsafeCoerce# x-{-# INLINE happyOut88 #-}-happyIn89 :: ([Pat]) -> (HappyAbsSyn )-happyIn89 x = unsafeCoerce# x-{-# INLINE happyIn89 #-}-happyOut89 :: (HappyAbsSyn ) -> ([Pat])-happyOut89 x = unsafeCoerce# x-{-# INLINE happyOut89 #-}-happyIn90 :: (Pat) -> (HappyAbsSyn )-happyIn90 x = unsafeCoerce# x-{-# INLINE happyIn90 #-}-happyOut90 :: (HappyAbsSyn ) -> (Pat)-happyOut90 x = unsafeCoerce# x-{-# INLINE happyOut90 #-}-happyIn91 :: (Name) -> (HappyAbsSyn )-happyIn91 x = unsafeCoerce# x-{-# INLINE happyIn91 #-}-happyOut91 :: (HappyAbsSyn ) -> (Name)-happyOut91 x = unsafeCoerce# x-{-# INLINE happyOut91 #-}-happyIn92 :: (Name) -> (HappyAbsSyn )-happyIn92 x = unsafeCoerce# x-{-# INLINE happyIn92 #-}-happyOut92 :: (HappyAbsSyn ) -> (Name)-happyOut92 x = unsafeCoerce# x-{-# INLINE happyOut92 #-}-happyIn93 :: (Name) -> (HappyAbsSyn )-happyIn93 x = unsafeCoerce# x-{-# INLINE happyIn93 #-}-happyOut93 :: (HappyAbsSyn ) -> (Name)-happyOut93 x = unsafeCoerce# x-{-# INLINE happyOut93 #-}-happyIn94 :: (Name) -> (HappyAbsSyn )-happyIn94 x = unsafeCoerce# x-{-# INLINE happyIn94 #-}-happyOut94 :: (HappyAbsSyn ) -> (Name)-happyOut94 x = unsafeCoerce# x-{-# INLINE happyOut94 #-}-happyIn95 :: (Name) -> (HappyAbsSyn )-happyIn95 x = unsafeCoerce# x-{-# INLINE happyIn95 #-}-happyOut95 :: (HappyAbsSyn ) -> (Name)-happyOut95 x = unsafeCoerce# x-{-# INLINE happyOut95 #-}-happyIn96 :: (Name) -> (HappyAbsSyn )-happyIn96 x = unsafeCoerce# x-{-# INLINE happyIn96 #-}-happyOut96 :: (HappyAbsSyn ) -> (Name)-happyOut96 x = unsafeCoerce# x-{-# INLINE happyOut96 #-}-happyIn97 :: (Name) -> (HappyAbsSyn )-happyIn97 x = unsafeCoerce# x-{-# INLINE happyIn97 #-}-happyOut97 :: (HappyAbsSyn ) -> (Name)-happyOut97 x = unsafeCoerce# x-{-# INLINE happyOut97 #-}-happyIn98 :: (Name) -> (HappyAbsSyn )-happyIn98 x = unsafeCoerce# x-{-# INLINE happyIn98 #-}-happyOut98 :: (HappyAbsSyn ) -> (Name)-happyOut98 x = unsafeCoerce# x-{-# INLINE happyOut98 #-}-happyIn99 :: (Name) -> (HappyAbsSyn )-happyIn99 x = unsafeCoerce# x-{-# INLINE happyIn99 #-}-happyOut99 :: (HappyAbsSyn ) -> (Name)-happyOut99 x = unsafeCoerce# x-{-# INLINE happyOut99 #-}-happyIn100 :: (Name) -> (HappyAbsSyn )-happyIn100 x = unsafeCoerce# x-{-# INLINE happyIn100 #-}-happyOut100 :: (HappyAbsSyn ) -> (Name)-happyOut100 x = unsafeCoerce# x-{-# INLINE happyOut100 #-}-happyIn101 :: (Name) -> (HappyAbsSyn )-happyIn101 x = unsafeCoerce# x-{-# INLINE happyIn101 #-}-happyOut101 :: (HappyAbsSyn ) -> (Name)-happyOut101 x = unsafeCoerce# x-{-# INLINE happyOut101 #-}-happyIn102 :: ((String,String)) -> (HappyAbsSyn )-happyIn102 x = unsafeCoerce# x-{-# INLINE happyIn102 #-}-happyOut102 :: (HappyAbsSyn ) -> ((String,String))-happyOut102 x = unsafeCoerce# x-{-# INLINE happyOut102 #-}-happyIn103 :: ((String,String)) -> (HappyAbsSyn )-happyIn103 x = unsafeCoerce# x-{-# INLINE happyIn103 #-}-happyOut103 :: (HappyAbsSyn ) -> ((String,String))-happyOut103 x = unsafeCoerce# x-{-# INLINE happyOut103 #-}-happyIn104 :: (()) -> (HappyAbsSyn )-happyIn104 x = unsafeCoerce# x-{-# INLINE happyIn104 #-}-happyOut104 :: (HappyAbsSyn ) -> (())-happyOut104 x = unsafeCoerce# x-{-# INLINE happyOut104 #-}-happyIn105 :: (()) -> (HappyAbsSyn )-happyIn105 x = unsafeCoerce# x-{-# INLINE happyIn105 #-}-happyOut105 :: (HappyAbsSyn ) -> (())-happyOut105 x = unsafeCoerce# x-{-# INLINE happyOut105 #-}-happyIn106 :: (()) -> (HappyAbsSyn )-happyIn106 x = unsafeCoerce# x-{-# INLINE happyIn106 #-}-happyOut106 :: (HappyAbsSyn ) -> (())-happyOut106 x = unsafeCoerce# x-{-# INLINE happyOut106 #-}-happyIn107 :: ((Int,Int)) -> (HappyAbsSyn )-happyIn107 x = unsafeCoerce# x-{-# INLINE happyIn107 #-}-happyOut107 :: (HappyAbsSyn ) -> ((Int,Int))-happyOut107 x = unsafeCoerce# x-{-# INLINE happyOut107 #-}-happyInTok :: (Token) -> (HappyAbsSyn )-happyInTok x = unsafeCoerce# x-{-# INLINE happyInTok #-}-happyOutTok :: (HappyAbsSyn ) -> (Token)-happyOutTok x = unsafeCoerce# x-{-# INLINE happyOutTok #-}---happyActOffsets :: HappyAddr-happyActOffsets = HappyA# "\xbe\x04\xbe\x04\x00\x00\xaf\x04\xae\x04\xe7\x04\x00\x00\xda\x04\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x06\xd9\x04\xbc\x01\x00\x00\x4f\x02\x31\x03\xd0\x01\x00\x00\x39\x07\xcb\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x01\x00\x00\x35\x02\xd4\x04\x00\x00\xc8\x04\x88\x01\xb7\x03\x1c\x07\xf1\x07\x00\x00\x06\x03\x06\x03\x06\x03\x00\x00\xd1\x04\x00\x00\xd3\x04\xcd\x04\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x06\xb6\x02\x00\x00\xc7\x04\x00\x00\x00\x00\x0f\x00\x2d\x01\x00\x00\x00\x00\xab\x04\x12\x0b\x00\x00\xbd\x04\xb5\x04\xb1\x04\x00\x00\x9e\x01\x00\x00\x00\x00\xbb\x04\x00\x00\x00\x00\xd5\x07\x00\x00\x00\x00\x00\x00\x66\x03\xd5\x07\x84\x04\x08\x01\x00\x00\x6d\x01\x00\x00\x81\x04\x00\x00\xd0\x01\x00\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x86\x04\x83\x04\x2f\x0b\x00\x00\x0d\x08\x0d\x08\x89\x04\x0a\x03\xa2\x02\x53\x0b\xa1\x02\x00\x00\x06\x03\x88\x04\x7e\x04\x00\x00\x7a\x04\x91\x07\x24\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x04\x74\x04\x74\x04\x74\x04\xa2\x01\x00\x00\x00\x00\x00\x00\xff\x0a\x00\x00\x00\x00\x00\x00\x7b\x04\x00\x00\x00\x00\x6d\x04\x5b\x04\xf7\x0a\x3a\x04\x52\x04\x00\x00\x0d\x08\xec\x0a\x37\x04\xbd\x02\x0e\x04\x00\x00\xed\x06\x00\x00\x00\x00\x00\x00\x00\x00\x32\x04\x00\x00\x20\x04\x14\x04\xe9\x02\x00\x00\x00\x00\x00\x00\x7c\x03\xf6\x02\x00\x00\x00\x00\x2f\x04\x36\x02\x00\x00\x21\x04\x1f\x04\x1d\x04\x00\x00\x00\x00\x1d\x04\x00\x00\x00\x00\xb7\x03\x00\x00\x16\x04\x15\x04\x00\x00\x00\x00\x00\x00\xb7\x03\x10\x01\x00\x00\x02\x04\x00\x00\xa2\x01\x00\x00\x00\x00\x57\x03\x00\x00\x00\x00\x00\x00\x00\x00\x11\x04\x05\x04\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x02\x00\x00\x0d\x08\x47\x0a\x00\x00\x0d\x08\x00\x00\x00\x00\x00\x00\xb3\x03\xe4\x03\x76\x02\x00\x00\x6f\x0a\x4c\x0a\xbd\x02\x0d\x08\x0d\x08\xec\x0a\x00\x00\x0d\x08\x00\x00\x00\x00\x81\x02\xd6\x03\x58\x01\x00\x00\x0b\x00\xbd\x02\x00\x00\xda\x0a\x48\x01\x00\x00\xfe\x01\x95\x02\x0d\x08\x1c\x00\xcf\x03\x09\x00\xb5\x03\x00\x00\xac\x03\x00\x00\xbd\x02\xd7\x03\xbd\x02\x00\x00\xa9\x03\x00\x00\xa4\x03\xbd\x02\x00\x00\xda\x0a\x93\x02\x00\x00\x7d\x00\xd3\x03\xbd\x02\x00\x00\xd3\x03\x59\x02\xc6\x03\xbd\x02\x00\x00\xc7\x03\x00\x00\xc0\x03\xeb\x01\x00\x00\x00\x00\x2f\x0b\x00\x00\x00\x00\x2f\x0b\x3b\x02\x00\x00\xb6\x03\x00\x00\xc8\x03\x0d\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x06\xb8\x01\x49\x02\x81\x00\xc4\x03\x00\x00\x00\x00\x58\x02\xe4\x01\x0d\x08\xc5\x03\x0d\x08\xcf\x0a\x0d\x08\x0d\x08\x0d\x08\xbf\x03\xa2\x01\x32\x00\x00\x00\xbb\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x03\xc7\x0a\xb4\x0a\x0d\x08\xb1\x03\x00\x00\xb9\x03\xcd\x00\xec\x01\xa6\x00\xb8\x03\x8d\x01\x00\x00\x00\x00\xbd\x02\xbd\x02\xbd\x02\x00\x00\xed\x06\x00\x00\xed\x06\x37\x01\x00\x00\xae\x03\x00\x00\xa6\x03\xeb\x01\xeb\x01\x00\x00\x00\x00\xbd\x02\xbd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x7f\x03\x00\x00\x00\x00\x6b\x03\x00\x00\x59\x03\x38\x00\x52\x03\x00\x00\x58\x03\x0d\x08\x0d\x08\xab\x06\x00\x00\x4a\x03\xb6\x07\xbd\x02\x75\x03\x5b\x03\x00\x00\xb2\x0a\x00\x00\x0d\x08\x00\x00\x72\x03\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x08\x00\x00\x61\x03\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x41\x03\x68\x03\x00\x00\x00\x00\x00\x00\x00\x00\x67\x03\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x5e\x03\x00\x00\xd8\x01\x81\x00\x5c\x03\x00\x00\xa3\x01\x00\x00\x00\x00\x00\x00\x4b\x03\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x0a\x1e\x01\x00\x00\x00\x00\xf9\x01\x0d\x08\x00\x00\x00\x00\x0d\x08\x00\x00\x00\x00\x00\x00\x4f\x03\x40\x03\x40\x03\x40\x03\x40\x03\x00\x00\x39\x03\x00\x00\x00\x00\xa2\x01\xbd\x02\x00\x00\x9a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x0a\x00\x00\x00\x00\x00\x00\xfc\x02\xf9\x02\x00\x00\x9f\x0a\x0d\x08\x00\x00\x97\x0a\x61\x01\xbd\x02\xbd\x02\x21\x03\x00\x00\x0b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\x00\x00\x04\x03\x97\x0a\x04\x01\x00\x00\xfc\x00\xc7\x02\xee\x02\x00\x00\x8c\x0a\xe8\x02\x00\x00\x74\x0a\x74\x00\x00\x00\x0d\x08\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\xdf\x02\x00\x00\xd9\x02\x00\x00\x00\x00"#--happyGotoOffsets :: HappyAddr-happyGotoOffsets = HappyA# "\xe6\x02\x00\x00\xb7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xcb\x02\x80\x02\xc2\x02\x37\x00\x00\x00\x3d\x02\x00\x00\x00\x00\x3e\x03\x73\x04\x00\x00\xf4\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x09\xf4\x02\x0e\x03\x00\x00\x43\x09\x6e\x09\x98\x08\xb3\x01\x05\x00\x65\x01\x1b\x00\x1a\x00\x40\x01\xbb\xff\xfc\xff\xb7\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x02\x00\x00\xaa\x02\x8d\x02\x00\x00\x26\x01\x2e\x02\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x36\x00\x2d\x02\x7d\x02\x46\x06\x00\x00\x00\x00\x00\x00\x00\x00\x38\x06\x00\x00\xea\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x04\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x07\x20\x02\x2a\x06\xee\x05\x19\x00\x00\x00\x00\x00\xc3\x03\x00\x00\x00\x00\xaf\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x01\x59\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x7b\x00\x73\x00\x72\x00\x23\x02\x13\x02\x00\x00\x00\x00\xd2\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x01\xe9\x00\x00\x00\xc5\x08\x00\x00\x64\x02\x00\x00\xe0\x05\x30\x09\x8c\x00\x85\x02\x77\x02\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\x00\x00\x00\x00\x00\x00\xe2\xff\x00\x00\x00\x00\x00\x00\x3f\x01\x7b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x6b\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x08\xb9\x00\x00\x00\x00\x00\x00\x00\x15\x02\x00\x00\x00\x00\xbd\x01\xf4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x02\x00\x00\xd2\x05\x6d\x07\x00\x00\x96\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x00\x00\x6d\x07\x37\x07\xb7\x02\x88\x05\x7a\x05\x1f\x09\x00\x00\x3e\x05\x00\x00\x00\x00\x0a\x00\x1d\x00\xd2\x01\x00\x00\x00\x00\x6a\x02\x9d\x01\x1c\x01\xca\x01\x00\x00\x00\x00\x18\x03\x30\x05\x02\x00\x94\x00\xfb\xff\x29\x02\x00\x00\xf3\x01\x00\x00\x0e\x02\xf9\xff\x5a\x02\x00\x00\xee\x01\x00\x00\x00\x00\x4d\x02\x00\x00\x63\x01\x00\x00\x00\x00\x15\x03\xc1\xff\x3c\x02\x00\x00\x39\x00\x00\x00\xed\x01\x04\x02\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\x00\x00\x00\x00\x2d\x07\x00\x00\x00\x00\x23\x07\x00\x00\x00\x00\x00\x00\x00\x00\xd3\xff\x22\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00\x12\x03\x28\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x04\x62\x00\xd8\x04\xf2\x08\xca\x04\x8e\x04\x80\x04\x00\x00\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x09\x9b\x09\x72\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x02\x89\x02\x9b\x02\x00\x00\xa7\x00\xf1\x00\x6f\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\xe2\xff\x00\x00\x00\x00\xb3\x02\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x04\x28\x04\xea\x01\x00\x00\x00\x00\x1a\x04\x32\x02\x00\x00\x00\x00\x00\x00\xe1\x08\xdc\x00\xde\x03\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x03\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xff\x00\x00\x00\x00\xd3\x00\xaf\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x08\x6e\x00\x00\x00\x00\x00\x8e\x01\xc2\x03\x00\x00\x00\x00\x86\x03\x00\x00\x00\x00\x00\x00\xd5\xff\x52\x00\x50\x00\xdc\xff\xd9\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\xa9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x08\x54\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x5a\x08\x78\x03\x00\x00\x8a\x09\x00\x00\x22\x02\x29\x01\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x2d\x08\xe6\xff\x00\x00\x4e\x02\x00\x00\x49\x00\x00\x00\x00\x08\xcd\xff\x00\x00\x5d\x09\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\xc4\xff\x00\x00\x00\x00"#--happyDefActions :: HappyAddr-happyDefActions = HappyA# "\x00\x00\x00\x00\xf1\xfe\x00\x00\x00\x00\x00\x00\xff\xfe\xf2\xfe\xfe\xff\xf6\xff\xf3\xfe\xf6\xff\xf1\xfe\x00\x00\x00\x00\xf2\xff\x00\x00\x00\x00\x20\xff\x1e\xff\x75\xff\x6d\xff\x6b\xff\x67\xff\xba\xff\x23\xff\x22\xff\x21\xff\x1f\xff\x6a\xff\x68\xff\x0f\xff\x0d\xff\x00\x00\xf1\xfe\xf1\xfe\xf1\xfe\x69\xff\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf2\xfe\xf1\xfe\xf1\xfe\xf2\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x00\x00\xf4\xff\xeb\xff\xd9\xff\x05\xff\x04\xff\x00\x00\xdb\xff\xdb\xff\x00\x00\xf1\xfe\xf3\xfe\xe7\xff\x00\x00\x05\xff\x04\xff\x00\x00\xf5\xff\xe6\xff\xf1\xfe\xf3\xfe\xdb\xff\xf1\xfe\x6a\xff\x68\xff\x0d\xff\x00\x00\xf1\xfe\x10\xff\xf1\xfe\x11\xff\x59\xff\x94\xff\x92\xff\x91\xff\x90\xff\x8e\xff\x8f\xff\x7f\xff\x8d\xff\x73\xff\x00\x00\x58\xff\xf1\xfe\xf3\xfe\xf1\xfe\xf1\xfe\xf2\xfe\x00\x00\x00\x00\xf1\xfe\x00\x00\x01\xff\xf1\xfe\x00\x00\x09\xff\xfe\xfe\x03\xff\x00\x00\xf1\xfe\xf9\xfe\xf8\xfe\xf7\xfe\xfa\xfe\x66\xff\x9f\xff\xf1\xfe\xf1\xfe\xf6\xfe\x1b\xff\x16\xff\x00\xff\x5e\xff\x5d\xff\x5c\xff\x5b\xff\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\x00\x00\xf3\xfe\x07\xff\x06\xff\xf1\xfe\x0b\xff\x09\xff\xfc\xfe\x00\x00\xfb\xfe\xf1\xfe\xf1\xfe\x6e\xff\xf1\xfe\xe4\xff\xb8\xff\xb5\xff\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xfa\xff\xf4\xfe\xf1\xfe\xf5\xfe\xf7\xff\xf3\xff\xfc\xff\xf2\xfe\xe5\xff\xb2\xff\xb1\xff\xae\xff\xac\xff\xab\xff\xaa\xff\xf1\xfe\xf1\xfe\xa9\xff\xbc\xff\x00\x00\x00\x00\x51\xff\x4f\xff\x00\x00\xf2\xfe\xb9\xff\xb6\xff\xf2\xfe\x19\xff\x14\xff\xf1\xfe\x6c\xff\x00\x00\x00\x00\xfd\xfe\x1c\xff\x17\xff\xf1\xfe\xf1\xfe\xf1\xff\x99\xff\x98\xff\x00\x00\x97\xff\x7b\xff\x34\xff\xf3\xfe\x7e\xff\x7d\xff\x7c\xff\x00\x00\x00\x00\x8a\xff\x85\xff\x0c\xff\x0e\xff\xf1\xfe\x63\xff\xf1\xfe\xf1\xfe\x64\xff\xf1\xfe\x5f\xff\xa0\xff\x93\xff\x00\x00\x00\x00\xf1\xfe\x62\xff\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x12\xff\xf1\xfe\x70\xff\x6f\xff\xdd\xff\xf1\xfe\x00\x00\xd5\xff\x00\x00\xf1\xfe\xf1\xfe\xf1\xfe\x00\x00\xc2\xff\x00\x00\x00\x00\xf1\xfe\xe0\xff\xf1\xfe\xf1\xfe\xfa\xff\xfd\xff\xcd\xff\xdc\xff\xf1\xfe\xf2\xfe\xf1\xfe\xe1\xff\xcd\xff\x71\xff\xc0\xff\xf1\xfe\xc4\xff\xf1\xfe\x00\x00\xda\xff\xea\xff\xf1\xfe\xf1\xfe\xd7\xff\xf1\xfe\x00\x00\xd1\xff\xf1\xfe\x72\xff\x55\xff\x57\xff\x53\xff\x95\xff\x8b\xff\x86\xff\xf1\xfe\x88\xff\x83\xff\xf1\xfe\x00\x00\xbe\xff\x00\x00\x80\xff\xf2\xfe\xf1\xfe\x53\xff\x61\xff\x54\xff\x60\xff\x02\xff\x65\xff\xf1\xfe\x00\x00\x00\x00\x00\x00\x35\xff\x32\xff\x30\xff\x24\xff\x00\x00\xf1\xfe\xf2\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x00\x00\x00\x00\x00\x00\x76\xff\x00\x00\x1d\xff\x18\xff\x08\xff\x0a\xff\x1a\xff\x15\xff\xb7\xff\x4e\xff\xf1\xfe\xf1\xfe\xf1\xfe\x00\x00\xa8\xff\x00\x00\xb2\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\xad\xff\xf1\xfe\xf1\xfe\xf1\xfe\xfb\xff\xf1\xfe\xf3\xfe\xf1\xfe\x00\x00\x9c\xff\xb3\xff\x9d\xff\xaa\xff\xaf\xff\xb0\xff\xa7\xff\xa4\xff\xf1\xfe\xf1\xfe\xa5\xff\xa3\xff\xb4\xff\x52\xff\x50\xff\x77\xff\x7a\xff\xf1\xfe\x00\x00\x9a\xff\x96\xff\x00\x00\x2b\xff\x00\x00\x00\x00\x00\x00\x27\xff\x00\x00\xf1\xfe\xf1\xfe\xf1\xfe\x36\xff\x2e\xff\xf1\xfe\xf1\xfe\x00\x00\x00\x00\x82\xff\xf1\xfe\xf3\xfe\xf1\xfe\x81\xff\xf1\xfe\x89\xff\x84\xff\x8c\xff\x87\xff\xf1\xfe\xde\xff\xdf\xff\xef\xff\xf1\xfe\xd8\xff\xd6\xff\xd3\xff\xd4\xff\xe8\xff\xf2\xfe\xc5\xff\xc3\xff\xc1\xff\xee\xff\xf2\xfe\xf0\xff\xec\xff\xc9\xff\xf3\xfe\xe2\xff\xe3\xff\xed\xff\xf1\xfe\x00\x00\xca\xff\xc7\xff\x00\x00\xbb\xff\xce\xff\xe9\xff\xd2\xff\xcf\xff\x56\xff\xbf\xff\xbd\xff\xf1\xfe\x00\x00\x4a\xff\x13\xff\x00\x00\xf1\xfe\x37\xff\x2f\xff\xf1\xfe\x33\xff\x31\xff\x2c\xff\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\x79\xff\x00\x00\xa1\xff\xa2\xff\x00\x00\xf1\xfe\xf8\xff\x00\x00\xf9\xff\x9e\xff\x9b\xff\x78\xff\x26\xff\x29\xff\x2a\xff\x28\xff\x25\xff\xf1\xfe\xf3\xfe\x2d\xff\x74\xff\x49\xff\x47\xff\x44\xff\xf1\xfe\xf1\xfe\x4c\xff\xf1\xfe\x00\x00\xf1\xfe\xf1\xfe\xf1\xfe\xcb\xff\x00\x00\xcc\xff\xc8\xff\xc6\xff\xd0\xff\x4d\xff\x4b\xff\x48\xff\x00\x00\x45\xff\xf2\xfe\xf1\xfe\x00\x00\x3f\xff\x00\x00\x3e\xff\x3c\xff\x39\xff\xf1\xfe\xf2\xfe\x41\xff\xf1\xfe\x00\x00\x46\xff\xf1\xfe\x43\xff\x42\xff\x40\xff\x3d\xff\x00\x00\x3a\xff\xf2\xfe\x3b\xff\xf2\xfe\x38\xff"#--happyCheck :: HappyAddr-happyCheck = HappyA# "\xff\xff\x03\x00\x01\x00\x08\x00\x05\x00\x06\x00\x07\x00\x25\x00\x0c\x00\x13\x00\x08\x00\x09\x00\x13\x00\x04\x00\x4a\x00\x04\x00\x01\x00\x3e\x00\x0d\x00\x04\x00\x0a\x00\x01\x00\x5f\x00\x4a\x00\x57\x00\x44\x00\x5f\x00\x1c\x00\x1d\x00\x01\x00\x67\x00\x5e\x00\x04\x00\x0d\x00\x67\x00\x4a\x00\x17\x00\x1a\x00\x4a\x00\x0c\x00\x67\x00\x17\x00\x66\x00\x0e\x00\x0f\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x33\x00\x66\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x66\x00\x58\x00\x66\x00\x05\x00\x06\x00\x07\x00\x66\x00\x5e\x00\x5f\x00\x66\x00\x11\x00\x0e\x00\x0f\x00\x3d\x00\x15\x00\x0f\x00\x67\x00\x64\x00\x19\x00\x3d\x00\x15\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x1c\x00\x1d\x00\x1b\x00\x57\x00\x58\x00\x5c\x00\x5e\x00\x5e\x00\x5f\x00\x66\x00\x5e\x00\x5f\x00\x66\x00\x5e\x00\x29\x00\x67\x00\x67\x00\x66\x00\x43\x00\x67\x00\x66\x00\x5e\x00\x67\x00\x33\x00\x66\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x66\x00\x57\x00\x06\x00\x07\x00\x5c\x00\x66\x00\x5e\x00\x5f\x00\x5e\x00\x66\x00\x66\x00\x66\x00\x66\x00\x66\x00\x00\x00\x67\x00\x0f\x00\x67\x00\x11\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x1c\x00\x1d\x00\x57\x00\x57\x00\x58\x00\x57\x00\x57\x00\x49\x00\x12\x00\x5e\x00\x5e\x00\x5f\x00\x5e\x00\x5e\x00\x1c\x00\x4a\x00\x1e\x00\x4a\x00\x67\x00\x67\x00\x11\x00\x67\x00\x67\x00\x33\x00\x16\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1c\x00\x15\x00\x0d\x00\x4a\x00\x06\x00\x07\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x0e\x00\x20\x00\x66\x00\x19\x00\x66\x00\x65\x00\x3d\x00\x15\x00\x4a\x00\x4a\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x1c\x00\x1d\x00\x4a\x00\x57\x00\x58\x00\x66\x00\x4a\x00\x15\x00\x1a\x00\x1b\x00\x5e\x00\x5f\x00\x14\x00\x15\x00\x16\x00\x64\x00\x1a\x00\x1b\x00\x20\x00\x67\x00\x1c\x00\x66\x00\x66\x00\x33\x00\x07\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x66\x00\x15\x00\x57\x00\x57\x00\x66\x00\x58\x00\x14\x00\x15\x00\x16\x00\x5e\x00\x5e\x00\x5e\x00\x5f\x00\x21\x00\x1c\x00\x1c\x00\x1d\x00\x5e\x00\x67\x00\x67\x00\x67\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x67\x00\x2a\x00\x2b\x00\x57\x00\x58\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x5e\x00\x5f\x00\x33\x00\x57\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x5e\x00\x57\x00\x64\x00\x57\x00\x0f\x00\x65\x00\x0d\x00\x12\x00\x5e\x00\x67\x00\x5e\x00\x1e\x00\x13\x00\x20\x00\x0d\x00\x00\x00\x17\x00\x67\x00\x11\x00\x67\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x20\x00\x19\x00\x57\x00\x57\x00\x58\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x5e\x00\x5e\x00\x5f\x00\x18\x00\x19\x00\x58\x00\x00\x00\x1c\x00\x1d\x00\x67\x00\x67\x00\x5e\x00\x5f\x00\x18\x00\x19\x00\x57\x00\x65\x00\x1c\x00\x1d\x00\x64\x00\x67\x00\x0f\x00\x5e\x00\x00\x00\x12\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x33\x00\x67\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x65\x00\x0f\x00\x00\x00\x33\x00\x12\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0f\x00\x5e\x00\x5f\x00\x12\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x0f\x00\x67\x00\x11\x00\x57\x00\x58\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x5e\x00\x5f\x00\x19\x00\x57\x00\x58\x00\x1c\x00\x1d\x00\x58\x00\x15\x00\x67\x00\x5e\x00\x5f\x00\x19\x00\x5e\x00\x5f\x00\x01\x00\x02\x00\x1e\x00\x64\x00\x67\x00\x01\x00\x02\x00\x67\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x08\x00\x33\x00\x58\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x5e\x00\x5f\x00\x5f\x00\x61\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x67\x00\x67\x00\x06\x00\x0f\x00\x22\x00\x11\x00\x1c\x00\x1d\x00\x26\x00\x0d\x00\x57\x00\x29\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x5e\x00\x15\x00\x17\x00\x57\x00\x58\x00\x00\x00\x1a\x00\x36\x00\x21\x00\x67\x00\x5e\x00\x5f\x00\x33\x00\x5f\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x0f\x00\x67\x00\x15\x00\x12\x00\x41\x00\x42\x00\x43\x00\x1a\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x1c\x00\x1d\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x0d\x00\x16\x00\x57\x00\x58\x00\x11\x00\x2a\x00\x2b\x00\x01\x00\x02\x00\x5e\x00\x5f\x00\x33\x00\x21\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x0d\x00\x5c\x00\x0e\x00\x5e\x00\x5f\x00\x10\x00\x13\x00\x1b\x00\x12\x00\x15\x00\x17\x00\x1f\x00\x67\x00\x12\x00\x1c\x00\x1d\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x5f\x00\x15\x00\x57\x00\x58\x00\x5f\x00\x1e\x00\x1a\x00\x20\x00\x67\x00\x5e\x00\x5f\x00\x33\x00\x67\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x02\x00\x5e\x00\x5f\x00\x64\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x67\x00\x64\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x2a\x00\x2b\x00\x57\x00\x58\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x15\x00\x15\x00\x11\x00\x2a\x00\x2b\x00\x1a\x00\x15\x00\x67\x00\x1c\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x60\x00\x65\x00\x62\x00\x63\x00\x58\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x15\x00\x1c\x00\x58\x00\x1e\x00\x0f\x00\x1a\x00\x11\x00\x67\x00\x5e\x00\x5f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1b\x00\x1c\x00\x67\x00\x1e\x00\x1f\x00\x65\x00\x02\x00\x58\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x01\x00\x0d\x00\x20\x00\x65\x00\x05\x00\x11\x00\x0b\x00\x67\x00\x58\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x65\x00\x65\x00\x58\x00\x47\x00\x48\x00\x49\x00\x0b\x00\x67\x00\x5e\x00\x5f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x64\x00\x0f\x00\x67\x00\x11\x00\x58\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x24\x00\x25\x00\x0e\x00\x0e\x00\x1c\x00\x58\x00\x1e\x00\x67\x00\x0b\x00\x15\x00\x15\x00\x5e\x00\x5f\x00\x24\x00\x25\x00\x0b\x00\x22\x00\x23\x00\x24\x00\x25\x00\x67\x00\x58\x00\x28\x00\x29\x00\x0f\x00\x04\x00\x11\x00\x5e\x00\x5f\x00\x0d\x00\x22\x00\x23\x00\x24\x00\x25\x00\x04\x00\x13\x00\x67\x00\x29\x00\x58\x00\x17\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x24\x00\x25\x00\x58\x00\x37\x00\x38\x00\x39\x00\x58\x00\x67\x00\x5e\x00\x5f\x00\x65\x00\x00\x00\x5e\x00\x5f\x00\x10\x00\x01\x00\x02\x00\x67\x00\x04\x00\x58\x00\x10\x00\x67\x00\x0d\x00\x0e\x00\x58\x00\x5e\x00\x5f\x00\x0d\x00\x13\x00\x10\x00\x5e\x00\x5f\x00\x17\x00\x13\x00\x67\x00\x57\x00\x58\x00\x17\x00\x58\x00\x67\x00\x0d\x00\x3d\x00\x5e\x00\x5f\x00\x5e\x00\x5f\x00\x13\x00\x14\x00\x58\x00\x1e\x00\x17\x00\x67\x00\x58\x00\x67\x00\x5e\x00\x5f\x00\x0d\x00\x10\x00\x5e\x00\x5f\x00\x1e\x00\x0e\x00\x13\x00\x67\x00\x27\x00\x11\x00\x17\x00\x67\x00\x15\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0d\x00\x3b\x00\x1e\x00\x1f\x00\x20\x00\x1e\x00\x1f\x00\x20\x00\x1e\x00\x1f\x00\x20\x00\x3d\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x11\x00\x57\x00\x58\x00\x1c\x00\x5a\x00\x1e\x00\x10\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x01\x00\x02\x00\x03\x00\x67\x00\x1e\x00\x1f\x00\x20\x00\x10\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x57\x00\x58\x00\x01\x00\x02\x00\x1e\x00\x13\x00\x0f\x00\x5e\x00\x5f\x00\x17\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x15\x00\x1d\x00\x67\x00\x15\x00\x10\x00\x10\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x3d\x00\x0d\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2a\x00\x11\x00\x3d\x00\x31\x00\x0d\x00\x0e\x00\x39\x00\x34\x00\x36\x00\x37\x00\x13\x00\x11\x00\x15\x00\x39\x00\x17\x00\x29\x00\x3e\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1a\x00\x57\x00\x58\x00\x15\x00\x0d\x00\x14\x00\x0e\x00\x0e\x00\x5e\x00\x5f\x00\x13\x00\x30\x00\x11\x00\x0e\x00\x17\x00\x57\x00\x58\x00\x67\x00\x1c\x00\x0f\x00\x1d\x00\x10\x00\x5e\x00\x5f\x00\x10\x00\x19\x00\x23\x00\x24\x00\x15\x00\x57\x00\x58\x00\x67\x00\x0d\x00\x3d\x00\x1c\x00\x0d\x00\x5e\x00\x5f\x00\x3d\x00\x10\x00\x31\x00\x3d\x00\x35\x00\x1c\x00\x39\x00\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x34\x00\x57\x00\x58\x00\x16\x00\x59\x00\x5a\x00\x5b\x00\x0e\x00\x5e\x00\x5f\x00\x20\x00\x60\x00\x61\x00\x62\x00\x63\x00\x57\x00\x58\x00\x67\x00\x67\x00\x16\x00\x16\x00\x10\x00\x5e\x00\x5f\x00\x01\x00\x59\x00\x5a\x00\x5b\x00\x20\x00\x57\x00\x58\x00\x67\x00\x60\x00\x61\x00\x62\x00\x63\x00\x5e\x00\x5f\x00\x1f\x00\x67\x00\x1f\x00\x21\x00\x10\x00\x35\x00\x0d\x00\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1e\x00\x57\x00\x58\x00\x18\x00\x59\x00\x5a\x00\x5b\x00\x3d\x00\x5e\x00\x5f\x00\x0d\x00\x60\x00\x61\x00\x62\x00\x63\x00\x57\x00\x58\x00\x67\x00\x67\x00\x08\x00\x10\x00\x0d\x00\x5e\x00\x5f\x00\x0e\x00\x59\x00\x5a\x00\x5b\x00\x0e\x00\x57\x00\x58\x00\x67\x00\x60\x00\x61\x00\x62\x00\x63\x00\x5e\x00\x5f\x00\x0e\x00\x67\x00\x15\x00\x10\x00\x14\x00\x1a\x00\x18\x00\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0d\x00\x57\x00\x58\x00\x1a\x00\x59\x00\x5a\x00\x5b\x00\x1a\x00\x5e\x00\x5f\x00\x15\x00\x60\x00\x61\x00\x62\x00\x63\x00\x57\x00\x58\x00\x67\x00\x67\x00\x30\x00\x15\x00\x10\x00\x5e\x00\x5f\x00\x0d\x00\x10\x00\x1a\x00\x18\x00\x10\x00\x57\x00\x58\x00\x67\x00\x0f\x00\x02\x00\x10\x00\x3d\x00\x5e\x00\x5f\x00\x3f\x00\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\x03\x00\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x57\x00\x58\x00\x67\x00\x11\x00\xff\xff\x13\x00\xff\xff\x5e\x00\x5f\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x67\x00\x03\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x13\x00\xff\xff\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\x37\x00\xff\xff\x1d\x00\xff\xff\x03\x00\xff\xff\xff\xff\x3e\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x13\x00\xff\xff\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\x37\x00\xff\xff\x1d\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3e\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\x28\x00\x03\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\x2f\x00\xff\xff\x31\x00\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x13\x00\x3a\x00\x3b\x00\x3c\x00\x17\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\x28\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\x38\x00\xff\xff\x3a\x00\x3b\x00\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\xff\xff\x13\x00\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x01\x00\x02\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x13\x00\x31\x00\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x5e\x00\x5f\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\x01\x00\x02\x00\x67\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x67\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\x26\x00\xff\xff\x03\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x57\x00\x58\x00\x10\x00\x36\x00\xff\xff\x13\x00\xff\xff\x5e\x00\x5f\x00\x17\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x67\x00\x5e\x00\x5f\x00\xff\xff\x03\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x67\x00\xff\xff\xff\xff\xff\xff\x0d\x00\x2d\x00\xff\xff\x10\x00\xff\xff\x31\x00\x13\x00\x33\x00\xff\xff\xff\xff\x17\x00\x18\x00\x38\x00\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\x2d\x00\xff\xff\x13\x00\x14\x00\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x1d\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\x2d\x00\xff\xff\x13\x00\xff\xff\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2d\x00\xff\xff\x3c\x00\x3d\x00\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\x38\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\x45\x00\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\x45\x00\x46\x00\xff\xff\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\x3f\x00\x40\x00\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\x3f\x00\x40\x00\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\x3c\x00\x3d\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\x37\x00\x38\x00\x39\x00\x5e\x00\x5f\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x55\x00\x56\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x46\x00\xff\xff\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x67\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\x40\x00\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\xff\xff\x3d\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\x57\x00\x58\x00\x37\x00\x38\x00\x39\x00\xff\xff\x67\x00\x5e\x00\x5f\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x03\x00\x57\x00\x58\x00\xff\xff\xff\xff\x03\x00\xff\xff\x67\x00\x5e\x00\x5f\x00\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x0d\x00\x13\x00\x67\x00\x10\x00\xff\xff\x17\x00\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x03\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x03\x00\x31\x00\x2d\x00\xff\xff\xff\xff\x0d\x00\x31\x00\xff\xff\x10\x00\xff\xff\x0d\x00\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\x1d\x00\xff\xff\xff\xff\x03\x00\xff\xff\x1d\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x23\x00\x24\x00\x0d\x00\x03\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x13\x00\x31\x00\xff\xff\x03\x00\x17\x00\x0d\x00\x31\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x13\x00\xff\xff\x0d\x00\xff\xff\x17\x00\x23\x00\x24\x00\xff\xff\x13\x00\xff\xff\x1d\x00\x03\x00\x17\x00\x03\x00\xff\xff\xff\xff\x23\x00\x24\x00\x1d\x00\x31\x00\xff\xff\x0d\x00\xff\xff\x0d\x00\x23\x00\x24\x00\xff\xff\x13\x00\xff\xff\x13\x00\x31\x00\x17\x00\x03\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x31\x00\x1d\x00\x03\x00\xff\xff\x0d\x00\x23\x00\x24\x00\x23\x00\x24\x00\xff\xff\x13\x00\xff\xff\x0d\x00\x03\x00\x17\x00\xff\xff\xff\xff\xff\xff\x13\x00\x31\x00\x1d\x00\x31\x00\x17\x00\x0d\x00\xff\xff\xff\xff\x23\x00\x24\x00\x1d\x00\x13\x00\xff\xff\x03\x00\xff\xff\x17\x00\x23\x00\x24\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x31\x00\x0d\x00\x03\x00\xff\xff\xff\xff\x23\x00\x24\x00\x13\x00\x31\x00\xff\xff\x03\x00\x17\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x13\x00\x31\x00\x0d\x00\xff\xff\x17\x00\x23\x00\x24\x00\xff\xff\x13\x00\xff\xff\x1d\x00\x03\x00\x17\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x1d\x00\x31\x00\xff\xff\x0d\x00\xff\xff\xff\xff\x23\x00\x24\x00\xff\xff\x13\x00\xff\xff\xff\xff\x31\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x31\x00\x0d\x00\x0e\x00\xff\xff\x10\x00\x23\x00\x24\x00\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x1d\x00\x13\x00\x31\x00\xff\xff\xff\xff\x17\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x23\x00\x24\x00\x25\x00\x31\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x0e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x15\x00\x16\x00\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#--happyTable :: HappyAddr-happyTable = HappyA# "\x00\x00\x53\x01\x08\x00\xf9\x00\x0d\x00\x33\x00\x0f\x00\x4f\x01\x35\x00\xa4\x01\xfe\x00\xff\x00\x98\x01\xfc\x00\xff\x01\x09\x01\xdb\xff\x7d\x01\x45\x00\xdb\xff\x0d\x01\xf1\xfe\x34\x00\xf9\x01\x8f\x01\xcc\x01\x3a\x00\x10\x00\x11\x00\xf1\xfe\x05\x00\x1f\x00\xfc\x00\x44\x00\x05\x00\xc8\x01\xfd\x01\x0a\x01\xc9\x01\x3f\x00\xab\x00\xf4\x01\xc5\x00\x0c\x01\xea\x00\xa5\x01\x41\x01\x42\x01\xd8\x00\x3c\x00\x12\x00\xc5\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x7e\x01\xa5\x00\xcd\x01\x0d\x00\x0e\x00\x0f\x00\xc5\x00\xa6\x00\x4c\x00\xc5\x00\x69\x01\xe9\x00\xea\x00\xfd\x00\x6a\x01\x8d\x01\x39\x00\xf1\x01\x6b\x01\xdb\xff\x45\x01\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\xa9\x01\x1d\x00\x1e\x00\x36\x00\xfa\x00\x37\x00\x38\x00\x99\x01\x1f\x00\x20\x00\x99\x01\xfa\x00\xba\x01\xab\x00\x39\x00\x54\x01\xe6\x01\x21\x00\x09\x00\xfa\x00\xab\x00\x12\x00\x46\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xab\x00\x40\x00\x3d\x00\xeb\x00\xc3\x01\x0f\x00\x36\x00\x3d\x00\x41\x00\x42\x00\x1f\x00\x3d\x00\x3d\x00\x3d\x00\x3d\x00\x3d\x00\x9a\x00\x39\x00\xf3\x01\xab\x00\xf8\x01\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\xeb\x00\x1d\x00\x1e\x00\xeb\x00\x1c\x01\xfb\x01\x9c\x00\x1f\x00\x1f\x00\x20\x00\x1f\x00\x1f\x00\x95\x00\xca\x01\x96\x00\xcb\x01\xab\x00\x21\x00\xa6\x01\xab\x00\xab\x00\x12\x00\xdf\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa2\x01\x45\x01\x44\x00\x72\x01\x57\x01\x0f\x00\xa7\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x5f\x01\xff\x01\xc5\x00\xbe\x01\xc5\x00\xe8\x01\x92\x01\xd8\x00\xc4\x00\xc7\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\xc8\x00\x1d\x00\x1e\x00\xc5\x00\xc9\x00\x45\x01\x1a\x01\x1b\x01\x1f\x00\x20\x00\xdd\x01\xa0\x01\xa1\x01\xd6\x01\x38\x01\x1b\x01\xf6\x01\x21\x00\xa2\x01\xc5\x00\xc5\x00\x12\x00\x9d\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xc5\x00\x62\x01\xaa\x00\xa3\x01\xc5\x00\xa5\x00\x9f\x01\xa0\x01\xa1\x01\x1f\x00\x1f\x00\xa6\x00\x4c\x00\x53\x01\xa2\x01\x10\x00\x11\x00\xfa\x00\xab\x00\xab\x00\x39\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xab\x00\xc6\x01\xc0\x00\x1d\x00\x1e\x00\xbe\x01\xa2\x00\xa3\x00\xa4\x00\x9a\x00\x1f\x00\x20\x00\x12\x00\x1c\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x1f\x00\x1c\x01\xdc\x01\xa3\x01\xf3\x01\x9e\x01\x24\x00\x9c\x00\x1f\x00\xab\x00\x1f\x00\xf0\x01\x25\x00\xf1\x01\x44\x00\x9a\x00\x26\x00\xab\x00\x3a\x01\xab\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xe5\x00\x3b\x01\xa3\x01\x1d\x00\x1e\x00\xd8\x01\x7b\x00\x07\x00\x9c\x00\x1f\x00\x1f\x00\x20\x00\x05\x01\xf0\x00\xa5\x00\x9a\x00\xf1\x00\xf2\x00\xab\x00\x21\x00\xa6\x00\x4c\x00\xef\x00\xf0\x00\xb7\x00\xab\x01\xf1\x00\xf2\x00\xc2\x01\x39\x00\x9b\x00\x1f\x00\x9a\x00\x9c\x00\xe0\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x12\x00\xab\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x56\x01\x05\x01\x9a\x00\x12\x00\x9c\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x48\x01\x49\x01\xa2\x00\xa3\x00\xa4\x00\x4a\x01\x4b\x01\x0c\x01\xb8\x00\xb9\x00\x9c\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xd8\x01\x39\x00\xe3\x01\x1d\x00\x1e\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1f\x00\x4c\x00\x93\x01\x1d\x00\x1e\x00\xf1\x00\xf2\x00\xa5\x00\xe1\x00\x21\x00\x1f\x00\x4c\x00\xe2\x00\xa6\x00\x4c\x00\x7b\x00\x07\x00\xe3\x00\x77\x01\x21\x00\x7b\x00\x07\x00\x39\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xbb\x00\x12\x00\xa5\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa6\x00\x4c\x00\x3b\x00\x4c\x01\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\x4d\x01\x05\x00\xc2\x00\x9b\x00\x80\x00\xc5\x01\x27\x01\x28\x01\x81\x00\xc3\x00\xca\x00\x82\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1f\x00\x97\x00\xc4\x00\x1d\x00\x1e\x00\x9a\x00\xdb\x01\x83\x00\x78\x00\xab\x00\x1f\x00\x4c\x00\x12\x00\x44\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x9b\x00\x05\x00\x97\x00\x9c\x00\xd1\x01\xd2\x01\xd3\x01\x7b\x01\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\xf1\xfe\x27\x01\x28\x01\x7b\x01\x2a\x01\x2b\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x44\x00\x8e\x00\x1d\x00\x1e\x00\xc9\xff\x6b\x01\xc0\x00\xf1\xfe\xf1\xfe\x1f\x00\x4c\x00\x12\x00\x78\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\xa8\x00\x06\x01\x60\x01\x37\x00\x42\x00\x8a\x01\xa9\x00\x75\x01\x95\x01\x61\x01\xaa\x00\x76\x01\x39\x00\x9d\x01\x27\x01\x28\x01\x29\x01\x2a\x01\x2b\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x48\x00\x97\x00\x1d\x00\x1e\x00\x04\x00\xd5\x01\x03\x01\xd6\x01\x05\x00\x1f\x00\x4c\x00\x12\x00\x05\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x88\x01\x49\x01\xa2\x00\xa3\x00\xa4\x00\x89\x01\xf8\x00\xcb\x00\xb9\x00\x03\x01\x9b\x01\x49\x01\xa2\x00\xa3\x00\xa4\x00\x9c\x01\x39\x00\x0a\x01\xb4\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x36\x01\xc0\x00\x1d\x00\x1e\x00\xe1\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x1f\x00\x4c\x00\xbb\xff\x45\x01\x82\x01\xbf\x00\xc0\x00\xbb\xff\x83\x01\x21\x00\x46\x01\xb2\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x69\x00\x26\x01\x6b\x00\x8a\x00\xa5\x00\x8e\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x97\x00\x7a\x01\xa5\x00\x96\x00\x0c\x01\x98\x00\x8d\x01\x39\x00\xa6\x00\x4c\x00\x94\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x13\xff\xba\xff\x39\x00\xba\xff\x13\xff\xbe\x00\x9e\x00\xa5\x00\x97\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\xf1\xfe\x44\x00\xb2\x00\xdb\x00\x0f\x01\x1e\x01\xe7\x00\x39\x00\xa5\x00\x07\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\xe8\x00\xee\x00\xa5\x00\xec\x01\xed\x01\xee\x01\xf4\x00\x39\x00\xa6\x00\x4c\x00\x46\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x98\x00\x05\x01\x39\x00\x93\x01\xa5\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x5c\x01\xa4\x00\xd2\x00\xd5\x00\x95\x00\xa5\x00\x96\x00\x39\x00\xf5\x00\xd3\x00\xd6\x00\xa6\x00\x4c\x00\x5d\x01\xa4\x00\xf6\x00\x58\x01\xa2\x00\xa3\x00\xa4\x00\x39\x00\xa5\x00\x59\x01\x5a\x01\x9b\x00\x32\x00\xf8\x00\xa6\x00\x4c\x00\xa8\x00\x58\x01\xa2\x00\xa3\x00\xa4\x00\x0c\x00\xa9\x00\x39\x00\xc5\x01\xa5\x00\xaa\x00\xbf\x01\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x13\x01\xa4\x00\xa5\x00\x8f\x00\x16\x00\x17\x00\xa5\x00\x39\x00\xa6\x00\x4c\x00\x0b\x00\x03\x00\xa6\x00\x4c\x00\xc7\x00\xf1\xfe\xf1\xfe\x39\x00\x51\x01\xa5\x00\x3f\x00\x39\x00\x24\x00\x24\x01\xa5\x00\xa6\x00\x4c\x00\xa8\x00\x25\x00\xc7\x00\x5b\x01\x4c\x00\x26\x00\xa9\x00\x39\x00\x4a\x00\x4b\x00\xaa\x00\xa5\x00\x39\x00\xa8\x00\xfd\x01\x1f\x00\x4c\x00\x5b\x01\x4c\x00\xa9\x00\x48\x01\xa5\x00\xf0\x01\xaa\x00\x4d\x00\xa5\x00\x39\x00\xa6\x00\x4c\x00\x24\x00\x3f\x00\xa6\x00\x4c\x00\xd5\x01\xd7\x00\x25\x00\x39\x00\x63\x00\xdf\x01\x26\x00\x39\x00\xd8\x00\x64\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x65\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x44\x00\x66\x00\x78\x01\x92\x00\x93\x00\x90\x01\x92\x00\x93\x00\x01\x01\x92\x00\x93\x00\xe8\x01\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x5c\x00\x5d\x00\xc8\x01\x4a\x00\x1e\x00\x95\x00\x67\x00\x96\x00\xc7\x00\x68\x00\x1f\x00\x4c\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xf1\xfe\xf1\xfe\x23\x00\x6d\x00\x91\x00\x92\x00\x93\x00\xcf\x01\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x24\x00\x4a\x00\x1e\x00\x7b\x00\x07\x00\xda\x01\x25\x00\xdc\x01\x1f\x00\x4c\x00\x26\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x61\x01\x27\x00\x21\x00\x61\x01\x9b\x01\x3f\x00\xf1\xfe\x28\x00\x29\x00\x30\x01\xf1\xfe\xb4\x00\x44\x00\xf1\xfe\x31\x01\x32\x01\x33\x01\x34\x01\xb1\x01\xb2\x01\xb4\x00\x2e\x00\xa8\x00\x4f\x01\xb9\x01\xb8\x01\xf1\xfe\x35\x01\xa9\x00\xbd\x01\x75\x00\xbb\x01\xaa\x00\xbc\x01\x36\x01\xf6\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe4\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xcf\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xc1\x01\x4a\x00\x1e\x00\xc2\x01\x24\x00\x64\x01\xcf\x00\x63\x01\x1f\x00\x4c\x00\x25\x00\xf4\x00\x68\x01\x6d\x01\x26\x00\x4a\x00\x1e\x00\x21\x00\x81\x01\x77\x01\x27\x00\xc7\x00\x1f\x00\x4c\x00\x80\x01\x88\x01\x28\x00\x29\x00\x45\x01\x4a\x00\x1e\x00\x21\x00\x44\x00\xb4\x00\x8c\x01\x44\x00\x1f\x00\x4c\x00\x97\x01\x9b\x01\x2e\x00\x97\x01\xa0\x00\xfe\x00\x20\x01\x21\x00\xd0\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa8\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xaa\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x1f\x01\x4a\x00\x1e\x00\x25\x01\x85\x00\x86\x00\xd3\x00\x26\x01\x1f\x00\x4c\x00\x38\x01\x88\x00\x89\x00\x6b\x00\x8a\x00\x4a\x00\x1e\x00\x21\x00\x8b\x00\x3e\x01\x3f\x01\x3f\x00\x1f\x00\x4c\x00\x7b\x00\x85\x00\x86\x00\xdd\x00\x52\x01\x4a\x00\x1e\x00\x21\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x1f\x00\x4c\x00\x44\x01\x8b\x00\x13\xff\x53\x01\x56\x01\xa0\x00\x44\x00\x21\x00\xb1\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb5\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb6\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x96\x00\x4a\x00\x1e\x00\x8f\x00\x85\x00\x86\x00\xde\x00\xb4\x00\x1f\x00\x4c\x00\x44\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x4a\x00\x1e\x00\x21\x00\x8b\x00\xbb\x00\xc7\x00\x44\x00\x1f\x00\x4c\x00\xfc\xfe\x85\x00\x86\x00\x87\x00\xcf\x00\x4a\x00\x1e\x00\x21\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x1f\x00\x4c\x00\xd0\x00\x8b\x00\xd3\x00\x3f\x00\xdd\x00\xe0\x00\x8f\x00\x21\x00\x64\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x6d\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x6e\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x44\x00\x4a\x00\x1e\x00\x0f\xff\x85\x00\x86\x00\x90\x00\xed\x00\x1f\x00\x4c\x00\xee\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x4a\x00\x1e\x00\x21\x00\x8b\x00\xf4\x00\xee\x00\x3f\x00\x1f\x00\x4c\x00\x44\x00\x48\x00\x84\x00\x8f\x00\x85\x00\x4a\x00\x1e\x00\x21\x00\x9d\x00\x07\x00\x0b\x00\x08\x00\x1f\x00\x4c\x00\xff\xff\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x6f\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x71\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x73\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x7c\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x0f\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x11\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x12\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x20\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x22\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb1\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xd9\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\xda\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe5\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe6\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x23\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x4a\x00\x1e\x00\x21\x00\x34\xff\x00\x00\x25\x00\x00\x00\x1f\x00\x4c\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x21\x00\x23\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x30\x01\x00\x00\x00\x00\x00\x00\x24\x00\x31\x01\x32\x01\x33\x01\x34\x01\x00\x00\x25\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\x27\x00\x00\x00\x23\x00\x00\x00\x00\x00\x36\x01\x28\x00\x29\x00\x30\x01\x00\x00\x00\x00\x00\x00\x24\x00\x31\x01\x32\x01\x33\x01\x34\x01\x00\x00\x25\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\x27\x00\xd0\x00\x15\x00\x16\x00\x17\x00\x36\x01\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x25\x00\x30\x00\x31\x00\x32\x00\x26\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\x27\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x31\x00\x24\x00\x74\x00\x00\x00\x60\x00\x00\x00\x00\x00\x25\x00\x00\x00\x75\x00\x76\x00\x26\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\xf1\xfe\xf1\xfe\x00\x00\x78\x00\x00\x00\x28\x00\x29\x00\x61\x00\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x24\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x25\x00\x2e\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x63\x00\x83\x01\x59\x00\x84\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x85\x01\x59\x00\x86\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x14\x01\x59\x00\x15\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x7b\x00\x07\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\xbb\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x21\x00\x17\x01\x59\x00\x18\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\xcc\x00\x59\x00\xcd\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x5f\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x4a\x00\x1e\x00\x60\x00\x83\x00\x00\x00\x25\x00\x00\x00\x1f\x00\x4c\x00\x26\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x27\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x5f\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x24\x00\x62\x00\x00\x00\x60\x00\x00\x00\x2e\x00\x25\x00\xb4\x01\x00\x00\x00\x00\x26\x00\x8f\x00\x63\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x60\x00\x62\x00\x00\x00\x25\x00\x5a\xff\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x27\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x60\x00\x62\x00\x00\x00\x25\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x62\x00\x00\x00\xfa\x01\xad\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x01\x63\x00\x3c\x01\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\xf3\x01\xea\x01\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xeb\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\xe5\x01\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x01\x00\x00\x40\x01\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\xe9\x01\xea\x01\x00\x00\x49\x00\x16\x00\x17\x00\x21\x00\x00\x00\x00\x00\x00\x00\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xeb\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\xd8\x01\xad\x01\x00\x00\x1f\x00\x4c\x00\xb4\x00\x00\x00\xb5\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4d\x00\x00\x00\x00\x00\x00\x00\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\xac\x01\xad\x01\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x70\x01\xad\x00\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x10\x01\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\xac\x00\xad\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x4f\x00\x16\x00\x17\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x50\x00\x51\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xf8\x01\x00\x00\x4e\x00\x16\x00\x17\x00\x00\x00\x00\x00\x4d\x00\x00\x00\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xeb\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\x00\x00\xe3\x01\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4d\x00\x00\x00\x00\x00\x65\x01\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbc\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x79\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x66\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x4f\x00\x16\x00\x17\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x8f\x00\x16\x00\x17\x00\x00\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x00\x4a\x00\x4b\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x1a\x01\x4a\x00\x4b\x00\x00\x00\x00\x00\x17\x01\x00\x00\x4d\x00\x1f\x00\x4c\x00\x24\x00\x22\x01\x00\x00\x60\x00\x00\x00\x24\x00\x25\x00\x4d\x00\x60\x00\x00\x00\x26\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x1a\x01\x00\x00\x62\x00\x00\x00\x00\x00\x23\x00\x2e\x00\x62\x00\x00\x00\x00\x00\x24\x00\x2e\x00\x00\x00\x60\x00\x00\x00\x24\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x27\x00\x00\x00\x00\x00\x23\x00\x00\x00\x27\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x28\x00\x29\x00\x24\x00\x23\x00\x00\x00\x62\x00\x00\x00\x00\x00\x25\x00\x2e\x00\x00\x00\x23\x00\x26\x00\x24\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x27\x00\x25\x00\x00\x00\x24\x00\x00\x00\x26\x00\x28\x00\x29\x00\x00\x00\x25\x00\x00\x00\x27\x00\x23\x00\x26\x00\x23\x00\x00\x00\x00\x00\x28\x00\x29\x00\x27\x00\xb1\x00\x00\x00\x24\x00\x00\x00\x24\x00\x28\x00\x29\x00\x00\x00\x25\x00\x00\x00\x25\x00\x2e\x00\x26\x00\x23\x00\x26\x00\x00\x00\x00\x00\x00\x00\x27\x00\xb1\x00\x27\x00\x23\x00\x00\x00\x24\x00\x28\x00\x29\x00\x28\x00\x29\x00\x00\x00\x25\x00\x00\x00\x24\x00\x23\x00\x26\x00\x00\x00\x00\x00\x00\x00\x25\x00\x2e\x00\x27\x00\xb1\x00\x26\x00\x24\x00\x00\x00\x00\x00\x28\x00\x29\x00\x27\x00\x25\x00\x00\x00\x23\x00\x00\x00\x26\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x27\x00\x2e\x00\x24\x00\xb7\x00\x00\x00\x00\x00\x28\x00\x29\x00\x25\x00\xb1\x00\x00\x00\xbe\x00\x26\x00\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x25\x00\x2e\x00\x24\x00\x00\x00\x26\x00\x28\x00\x29\x00\x00\x00\x25\x00\x00\x00\x27\x00\x23\x00\x26\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x27\x00\xb1\x00\x00\x00\x24\x00\x00\x00\x00\x00\x28\x00\x29\x00\x00\x00\x25\x00\x00\x00\x00\x00\x2e\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x2e\x00\x24\x00\xfb\xfe\x00\x00\x60\x00\x28\x00\x29\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x24\x00\x00\x00\x00\x00\x60\x00\x00\x00\x27\x00\x25\x00\x2e\x00\x00\x00\x00\x00\x26\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x28\x00\x29\x00\x61\x00\x2e\x00\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x8f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x8e\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--happyReduceArr = array (1, 270) [-	(1 , happyReduce_1),-	(2 , happyReduce_2),-	(3 , happyReduce_3),-	(4 , happyReduce_4),-	(5 , happyReduce_5),-	(6 , happyReduce_6),-	(7 , happyReduce_7),-	(8 , happyReduce_8),-	(9 , happyReduce_9),-	(10 , happyReduce_10),-	(11 , happyReduce_11),-	(12 , happyReduce_12),-	(13 , happyReduce_13),-	(14 , happyReduce_14),-	(15 , happyReduce_15),-	(16 , happyReduce_16),-	(17 , happyReduce_17),-	(18 , happyReduce_18),-	(19 , happyReduce_19),-	(20 , happyReduce_20),-	(21 , happyReduce_21),-	(22 , happyReduce_22),-	(23 , happyReduce_23),-	(24 , happyReduce_24),-	(25 , happyReduce_25),-	(26 , happyReduce_26),-	(27 , happyReduce_27),-	(28 , happyReduce_28),-	(29 , happyReduce_29),-	(30 , happyReduce_30),-	(31 , happyReduce_31),-	(32 , happyReduce_32),-	(33 , happyReduce_33),-	(34 , happyReduce_34),-	(35 , happyReduce_35),-	(36 , happyReduce_36),-	(37 , happyReduce_37),-	(38 , happyReduce_38),-	(39 , happyReduce_39),-	(40 , happyReduce_40),-	(41 , happyReduce_41),-	(42 , happyReduce_42),-	(43 , happyReduce_43),-	(44 , happyReduce_44),-	(45 , happyReduce_45),-	(46 , happyReduce_46),-	(47 , happyReduce_47),-	(48 , happyReduce_48),-	(49 , happyReduce_49),-	(50 , happyReduce_50),-	(51 , happyReduce_51),-	(52 , happyReduce_52),-	(53 , happyReduce_53),-	(54 , happyReduce_54),-	(55 , happyReduce_55),-	(56 , happyReduce_56),-	(57 , happyReduce_57),-	(58 , happyReduce_58),-	(59 , happyReduce_59),-	(60 , happyReduce_60),-	(61 , happyReduce_61),-	(62 , happyReduce_62),-	(63 , happyReduce_63),-	(64 , happyReduce_64),-	(65 , happyReduce_65),-	(66 , happyReduce_66),-	(67 , happyReduce_67),-	(68 , happyReduce_68),-	(69 , happyReduce_69),-	(70 , happyReduce_70),-	(71 , happyReduce_71),-	(72 , happyReduce_72),-	(73 , happyReduce_73),-	(74 , happyReduce_74),-	(75 , happyReduce_75),-	(76 , happyReduce_76),-	(77 , happyReduce_77),-	(78 , happyReduce_78),-	(79 , happyReduce_79),-	(80 , happyReduce_80),-	(81 , happyReduce_81),-	(82 , happyReduce_82),-	(83 , happyReduce_83),-	(84 , happyReduce_84),-	(85 , happyReduce_85),-	(86 , happyReduce_86),-	(87 , happyReduce_87),-	(88 , happyReduce_88),-	(89 , happyReduce_89),-	(90 , happyReduce_90),-	(91 , happyReduce_91),-	(92 , happyReduce_92),-	(93 , happyReduce_93),-	(94 , happyReduce_94),-	(95 , happyReduce_95),-	(96 , happyReduce_96),-	(97 , happyReduce_97),-	(98 , happyReduce_98),-	(99 , happyReduce_99),-	(100 , happyReduce_100),-	(101 , happyReduce_101),-	(102 , happyReduce_102),-	(103 , happyReduce_103),-	(104 , happyReduce_104),-	(105 , happyReduce_105),-	(106 , happyReduce_106),-	(107 , happyReduce_107),-	(108 , happyReduce_108),-	(109 , happyReduce_109),-	(110 , happyReduce_110),-	(111 , happyReduce_111),-	(112 , happyReduce_112),-	(113 , happyReduce_113),-	(114 , happyReduce_114),-	(115 , happyReduce_115),-	(116 , happyReduce_116),-	(117 , happyReduce_117),-	(118 , happyReduce_118),-	(119 , happyReduce_119),-	(120 , happyReduce_120),-	(121 , happyReduce_121),-	(122 , happyReduce_122),-	(123 , happyReduce_123),-	(124 , happyReduce_124),-	(125 , happyReduce_125),-	(126 , happyReduce_126),-	(127 , happyReduce_127),-	(128 , happyReduce_128),-	(129 , happyReduce_129),-	(130 , happyReduce_130),-	(131 , happyReduce_131),-	(132 , happyReduce_132),-	(133 , happyReduce_133),-	(134 , happyReduce_134),-	(135 , happyReduce_135),-	(136 , happyReduce_136),-	(137 , happyReduce_137),-	(138 , happyReduce_138),-	(139 , happyReduce_139),-	(140 , happyReduce_140),-	(141 , happyReduce_141),-	(142 , happyReduce_142),-	(143 , happyReduce_143),-	(144 , happyReduce_144),-	(145 , happyReduce_145),-	(146 , happyReduce_146),-	(147 , happyReduce_147),-	(148 , happyReduce_148),-	(149 , happyReduce_149),-	(150 , happyReduce_150),-	(151 , happyReduce_151),-	(152 , happyReduce_152),-	(153 , happyReduce_153),-	(154 , happyReduce_154),-	(155 , happyReduce_155),-	(156 , happyReduce_156),-	(157 , happyReduce_157),-	(158 , happyReduce_158),-	(159 , happyReduce_159),-	(160 , happyReduce_160),-	(161 , happyReduce_161),-	(162 , happyReduce_162),-	(163 , happyReduce_163),-	(164 , happyReduce_164),-	(165 , happyReduce_165),-	(166 , happyReduce_166),-	(167 , happyReduce_167),-	(168 , happyReduce_168),-	(169 , happyReduce_169),-	(170 , happyReduce_170),-	(171 , happyReduce_171),-	(172 , happyReduce_172),-	(173 , happyReduce_173),-	(174 , happyReduce_174),-	(175 , happyReduce_175),-	(176 , happyReduce_176),-	(177 , happyReduce_177),-	(178 , happyReduce_178),-	(179 , happyReduce_179),-	(180 , happyReduce_180),-	(181 , happyReduce_181),-	(182 , happyReduce_182),-	(183 , happyReduce_183),-	(184 , happyReduce_184),-	(185 , happyReduce_185),-	(186 , happyReduce_186),-	(187 , happyReduce_187),-	(188 , happyReduce_188),-	(189 , happyReduce_189),-	(190 , happyReduce_190),-	(191 , happyReduce_191),-	(192 , happyReduce_192),-	(193 , happyReduce_193),-	(194 , happyReduce_194),-	(195 , happyReduce_195),-	(196 , happyReduce_196),-	(197 , happyReduce_197),-	(198 , happyReduce_198),-	(199 , happyReduce_199),-	(200 , happyReduce_200),-	(201 , happyReduce_201),-	(202 , happyReduce_202),-	(203 , happyReduce_203),-	(204 , happyReduce_204),-	(205 , happyReduce_205),-	(206 , happyReduce_206),-	(207 , happyReduce_207),-	(208 , happyReduce_208),-	(209 , happyReduce_209),-	(210 , happyReduce_210),-	(211 , happyReduce_211),-	(212 , happyReduce_212),-	(213 , happyReduce_213),-	(214 , happyReduce_214),-	(215 , happyReduce_215),-	(216 , happyReduce_216),-	(217 , happyReduce_217),-	(218 , happyReduce_218),-	(219 , happyReduce_219),-	(220 , happyReduce_220),-	(221 , happyReduce_221),-	(222 , happyReduce_222),-	(223 , happyReduce_223),-	(224 , happyReduce_224),-	(225 , happyReduce_225),-	(226 , happyReduce_226),-	(227 , happyReduce_227),-	(228 , happyReduce_228),-	(229 , happyReduce_229),-	(230 , happyReduce_230),-	(231 , happyReduce_231),-	(232 , happyReduce_232),-	(233 , happyReduce_233),-	(234 , happyReduce_234),-	(235 , happyReduce_235),-	(236 , happyReduce_236),-	(237 , happyReduce_237),-	(238 , happyReduce_238),-	(239 , happyReduce_239),-	(240 , happyReduce_240),-	(241 , happyReduce_241),-	(242 , happyReduce_242),-	(243 , happyReduce_243),-	(244 , happyReduce_244),-	(245 , happyReduce_245),-	(246 , happyReduce_246),-	(247 , happyReduce_247),-	(248 , happyReduce_248),-	(249 , happyReduce_249),-	(250 , happyReduce_250),-	(251 , happyReduce_251),-	(252 , happyReduce_252),-	(253 , happyReduce_253),-	(254 , happyReduce_254),-	(255 , happyReduce_255),-	(256 , happyReduce_256),-	(257 , happyReduce_257),-	(258 , happyReduce_258),-	(259 , happyReduce_259),-	(260 , happyReduce_260),-	(261 , happyReduce_261),-	(262 , happyReduce_262),-	(263 , happyReduce_263),-	(264 , happyReduce_264),-	(265 , happyReduce_265),-	(266 , happyReduce_266),-	(267 , happyReduce_267),-	(268 , happyReduce_268),-	(269 , happyReduce_269),-	(270 , happyReduce_270)-	]--happy_n_terms = 64 :: Int-happy_n_nonterms = 104 :: Int--happyReduce_1 = happyReduce 4# 0# happyReduction_1-happyReduction_1 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut99 happy_x_2 of { happy_var_2 -> -	case happyOut5 happy_x_4 of { happy_var_4 -> -	happyIn4-		 (mkModule happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_2 = happyReduce 6# 1# happyReduction_2-happyReduction_2 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut8 happy_x_3 of { happy_var_3 -> -	case happyOut10 happy_x_4 of { happy_var_4 -> -	case happyOut6 happy_x_6 of { happy_var_6 -> -	happyIn5-		 ((reverse happy_var_3,reverse happy_var_4, happy_var_6)-	) `HappyStk` happyRest}}}--happyReduce_3 = happyReduce 5# 1# happyReduction_3-happyReduction_3 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut8 happy_x_2 of { happy_var_2 -> -	case happyOut10 happy_x_3 of { happy_var_3 -> -	case happyOut6 happy_x_5 of { happy_var_5 -> -	happyIn5-		 ((reverse happy_var_2, reverse happy_var_3, happy_var_5)-	) `HappyStk` happyRest}}}--happyReduce_4 = happySpecReduce_2  2# happyReduction_4-happyReduction_4 happy_x_2-	happy_x_1-	 =  case happyOut7 happy_x_2 of { happy_var_2 -> -	happyIn6-		 (happy_var_2-	)}--happyReduce_5 = happySpecReduce_0  2# happyReduction_5-happyReduction_5  =  happyIn6-		 ([]-	)--happyReduce_6 = happyReduce 4# 3# happyReduction_6-happyReduction_6 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut10 happy_x_3 of { happy_var_3 -> -	happyIn7-		 (reverse happy_var_3-	) `HappyStk` happyRest}--happyReduce_7 = happySpecReduce_3  3# happyReduction_7-happyReduction_7 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut10 happy_x_2 of { happy_var_2 -> -	happyIn7-		 (reverse happy_var_2-	)}--happyReduce_8 = happySpecReduce_3  4# happyReduction_8-happyReduction_8 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> -	case happyOut9 happy_x_2 of { happy_var_2 -> -	happyIn8-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_9 = happySpecReduce_0  4# happyReduction_9-happyReduction_9  =  happyIn8-		 ([]-	)--happyReduce_10 = happySpecReduce_2  5# happyReduction_10-happyReduction_10 happy_x_2-	happy_x_1-	 =  case happyOut99 happy_x_2 of { happy_var_2 -> -	happyIn9-		 (Import True (modId happy_var_2)-	)}--happyReduce_11 = happySpecReduce_2  5# happyReduction_11-happyReduction_11 happy_x_2-	happy_x_1-	 =  case happyOut99 happy_x_2 of { happy_var_2 -> -	happyIn9-		 (Import False (modId happy_var_2)-	)}--happyReduce_12 = happySpecReduce_3  6# happyReduction_12-happyReduction_12 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut10 happy_x_1 of { happy_var_1 -> -	case happyOut11 happy_x_3 of { happy_var_3 -> -	happyIn10-		 (happy_var_3 ++ happy_var_1-	)}}--happyReduce_13 = happySpecReduce_1  6# happyReduction_13-happyReduction_13 happy_x_1-	 =  case happyOut11 happy_x_1 of { happy_var_1 -> -	happyIn10-		 (happy_var_1-	)}--happyReduce_14 = happySpecReduce_3  7# happyReduction_14-happyReduction_14 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut99 happy_x_1 of { happy_var_1 -> -	case happyOut46 happy_x_3 of { happy_var_3 -> -	happyIn11-		 ([DKSig happy_var_1 happy_var_3]-	)}}--happyReduce_15 = happyReduce 5# 7# happyReduction_15-happyReduction_15 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut99 happy_x_2 of { happy_var_2 -> -	case happyOut15 happy_x_3 of { happy_var_3 -> -	case happyOut37 happy_x_5 of { happy_var_5 -> -	happyIn11-		 ([DType happy_var_2 (reverse happy_var_3) happy_var_5]-	) `HappyStk` happyRest}}}--happyReduce_16 = happyReduce 5# 7# happyReduction_16-happyReduction_16 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut99 happy_x_2 of { happy_var_2 -> -	case happyOut15 happy_x_3 of { happy_var_3 -> -	case happyOut14 happy_x_4 of { happy_var_4 -> -	case happyOut20 happy_x_5 of { happy_var_5 -> -	happyIn11-		 ([DData happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]-	) `HappyStk` happyRest}}}}--happyReduce_17 = happyReduce 5# 7# happyReduction_17-happyReduction_17 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut99 happy_x_2 of { happy_var_2 -> -	case happyOut15 happy_x_3 of { happy_var_3 -> -	case happyOut13 happy_x_4 of { happy_var_4 -> -	case happyOut22 happy_x_5 of { happy_var_5 -> -	happyIn11-		 ([DRec False happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]-	) `HappyStk` happyRest}}}}--happyReduce_18 = happyReduce 5# 7# happyReduction_18-happyReduction_18 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut99 happy_x_2 of { happy_var_2 -> -	case happyOut15 happy_x_3 of { happy_var_3 -> -	case happyOut12 happy_x_4 of { happy_var_4 -> -	case happyOut22 happy_x_5 of { happy_var_5 -> -	happyIn11-		 ([DRec True happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]-	) `HappyStk` happyRest}}}}--happyReduce_19 = happyReduce 5# 7# happyReduction_19-happyReduction_19 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut99 happy_x_2 of { happy_var_2 -> -	case happyOut15 happy_x_3 of { happy_var_3 -> -	case happyOut23 happy_x_5 of { happy_var_5 -> -	happyIn11-		 ([DRec True happy_var_2 (reverse happy_var_3) [] happy_var_5]-	) `HappyStk` happyRest}}}--happyReduce_20 = happySpecReduce_2  7# happyReduction_20-happyReduction_20 happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_2 of { happy_var_2 -> -	happyIn11-		 ([DTClass happy_var_2]-	)}--happyReduce_21 = happyReduce 4# 7# happyReduction_21-happyReduction_21 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut91 happy_x_2 of { happy_var_2 -> -	case happyOut37 happy_x_4 of { happy_var_4 -> -	happyIn11-		 ([DPSig happy_var_2 happy_var_4]-	) `HappyStk` happyRest}}--happyReduce_22 = happyReduce 6# 7# happyReduction_22-happyReduction_22 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut91 happy_x_2 of { happy_var_2 -> -	case happyOut37 happy_x_4 of { happy_var_4 -> -	case happyOut27 happy_x_6 of { happy_var_6 -> -	happyIn11-		 ([DBind [BEqn (exp2lhs (EVar happy_var_2)) (RExp (EBStruct Nothing [] happy_var_6))], DPSig happy_var_2 happy_var_4]-	) `HappyStk` happyRest}}}--happyReduce_23 = happyReduce 5# 7# happyReduction_23-happyReduction_23 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut91 happy_x_2 of { happy_var_2 -> -	case happyOut37 happy_x_4 of { happy_var_4 -> -	case happyOut34 happy_x_5 of { happy_var_5 -> -	happyIn11-		 ([DBind [BEqn (exp2lhs (EVar happy_var_2)) happy_var_5], DPSig happy_var_2 happy_var_4]-	) `HappyStk` happyRest}}}--happyReduce_24 = happySpecReduce_2  7# happyReduction_24-happyReduction_24 happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_2 of { happy_var_2 -> -	happyIn11-		 ([DInstance happy_var_2]-	)}--happyReduce_25 = happySpecReduce_2  7# happyReduction_25-happyReduction_25 happy_x_2-	happy_x_1-	 =  case happyOut17 happy_x_2 of { happy_var_2 -> -	happyIn11-		 ([DDefault (reverse happy_var_2)]-	)}--happyReduce_26 = happySpecReduce_3  7# happyReduction_26-happyReduction_26 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> -	case happyOut37 happy_x_3 of { happy_var_3 -> -	happyIn11-		 ([DBind [BSig (reverse happy_var_1) happy_var_3]]-	)}}--happyReduce_27 = happySpecReduce_2  7# happyReduction_27-happyReduction_27 happy_x_2-	happy_x_1-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> -	case happyOut34 happy_x_2 of { happy_var_2 -> -	happyIn11-		 ([DBind [BEqn happy_var_1 happy_var_2]]-	)}}--happyReduce_28 = happySpecReduce_2  8# happyReduction_28-happyReduction_28 happy_x_2-	happy_x_1-	 =  case happyOut42 happy_x_2 of { happy_var_2 -> -	happyIn12-		 (reverse happy_var_2-	)}--happyReduce_29 = happySpecReduce_2  8# happyReduction_29-happyReduction_29 happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_2 of { happy_var_2 -> -	happyIn12-		 ([happy_var_2]-	)}--happyReduce_30 = happySpecReduce_1  9# happyReduction_30-happyReduction_30 happy_x_1-	 =  case happyOut12 happy_x_1 of { happy_var_1 -> -	happyIn13-		 (happy_var_1-	)}--happyReduce_31 = happySpecReduce_0  9# happyReduction_31-happyReduction_31  =  happyIn13-		 ([]-	)--happyReduce_32 = happySpecReduce_2  10# happyReduction_32-happyReduction_32 happy_x_2-	happy_x_1-	 =  case happyOut42 happy_x_2 of { happy_var_2 -> -	happyIn14-		 (reverse happy_var_2-	)}--happyReduce_33 = happySpecReduce_2  10# happyReduction_33-happyReduction_33 happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_2 of { happy_var_2 -> -	happyIn14-		 ([happy_var_2]-	)}--happyReduce_34 = happySpecReduce_0  10# happyReduction_34-happyReduction_34  =  happyIn14-		 ([]-	)--happyReduce_35 = happySpecReduce_2  11# happyReduction_35-happyReduction_35 happy_x_2-	happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	case happyOut98 happy_x_2 of { happy_var_2 -> -	happyIn15-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_36 = happySpecReduce_0  11# happyReduction_36-happyReduction_36  =  happyIn15-		 ([]-	)--happyReduce_37 = happySpecReduce_3  12# happyReduction_37-happyReduction_37 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	case happyOut96 happy_x_3 of { happy_var_3 -> -	happyIn16-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_38 = happySpecReduce_1  12# happyReduction_38-happyReduction_38 happy_x_1-	 =  case happyOut96 happy_x_1 of { happy_var_1 -> -	happyIn16-		 ([happy_var_1]-	)}--happyReduce_39 = happyReduce 4# 13# happyReduction_39-happyReduction_39 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut18 happy_x_3 of { happy_var_3 -> -	happyIn17-		 (happy_var_3-	) `HappyStk` happyRest}--happyReduce_40 = happySpecReduce_3  13# happyReduction_40-happyReduction_40 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut18 happy_x_2 of { happy_var_2 -> -	happyIn17-		 (happy_var_2-	)}--happyReduce_41 = happySpecReduce_3  14# happyReduction_41-happyReduction_41 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOut19 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_42 = happySpecReduce_1  14# happyReduction_42-happyReduction_42 happy_x_1-	 =  case happyOut19 happy_x_1 of { happy_var_1 -> -	happyIn18-		 ([happy_var_1]-	)}--happyReduce_43 = happySpecReduce_3  15# happyReduction_43-happyReduction_43 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut91 happy_x_1 of { happy_var_1 -> -	case happyOut91 happy_x_3 of { happy_var_3 -> -	happyIn19-		 (Default True happy_var_1 happy_var_3-	)}}--happyReduce_44 = happySpecReduce_3  15# happyReduction_44-happyReduction_44 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut91 happy_x_1 of { happy_var_1 -> -	case happyOut37 happy_x_3 of { happy_var_3 -> -	happyIn19-		 (Derive happy_var_1 happy_var_3-	)}}--happyReduce_45 = happySpecReduce_2  16# happyReduction_45-happyReduction_45 happy_x_2-	happy_x_1-	 =  case happyOut21 happy_x_2 of { happy_var_2 -> -	happyIn20-		 (reverse happy_var_2-	)}--happyReduce_46 = happySpecReduce_0  16# happyReduction_46-happyReduction_46  =  happyIn20-		 ([]-	)--happyReduce_47 = happySpecReduce_3  17# happyReduction_47-happyReduction_47 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut21 happy_x_1 of { happy_var_1 -> -	case happyOut37 happy_x_3 of { happy_var_3 -> -	happyIn21-		 (type2cons happy_var_3 : happy_var_1-	)}}--happyReduce_48 = happySpecReduce_1  17# happyReduction_48-happyReduction_48 happy_x_1-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> -	happyIn21-		 ([type2cons happy_var_1]-	)}--happyReduce_49 = happySpecReduce_2  18# happyReduction_49-happyReduction_49 happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_2 of { happy_var_2 -> -	happyIn22-		 (happy_var_2-	)}--happyReduce_50 = happySpecReduce_0  18# happyReduction_50-happyReduction_50  =  happyIn22-		 ([]-	)--happyReduce_51 = happyReduce 4# 19# happyReduction_51-happyReduction_51 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut24 happy_x_3 of { happy_var_3 -> -	happyIn23-		 (reverse happy_var_3-	) `HappyStk` happyRest}--happyReduce_52 = happySpecReduce_3  19# happyReduction_52-happyReduction_52 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut24 happy_x_2 of { happy_var_2 -> -	happyIn23-		 (reverse happy_var_2-	)}--happyReduce_53 = happySpecReduce_1  20# happyReduction_53-happyReduction_53 happy_x_1-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> -	happyIn24-		 (happy_var_1-	)}--happyReduce_54 = happySpecReduce_0  20# happyReduction_54-happyReduction_54  =  happyIn24-		 ([]-	)--happyReduce_55 = happySpecReduce_3  21# happyReduction_55-happyReduction_55 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> -	case happyOut26 happy_x_3 of { happy_var_3 -> -	happyIn25-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_56 = happySpecReduce_1  21# happyReduction_56-happyReduction_56 happy_x_1-	 =  case happyOut26 happy_x_1 of { happy_var_1 -> -	happyIn25-		 ([happy_var_1]-	)}--happyReduce_57 = happySpecReduce_3  22# happyReduction_57-happyReduction_57 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> -	case happyOut37 happy_x_3 of { happy_var_3 -> -	happyIn26-		 (Sig (reverse happy_var_1) happy_var_3-	)}}--happyReduce_58 = happyReduce 4# 23# happyReduction_58-happyReduction_58 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn27-		 (reverse happy_var_3-	) `HappyStk` happyRest}--happyReduce_59 = happySpecReduce_3  23# happyReduction_59-happyReduction_59 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_2 of { happy_var_2 -> -	happyIn27-		 (reverse happy_var_2-	)}--happyReduce_60 = happySpecReduce_3  24# happyReduction_60-happyReduction_60 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut29 happy_x_3 of { happy_var_3 -> -	happyIn28-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_61 = happySpecReduce_1  24# happyReduction_61-happyReduction_61 happy_x_1-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> -	happyIn28-		 ([happy_var_1]-	)}--happyReduce_62 = happySpecReduce_3  25# happyReduction_62-happyReduction_62 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> -	case happyOut37 happy_x_3 of { happy_var_3 -> -	happyIn29-		 (BSig (reverse happy_var_1) happy_var_3-	)}}--happyReduce_63 = happySpecReduce_2  25# happyReduction_63-happyReduction_63 happy_x_2-	happy_x_1-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> -	case happyOut34 happy_x_2 of { happy_var_2 -> -	happyIn29-		 (BEqn happy_var_1 happy_var_2-	)}}--happyReduce_64 = happySpecReduce_3  26# happyReduction_64-happyReduction_64 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> -	case happyOut31 happy_x_3 of { happy_var_3 -> -	happyIn30-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_65 = happySpecReduce_1  26# happyReduction_65-happyReduction_65 happy_x_1-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> -	happyIn30-		 ([happy_var_1]-	)}--happyReduce_66 = happySpecReduce_3  27# happyReduction_66-happyReduction_66 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut91 happy_x_1 of { happy_var_1 -> -	case happyOut48 happy_x_3 of { happy_var_3 -> -	happyIn31-		 (Field happy_var_1  happy_var_3-	)}}--happyReduce_67 = happySpecReduce_3  28# happyReduction_67-happyReduction_67 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> -	case happyOut91 happy_x_3 of { happy_var_3 -> -	happyIn32-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_68 = happySpecReduce_1  28# happyReduction_68-happyReduction_68 happy_x_1-	 =  case happyOut91 happy_x_1 of { happy_var_1 -> -	happyIn32-		 ([happy_var_1]-	)}--happyReduce_69 = happySpecReduce_1  29# happyReduction_69-happyReduction_69 happy_x_1-	 =  case happyOut83 happy_x_1 of { happy_var_1 -> -	happyIn33-		 (exp2lhs happy_var_1-	)}--happyReduce_70 = happySpecReduce_2  30# happyReduction_70-happyReduction_70 happy_x_2-	happy_x_1-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> -	happyIn34-		 (RExp happy_var_2-	)}--happyReduce_71 = happySpecReduce_1  30# happyReduction_71-happyReduction_71 happy_x_1-	 =  case happyOut35 happy_x_1 of { happy_var_1 -> -	happyIn34-		 (RGrd (reverse happy_var_1)-	)}--happyReduce_72 = happySpecReduce_3  30# happyReduction_72-happyReduction_72 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_3 of { happy_var_3 -> -	happyIn34-		 (RWhere happy_var_1 happy_var_3-	)}}--happyReduce_73 = happySpecReduce_2  31# happyReduction_73-happyReduction_73 happy_x_2-	happy_x_1-	 =  case happyOut35 happy_x_1 of { happy_var_1 -> -	case happyOut36 happy_x_2 of { happy_var_2 -> -	happyIn35-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_74 = happySpecReduce_1  31# happyReduction_74-happyReduction_74 happy_x_1-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> -	happyIn35-		 ([happy_var_1]-	)}--happyReduce_75 = happyReduce 4# 32# happyReduction_75-happyReduction_75 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut64 happy_x_2 of { happy_var_2 -> -	case happyOut48 happy_x_4 of { happy_var_4 -> -	happyIn36-		 (GExp (reverse happy_var_2) happy_var_4-	) `HappyStk` happyRest}}--happyReduce_76 = happySpecReduce_3  33# happyReduction_76-happyReduction_76 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	case happyOut44 happy_x_3 of { happy_var_3 -> -	happyIn37-		 (TQual happy_var_1 happy_var_3-	)}}--happyReduce_77 = happySpecReduce_1  33# happyReduction_77-happyReduction_77 happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	happyIn37-		 (happy_var_1-	)}--happyReduce_78 = happySpecReduce_1  34# happyReduction_78-happyReduction_78 happy_x_1-	 =  case happyOut39 happy_x_1 of { happy_var_1 -> -	happyIn38-		 (tFun (reverse (tail happy_var_1)) (head happy_var_1)-	)}--happyReduce_79 = happySpecReduce_3  34# happyReduction_79-happyReduction_79 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut40 happy_x_1 of { happy_var_1 -> -	case happyOut40 happy_x_3 of { happy_var_3 -> -	happyIn38-		 (TSub happy_var_1 happy_var_3-	)}}--happyReduce_80 = happySpecReduce_3  35# happyReduction_80-happyReduction_80 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut39 happy_x_1 of { happy_var_1 -> -	case happyOut40 happy_x_3 of { happy_var_3 -> -	happyIn39-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_81 = happySpecReduce_1  35# happyReduction_81-happyReduction_81 happy_x_1-	 =  case happyOut40 happy_x_1 of { happy_var_1 -> -	happyIn39-		 ([happy_var_1]-	)}--happyReduce_82 = happySpecReduce_2  36# happyReduction_82-happyReduction_82 happy_x_2-	happy_x_1-	 =  case happyOut40 happy_x_1 of { happy_var_1 -> -	case happyOut41 happy_x_2 of { happy_var_2 -> -	happyIn40-		 (TAp happy_var_1 happy_var_2-	)}}--happyReduce_83 = happySpecReduce_1  36# happyReduction_83-happyReduction_83 happy_x_1-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> -	happyIn40-		 (happy_var_1-	)}--happyReduce_84 = happySpecReduce_1  37# happyReduction_84-happyReduction_84 happy_x_1-	 =  case happyOut92 happy_x_1 of { happy_var_1 -> -	happyIn41-		 (TCon happy_var_1-	)}--happyReduce_85 = happySpecReduce_1  37# happyReduction_85-happyReduction_85 happy_x_1-	 =  case happyOut98 happy_x_1 of { happy_var_1 -> -	happyIn41-		 (TVar happy_var_1-	)}--happyReduce_86 = happySpecReduce_1  37# happyReduction_86-happyReduction_86 happy_x_1-	 =  happyIn41-		 (TWild-	)--happyReduce_87 = happySpecReduce_2  37# happyReduction_87-happyReduction_87 happy_x_2-	happy_x_1-	 =  happyIn41-		 (TCon (prim LIST)-	)--happyReduce_88 = happySpecReduce_3  37# happyReduction_88-happyReduction_88 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut43 happy_x_2 of { happy_var_2 -> -	happyIn41-		 (TCon (tuple (happy_var_2+1))-	)}--happyReduce_89 = happySpecReduce_2  37# happyReduction_89-happyReduction_89 happy_x_2-	happy_x_1-	 =  happyIn41-		 (TCon (prim UNITTYPE)-	)--happyReduce_90 = happySpecReduce_3  37# happyReduction_90-happyReduction_90 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_2 of { happy_var_2 -> -	happyIn41-		 (happy_var_2-	)}--happyReduce_91 = happySpecReduce_3  37# happyReduction_91-happyReduction_91 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut42 happy_x_2 of { happy_var_2 -> -	happyIn41-		 (TTup (reverse happy_var_2)-	)}--happyReduce_92 = happySpecReduce_3  37# happyReduction_92-happyReduction_92 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_2 of { happy_var_2 -> -	happyIn41-		 (TList happy_var_2-	)}--happyReduce_93 = happySpecReduce_3  38# happyReduction_93-happyReduction_93 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut42 happy_x_1 of { happy_var_1 -> -	case happyOut38 happy_x_3 of { happy_var_3 -> -	happyIn42-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_94 = happySpecReduce_3  38# happyReduction_94-happyReduction_94 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	case happyOut38 happy_x_3 of { happy_var_3 -> -	happyIn42-		 ([happy_var_3, happy_var_1]-	)}}--happyReduce_95 = happySpecReduce_2  39# happyReduction_95-happyReduction_95 happy_x_2-	happy_x_1-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> -	happyIn43-		 (happy_var_1 + 1-	)}--happyReduce_96 = happySpecReduce_1  39# happyReduction_96-happyReduction_96 happy_x_1-	 =  happyIn43-		 (1-	)--happyReduce_97 = happySpecReduce_3  40# happyReduction_97-happyReduction_97 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> -	case happyOut45 happy_x_3 of { happy_var_3 -> -	happyIn44-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_98 = happySpecReduce_1  40# happyReduction_98-happyReduction_98 happy_x_1-	 =  case happyOut45 happy_x_1 of { happy_var_1 -> -	happyIn44-		 ([happy_var_1]-	)}--happyReduce_99 = happySpecReduce_1  41# happyReduction_99-happyReduction_99 happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	happyIn45-		 (PType happy_var_1-	)}--happyReduce_100 = happySpecReduce_3  41# happyReduction_100-happyReduction_100 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut98 happy_x_1 of { happy_var_1 -> -	case happyOut46 happy_x_3 of { happy_var_3 -> -	happyIn45-		 (PKind happy_var_1 happy_var_3-	)}}--happyReduce_101 = happySpecReduce_3  42# happyReduction_101-happyReduction_101 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut47 happy_x_1 of { happy_var_1 -> -	case happyOut46 happy_x_3 of { happy_var_3 -> -	happyIn46-		 (KFun happy_var_1 happy_var_3-	)}}--happyReduce_102 = happySpecReduce_1  42# happyReduction_102-happyReduction_102 happy_x_1-	 =  case happyOut47 happy_x_1 of { happy_var_1 -> -	happyIn46-		 (happy_var_1-	)}--happyReduce_103 = happySpecReduce_1  43# happyReduction_103-happyReduction_103 happy_x_1-	 =  happyIn47-		 (Star-	)--happyReduce_104 = happySpecReduce_1  43# happyReduction_104-happyReduction_104 happy_x_1-	 =  happyIn47-		 (KWild-	)--happyReduce_105 = happySpecReduce_3  43# happyReduction_105-happyReduction_105 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut46 happy_x_2 of { happy_var_2 -> -	happyIn47-		 (happy_var_2-	)}--happyReduce_106 = happySpecReduce_3  44# happyReduction_106-happyReduction_106 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> -	case happyOut40 happy_x_3 of { happy_var_3 -> -	happyIn48-		 (ESig happy_var_1 happy_var_3-	)}}--happyReduce_107 = happySpecReduce_1  44# happyReduction_107-happyReduction_107 happy_x_1-	 =  case happyOut49 happy_x_1 of { happy_var_1 -> -	happyIn48-		 (happy_var_1-	)}--happyReduce_108 = happySpecReduce_2  44# happyReduction_108-happyReduction_108 happy_x_2-	happy_x_1-	 =  case happyOut27 happy_x_2 of { happy_var_2 -> -	happyIn48-		 (EBStruct Nothing [] happy_var_2-	)}--happyReduce_109 = happySpecReduce_1  45# happyReduction_109-happyReduction_109 happy_x_1-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> -	happyIn49-		 (happy_var_1-	)}--happyReduce_110 = happySpecReduce_1  45# happyReduction_110-happyReduction_110 happy_x_1-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> -	happyIn49-		 (happy_var_1-	)}--happyReduce_111 = happySpecReduce_1  46# happyReduction_111-happyReduction_111 happy_x_1-	 =  case happyOut52 happy_x_1 of { happy_var_1 -> -	happyIn50-		 (transFix happy_var_1-	)}--happyReduce_112 = happySpecReduce_1  46# happyReduction_112-happyReduction_112 happy_x_1-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> -	happyIn50-		 (happy_var_1-	)}--happyReduce_113 = happySpecReduce_1  47# happyReduction_113-happyReduction_113 happy_x_1-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> -	happyIn51-		 (transFix happy_var_1-	)}--happyReduce_114 = happySpecReduce_1  47# happyReduction_114-happyReduction_114 happy_x_1-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> -	happyIn51-		 (happy_var_1-	)}--happyReduce_115 = happyReduce 4# 48# happyReduction_115-happyReduction_115 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut52 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut54 happy_x_4 of { happy_var_4 -> -	happyIn52-		 (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_116 = happySpecReduce_3  48# happyReduction_116-happyReduction_116 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut52 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut54 happy_x_3 of { happy_var_3 -> -	happyIn52-		 (Cons happy_var_1 happy_var_2 happy_var_3-	)}}}--happyReduce_117 = happySpecReduce_2  48# happyReduction_117-happyReduction_117 happy_x_2-	happy_x_1-	 =  case happyOut54 happy_x_2 of { happy_var_2 -> -	happyIn52-		 (Nil (ENeg happy_var_2)-	)}--happyReduce_118 = happyReduce 4# 48# happyReduction_118-happyReduction_118 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut54 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut54 happy_x_4 of { happy_var_4 -> -	happyIn52-		 (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_119 = happySpecReduce_3  48# happyReduction_119-happyReduction_119 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut54 happy_x_3 of { happy_var_3 -> -	happyIn52-		 (Cons (Nil happy_var_1) happy_var_2 happy_var_3-	)}}}--happyReduce_120 = happyReduce 4# 49# happyReduction_120-happyReduction_120 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut52 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut56 happy_x_4 of { happy_var_4 -> -	happyIn53-		 (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_121 = happySpecReduce_3  49# happyReduction_121-happyReduction_121 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut52 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut56 happy_x_3 of { happy_var_3 -> -	happyIn53-		 (Cons happy_var_1 happy_var_2 happy_var_3-	)}}}--happyReduce_122 = happySpecReduce_2  49# happyReduction_122-happyReduction_122 happy_x_2-	happy_x_1-	 =  case happyOut56 happy_x_2 of { happy_var_2 -> -	happyIn53-		 (Nil (ENeg happy_var_2)-	)}--happyReduce_123 = happyReduce 4# 49# happyReduction_123-happyReduction_123 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut54 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut56 happy_x_4 of { happy_var_4 -> -	happyIn53-		 (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_124 = happySpecReduce_3  49# happyReduction_124-happyReduction_124 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut56 happy_x_3 of { happy_var_3 -> -	happyIn53-		 (Cons (Nil happy_var_1) happy_var_2 happy_var_3-	)}}}--happyReduce_125 = happyReduce 4# 50# happyReduction_125-happyReduction_125 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut48 happy_x_2 of { happy_var_2 -> -	case happyOut66 happy_x_4 of { happy_var_4 -> -	happyIn54-		 (ECase happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_126 = happyReduce 4# 50# happyReduction_126-happyReduction_126 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut30 happy_x_3 of { happy_var_3 -> -	happyIn54-		 (ERec Nothing (reverse happy_var_3)-	) `HappyStk` happyRest}--happyReduce_127 = happySpecReduce_3  50# happyReduction_127-happyReduction_127 happy_x_3-	happy_x_2-	happy_x_1-	 =  happyIn54-		 (ERec Nothing []-	)--happyReduce_128 = happySpecReduce_1  50# happyReduction_128-happyReduction_128 happy_x_1-	 =  case happyOut55 happy_x_1 of { happy_var_1 -> -	happyIn54-		 (happy_var_1-	)}--happyReduce_129 = happySpecReduce_3  51# happyReduction_129-happyReduction_129 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut78 happy_x_3 of { happy_var_3 -> -	happyIn55-		 (EDo Nothing Nothing happy_var_3-	)}--happyReduce_130 = happySpecReduce_3  51# happyReduction_130-happyReduction_130 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut78 happy_x_3 of { happy_var_3 -> -	happyIn55-		 (ETempl Nothing Nothing happy_var_3-	)}--happyReduce_131 = happySpecReduce_3  51# happyReduction_131-happyReduction_131 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut78 happy_x_3 of { happy_var_3 -> -	happyIn55-		 (EAct Nothing happy_var_3-	)}--happyReduce_132 = happySpecReduce_3  51# happyReduction_132-happyReduction_132 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut78 happy_x_3 of { happy_var_3 -> -	happyIn55-		 (EReq Nothing happy_var_3-	)}--happyReduce_133 = happyReduce 5# 51# happyReduction_133-happyReduction_133 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut92 happy_x_1 of { happy_var_1 -> -	case happyOut30 happy_x_4 of { happy_var_4 -> -	happyIn55-		 (ERec (Just (happy_var_1,True)) (reverse happy_var_4)-	) `HappyStk` happyRest}}--happyReduce_134 = happyReduce 6# 51# happyReduction_134-happyReduction_134 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut92 happy_x_1 of { happy_var_1 -> -	case happyOut30 happy_x_4 of { happy_var_4 -> -	happyIn55-		 (ERec (Just (happy_var_1,False)) (reverse happy_var_4)-	) `HappyStk` happyRest}}--happyReduce_135 = happyReduce 7# 51# happyReduction_135-happyReduction_135 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut92 happy_x_1 of { happy_var_1 -> -	case happyOut30 happy_x_4 of { happy_var_4 -> -	happyIn55-		 (ERec (Just (happy_var_1,False)) (reverse happy_var_4)-	) `HappyStk` happyRest}}--happyReduce_136 = happyReduce 5# 51# happyReduction_136-happyReduction_136 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut92 happy_x_1 of { happy_var_1 -> -	happyIn55-		 (ERec (Just (happy_var_1,False)) []-	) `HappyStk` happyRest}--happyReduce_137 = happyReduce 4# 51# happyReduction_137-happyReduction_137 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut92 happy_x_1 of { happy_var_1 -> -	happyIn55-		 (ERec (Just (happy_var_1,True)) []-	) `HappyStk` happyRest}--happyReduce_138 = happySpecReduce_1  51# happyReduction_138-happyReduction_138 happy_x_1-	 =  case happyOut58 happy_x_1 of { happy_var_1 -> -	happyIn55-		 (happy_var_1-	)}--happyReduce_139 = happyReduce 6# 52# happyReduction_139-happyReduction_139 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut48 happy_x_2 of { happy_var_2 -> -	case happyOut48 happy_x_4 of { happy_var_4 -> -	case happyOut48 happy_x_6 of { happy_var_6 -> -	happyIn56-		 (EIf happy_var_2 happy_var_4 happy_var_6-	) `HappyStk` happyRest}}}--happyReduce_140 = happySpecReduce_1  52# happyReduction_140-happyReduction_140 happy_x_1-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> -	happyIn56-		 (happy_var_1-	)}--happyReduce_141 = happyReduce 4# 53# happyReduction_141-happyReduction_141 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut89 happy_x_2 of { happy_var_2 -> -	case happyOut48 happy_x_4 of { happy_var_4 -> -	happyIn57-		 (ELam (reverse happy_var_2) happy_var_4-	) `HappyStk` happyRest}}--happyReduce_142 = happyReduce 4# 53# happyReduction_142-happyReduction_142 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut27 happy_x_2 of { happy_var_2 -> -	case happyOut48 happy_x_4 of { happy_var_4 -> -	happyIn57-		 (ELet happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_143 = happySpecReduce_3  53# happyReduction_143-happyReduction_143 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut59 happy_x_2 of { happy_var_2 -> -	case happyOut48 happy_x_3 of { happy_var_3 -> -	happyIn57-		 (EAfter happy_var_2 happy_var_3-	)}}--happyReduce_144 = happySpecReduce_3  53# happyReduction_144-happyReduction_144 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut59 happy_x_2 of { happy_var_2 -> -	case happyOut48 happy_x_3 of { happy_var_3 -> -	happyIn57-		 (EBefore happy_var_2 happy_var_3-	)}}--happyReduce_145 = happySpecReduce_2  54# happyReduction_145-happyReduction_145 happy_x_2-	happy_x_1-	 =  case happyOut58 happy_x_1 of { happy_var_1 -> -	case happyOut59 happy_x_2 of { happy_var_2 -> -	happyIn58-		 (EAp happy_var_1 happy_var_2-	)}}--happyReduce_146 = happySpecReduce_1  54# happyReduction_146-happyReduction_146 happy_x_1-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> -	happyIn58-		 (happy_var_1-	)}--happyReduce_147 = happySpecReduce_3  55# happyReduction_147-happyReduction_147 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> -	case happyOut91 happy_x_3 of { happy_var_3 -> -	happyIn59-		 (ESelect happy_var_1 happy_var_3-	)}}--happyReduce_148 = happySpecReduce_1  55# happyReduction_148-happyReduction_148 happy_x_1-	 =  case happyOut60 happy_x_1 of { happy_var_1 -> -	happyIn59-		 (happy_var_1-	)}--happyReduce_149 = happySpecReduce_1  56# happyReduction_149-happyReduction_149 happy_x_1-	 =  case happyOut91 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (EVar happy_var_1-	)}--happyReduce_150 = happySpecReduce_1  56# happyReduction_150-happyReduction_150 happy_x_1-	 =  happyIn60-		 (EWild-	)--happyReduce_151 = happySpecReduce_1  56# happyReduction_151-happyReduction_151 happy_x_1-	 =  case happyOut92 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (ECon happy_var_1-	)}--happyReduce_152 = happySpecReduce_1  56# happyReduction_152-happyReduction_152 happy_x_1-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (ELit happy_var_1-	)}--happyReduce_153 = happySpecReduce_2  56# happyReduction_153-happyReduction_153 happy_x_2-	happy_x_1-	 =  happyIn60-		 (ECon (prim UNITTERM)-	)--happyReduce_154 = happyReduce 4# 56# happyReduction_154-happyReduction_154 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut91 happy_x_3 of { happy_var_3 -> -	happyIn60-		 (ESel happy_var_3-	) `HappyStk` happyRest}--happyReduce_155 = happySpecReduce_3  56# happyReduction_155-happyReduction_155 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> -	happyIn60-		 (happy_var_2-	)}--happyReduce_156 = happySpecReduce_3  56# happyReduction_156-happyReduction_156 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut63 happy_x_2 of { happy_var_2 -> -	happyIn60-		 (ETup (reverse happy_var_2)-	)}--happyReduce_157 = happySpecReduce_3  56# happyReduction_157-happyReduction_157 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut62 happy_x_2 of { happy_var_2 -> -	happyIn60-		 (happy_var_2-	)}--happyReduce_158 = happyReduce 4# 56# happyReduction_158-happyReduction_158 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut54 happy_x_2 of { happy_var_2 -> -	case happyOut95 happy_x_3 of { happy_var_3 -> -	happyIn60-		 (ESectR happy_var_2 happy_var_3-	) `HappyStk` happyRest}}--happyReduce_159 = happyReduce 4# 56# happyReduction_159-happyReduction_159 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut97 happy_x_2 of { happy_var_2 -> -	case happyOut58 happy_x_3 of { happy_var_3 -> -	happyIn60-		 (ESectL happy_var_2 happy_var_3-	) `HappyStk` happyRest}}--happyReduce_160 = happySpecReduce_3  56# happyReduction_160-happyReduction_160 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut43 happy_x_2 of { happy_var_2 -> -	happyIn60-		 (ECon (tuple (happy_var_2+1))-	)}--happyReduce_161 = happySpecReduce_2  57# happyReduction_161-happyReduction_161 happy_x_2-	happy_x_1-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (IntTok happy_var_2) -> -	happyIn61-		 (LInt (Just happy_var_1) (readInteger happy_var_2)-	)}}--happyReduce_162 = happySpecReduce_2  57# happyReduction_162-happyReduction_162 happy_x_2-	happy_x_1-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (FloatTok happy_var_2) -> -	happyIn61-		 (LRat (Just happy_var_1) (readRational happy_var_2)-	)}}--happyReduce_163 = happySpecReduce_2  57# happyReduction_163-happyReduction_163 happy_x_2-	happy_x_1-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Character happy_var_2) -> -	happyIn61-		 (LChr (Just happy_var_1) happy_var_2-	)}}--happyReduce_164 = happySpecReduce_2  57# happyReduction_164-happyReduction_164 happy_x_2-	happy_x_1-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (StringTok happy_var_2) -> -	happyIn61-		 (LStr (Just happy_var_1) happy_var_2-	)}}--happyReduce_165 = happySpecReduce_0  58# happyReduction_165-happyReduction_165  =  happyIn62-		 (EList []-	)--happyReduce_166 = happySpecReduce_1  58# happyReduction_166-happyReduction_166 happy_x_1-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> -	happyIn62-		 (EList [happy_var_1]-	)}--happyReduce_167 = happySpecReduce_1  58# happyReduction_167-happyReduction_167 happy_x_1-	 =  case happyOut63 happy_x_1 of { happy_var_1 -> -	happyIn62-		 (EList (reverse happy_var_1)-	)}--happyReduce_168 = happySpecReduce_3  58# happyReduction_168-happyReduction_168 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> -	case happyOut48 happy_x_3 of { happy_var_3 -> -	happyIn62-		 (ESeq happy_var_1 Nothing happy_var_3-	)}}--happyReduce_169 = happyReduce 5# 58# happyReduction_169-happyReduction_169 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut48 happy_x_1 of { happy_var_1 -> -	case happyOut48 happy_x_3 of { happy_var_3 -> -	case happyOut48 happy_x_5 of { happy_var_5 -> -	happyIn62-		 (ESeq happy_var_1 (Just happy_var_3) happy_var_5-	) `HappyStk` happyRest}}}--happyReduce_170 = happySpecReduce_3  58# happyReduction_170-happyReduction_170 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> -	case happyOut64 happy_x_3 of { happy_var_3 -> -	happyIn62-		 (EComp happy_var_1 (reverse happy_var_3)-	)}}--happyReduce_171 = happySpecReduce_3  59# happyReduction_171-happyReduction_171 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut63 happy_x_1 of { happy_var_1 -> -	case happyOut48 happy_x_3 of { happy_var_3 -> -	happyIn63-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_172 = happySpecReduce_3  59# happyReduction_172-happyReduction_172 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> -	case happyOut48 happy_x_3 of { happy_var_3 -> -	happyIn63-		 ([happy_var_3,happy_var_1]-	)}}--happyReduce_173 = happySpecReduce_3  60# happyReduction_173-happyReduction_173 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut64 happy_x_1 of { happy_var_1 -> -	case happyOut65 happy_x_3 of { happy_var_3 -> -	happyIn64-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_174 = happySpecReduce_1  60# happyReduction_174-happyReduction_174 happy_x_1-	 =  case happyOut65 happy_x_1 of { happy_var_1 -> -	happyIn64-		 ([happy_var_1]-	)}--happyReduce_175 = happySpecReduce_3  61# happyReduction_175-happyReduction_175 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut88 happy_x_1 of { happy_var_1 -> -	case happyOut83 happy_x_3 of { happy_var_3 -> -	happyIn65-		 (QGen happy_var_1 happy_var_3-	)}}--happyReduce_176 = happySpecReduce_1  61# happyReduction_176-happyReduction_176 happy_x_1-	 =  case happyOut83 happy_x_1 of { happy_var_1 -> -	happyIn65-		 (QExp happy_var_1-	)}--happyReduce_177 = happySpecReduce_2  61# happyReduction_177-happyReduction_177 happy_x_2-	happy_x_1-	 =  case happyOut27 happy_x_2 of { happy_var_2 -> -	happyIn65-		 (QLet happy_var_2-	)}--happyReduce_178 = happyReduce 4# 62# happyReduction_178-happyReduction_178 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut67 happy_x_3 of { happy_var_3 -> -	happyIn66-		 (reverse happy_var_3-	) `HappyStk` happyRest}--happyReduce_179 = happySpecReduce_3  62# happyReduction_179-happyReduction_179 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut67 happy_x_2 of { happy_var_2 -> -	happyIn66-		 (reverse happy_var_2-	)}--happyReduce_180 = happySpecReduce_3  63# happyReduction_180-happyReduction_180 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut67 happy_x_1 of { happy_var_1 -> -	case happyOut68 happy_x_3 of { happy_var_3 -> -	happyIn67-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_181 = happySpecReduce_1  63# happyReduction_181-happyReduction_181 happy_x_1-	 =  case happyOut68 happy_x_1 of { happy_var_1 -> -	happyIn67-		 ([happy_var_1]-	)}--happyReduce_182 = happySpecReduce_2  64# happyReduction_182-happyReduction_182 happy_x_2-	happy_x_1-	 =  case happyOut88 happy_x_1 of { happy_var_1 -> -	case happyOut69 happy_x_2 of { happy_var_2 -> -	happyIn68-		 (Alt happy_var_1 happy_var_2-	)}}--happyReduce_183 = happySpecReduce_2  65# happyReduction_183-happyReduction_183 happy_x_2-	happy_x_1-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> -	happyIn69-		 (RExp happy_var_2-	)}--happyReduce_184 = happySpecReduce_1  65# happyReduction_184-happyReduction_184 happy_x_1-	 =  case happyOut70 happy_x_1 of { happy_var_1 -> -	happyIn69-		 (RGrd (reverse happy_var_1)-	)}--happyReduce_185 = happySpecReduce_3  65# happyReduction_185-happyReduction_185 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut69 happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_3 of { happy_var_3 -> -	happyIn69-		 (RWhere happy_var_1 happy_var_3-	)}}--happyReduce_186 = happySpecReduce_2  66# happyReduction_186-happyReduction_186 happy_x_2-	happy_x_1-	 =  case happyOut70 happy_x_1 of { happy_var_1 -> -	case happyOut71 happy_x_2 of { happy_var_2 -> -	happyIn70-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_187 = happySpecReduce_1  66# happyReduction_187-happyReduction_187 happy_x_1-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> -	happyIn70-		 ([happy_var_1]-	)}--happyReduce_188 = happyReduce 4# 67# happyReduction_188-happyReduction_188 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut64 happy_x_2 of { happy_var_2 -> -	case happyOut48 happy_x_4 of { happy_var_4 -> -	happyIn71-		 (GExp (reverse happy_var_2) happy_var_4-	) `HappyStk` happyRest}}--happyReduce_189 = happyReduce 4# 68# happyReduction_189-happyReduction_189 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut73 happy_x_3 of { happy_var_3 -> -	happyIn72-		 (reverse happy_var_3-	) `HappyStk` happyRest}--happyReduce_190 = happySpecReduce_3  68# happyReduction_190-happyReduction_190 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut73 happy_x_2 of { happy_var_2 -> -	happyIn72-		 (reverse happy_var_2-	)}--happyReduce_191 = happySpecReduce_3  69# happyReduction_191-happyReduction_191 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut73 happy_x_1 of { happy_var_1 -> -	case happyOut74 happy_x_3 of { happy_var_3 -> -	happyIn73-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_192 = happySpecReduce_1  69# happyReduction_192-happyReduction_192 happy_x_1-	 =  case happyOut74 happy_x_1 of { happy_var_1 -> -	happyIn73-		 ([happy_var_1]-	)}--happyReduce_193 = happySpecReduce_2  70# happyReduction_193-happyReduction_193 happy_x_2-	happy_x_1-	 =  case happyOut88 happy_x_1 of { happy_var_1 -> -	case happyOut75 happy_x_2 of { happy_var_2 -> -	happyIn74-		 (Alt happy_var_1 happy_var_2-	)}}--happyReduce_194 = happySpecReduce_2  71# happyReduction_194-happyReduction_194 happy_x_2-	happy_x_1-	 =  case happyOut78 happy_x_2 of { happy_var_2 -> -	happyIn75-		 (RExp happy_var_2-	)}--happyReduce_195 = happySpecReduce_1  71# happyReduction_195-happyReduction_195 happy_x_1-	 =  case happyOut76 happy_x_1 of { happy_var_1 -> -	happyIn75-		 (RGrd (reverse happy_var_1)-	)}--happyReduce_196 = happySpecReduce_3  71# happyReduction_196-happyReduction_196 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut75 happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_3 of { happy_var_3 -> -	happyIn75-		 (RWhere happy_var_1 happy_var_3-	)}}--happyReduce_197 = happySpecReduce_2  72# happyReduction_197-happyReduction_197 happy_x_2-	happy_x_1-	 =  case happyOut76 happy_x_1 of { happy_var_1 -> -	case happyOut77 happy_x_2 of { happy_var_2 -> -	happyIn76-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_198 = happySpecReduce_1  72# happyReduction_198-happyReduction_198 happy_x_1-	 =  case happyOut77 happy_x_1 of { happy_var_1 -> -	happyIn76-		 ([happy_var_1]-	)}--happyReduce_199 = happyReduce 4# 73# happyReduction_199-happyReduction_199 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut64 happy_x_2 of { happy_var_2 -> -	case happyOut78 happy_x_4 of { happy_var_4 -> -	happyIn77-		 (GExp (reverse happy_var_2) happy_var_4-	) `HappyStk` happyRest}}--happyReduce_200 = happyReduce 4# 74# happyReduction_200-happyReduction_200 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut79 happy_x_3 of { happy_var_3 -> -	happyIn78-		 (reverse happy_var_3-	) `HappyStk` happyRest}--happyReduce_201 = happySpecReduce_3  74# happyReduction_201-happyReduction_201 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut79 happy_x_2 of { happy_var_2 -> -	happyIn78-		 (reverse happy_var_2-	)}--happyReduce_202 = happySpecReduce_1  75# happyReduction_202-happyReduction_202 happy_x_1-	 =  case happyOut80 happy_x_1 of { happy_var_1 -> -	happyIn79-		 (happy_var_1-	)}--happyReduce_203 = happySpecReduce_0  75# happyReduction_203-happyReduction_203  =  happyIn79-		 ([]-	)--happyReduce_204 = happySpecReduce_3  76# happyReduction_204-happyReduction_204 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut80 happy_x_1 of { happy_var_1 -> -	case happyOut81 happy_x_3 of { happy_var_3 -> -	happyIn80-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_205 = happySpecReduce_1  76# happyReduction_205-happyReduction_205 happy_x_1-	 =  case happyOut81 happy_x_1 of { happy_var_1 -> -	happyIn80-		 ([happy_var_1]-	)}--happyReduce_206 = happySpecReduce_3  77# happyReduction_206-happyReduction_206 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut88 happy_x_1 of { happy_var_1 -> -	case happyOut48 happy_x_3 of { happy_var_3 -> -	happyIn81-		 (SGen happy_var_1 happy_var_3-	)}}--happyReduce_207 = happySpecReduce_1  77# happyReduction_207-happyReduction_207 happy_x_1-	 =  case happyOut82 happy_x_1 of { happy_var_1 -> -	happyIn81-		 (SExp happy_var_1-	)}--happyReduce_208 = happySpecReduce_3  77# happyReduction_208-happyReduction_208 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> -	case happyOut37 happy_x_3 of { happy_var_3 -> -	happyIn81-		 (SBind [BSig happy_var_1 happy_var_3]-	)}}--happyReduce_209 = happySpecReduce_2  77# happyReduction_209-happyReduction_209 happy_x_2-	happy_x_1-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> -	case happyOut34 happy_x_2 of { happy_var_2 -> -	happyIn81-		 (SBind [BEqn happy_var_1 happy_var_2]-	)}}--happyReduce_210 = happyReduce 4# 77# happyReduction_210-happyReduction_210 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut33 happy_x_1 of { happy_var_1 -> -	case happyOut48 happy_x_4 of { happy_var_4 -> -	happyIn81-		 (SBind [BEqn happy_var_1 (RExp (EAp (EVar (prim New)) happy_var_4))]-	) `HappyStk` happyRest}}--happyReduce_211 = happySpecReduce_3  77# happyReduction_211-happyReduction_211 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut88 happy_x_1 of { happy_var_1 -> -	case happyOut48 happy_x_3 of { happy_var_3 -> -	happyIn81-		 (SAss happy_var_1 happy_var_3-	)}}--happyReduce_212 = happySpecReduce_2  77# happyReduction_212-happyReduction_212 happy_x_2-	happy_x_1-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> -	happyIn81-		 (SRet happy_var_2-	)}--happyReduce_213 = happyReduce 4# 77# happyReduction_213-happyReduction_213 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut64 happy_x_2 of { happy_var_2 -> -	case happyOut78 happy_x_4 of { happy_var_4 -> -	happyIn81-		 (SForall (reverse happy_var_2) happy_var_4-	) `HappyStk` happyRest}}--happyReduce_214 = happyReduce 4# 77# happyReduction_214-happyReduction_214 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut48 happy_x_2 of { happy_var_2 -> -	case happyOut78 happy_x_4 of { happy_var_4 -> -	happyIn81-		 (SIf happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_215 = happyReduce 4# 77# happyReduction_215-happyReduction_215 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut48 happy_x_2 of { happy_var_2 -> -	case happyOut78 happy_x_4 of { happy_var_4 -> -	happyIn81-		 (SElsif happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_216 = happySpecReduce_2  77# happyReduction_216-happyReduction_216 happy_x_2-	happy_x_1-	 =  case happyOut78 happy_x_2 of { happy_var_2 -> -	happyIn81-		 (SElse happy_var_2-	)}--happyReduce_217 = happyReduce 4# 77# happyReduction_217-happyReduction_217 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut48 happy_x_2 of { happy_var_2 -> -	case happyOut78 happy_x_4 of { happy_var_4 -> -	happyIn81-		 (SWhile happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_218 = happyReduce 4# 77# happyReduction_218-happyReduction_218 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut48 happy_x_2 of { happy_var_2 -> -	case happyOut72 happy_x_4 of { happy_var_4 -> -	happyIn81-		 (SCase happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_219 = happySpecReduce_1  78# happyReduction_219-happyReduction_219 happy_x_1-	 =  case happyOut83 happy_x_1 of { happy_var_1 -> -	happyIn82-		 (happy_var_1-	)}--happyReduce_220 = happySpecReduce_1  79# happyReduction_220-happyReduction_220 happy_x_1-	 =  case happyOut84 happy_x_1 of { happy_var_1 -> -	happyIn83-		 (happy_var_1-	)}--happyReduce_221 = happySpecReduce_1  79# happyReduction_221-happyReduction_221 happy_x_1-	 =  case happyOut85 happy_x_1 of { happy_var_1 -> -	happyIn83-		 (happy_var_1-	)}--happyReduce_222 = happySpecReduce_1  80# happyReduction_222-happyReduction_222 happy_x_1-	 =  case happyOut86 happy_x_1 of { happy_var_1 -> -	happyIn84-		 (transFix happy_var_1-	)}--happyReduce_223 = happySpecReduce_1  80# happyReduction_223-happyReduction_223 happy_x_1-	 =  case happyOut55 happy_x_1 of { happy_var_1 -> -	happyIn84-		 (happy_var_1-	)}--happyReduce_224 = happySpecReduce_1  81# happyReduction_224-happyReduction_224 happy_x_1-	 =  case happyOut87 happy_x_1 of { happy_var_1 -> -	happyIn85-		 (transFix happy_var_1-	)}--happyReduce_225 = happySpecReduce_1  81# happyReduction_225-happyReduction_225 happy_x_1-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> -	happyIn85-		 (happy_var_1-	)}--happyReduce_226 = happyReduce 4# 82# happyReduction_226-happyReduction_226 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut86 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut55 happy_x_4 of { happy_var_4 -> -	happyIn86-		 (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_227 = happySpecReduce_3  82# happyReduction_227-happyReduction_227 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut86 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut55 happy_x_3 of { happy_var_3 -> -	happyIn86-		 (Cons happy_var_1 happy_var_2 happy_var_3-	)}}}--happyReduce_228 = happySpecReduce_2  82# happyReduction_228-happyReduction_228 happy_x_2-	happy_x_1-	 =  case happyOut55 happy_x_2 of { happy_var_2 -> -	happyIn86-		 (Nil (ENeg happy_var_2)-	)}--happyReduce_229 = happyReduce 4# 82# happyReduction_229-happyReduction_229 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut55 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut55 happy_x_4 of { happy_var_4 -> -	happyIn86-		 (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_230 = happySpecReduce_3  82# happyReduction_230-happyReduction_230 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut55 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut55 happy_x_3 of { happy_var_3 -> -	happyIn86-		 (Cons (Nil happy_var_1) happy_var_2 happy_var_3-	)}}}--happyReduce_231 = happyReduce 4# 83# happyReduction_231-happyReduction_231 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut86 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut57 happy_x_4 of { happy_var_4 -> -	happyIn87-		 (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_232 = happySpecReduce_3  83# happyReduction_232-happyReduction_232 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut86 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut57 happy_x_3 of { happy_var_3 -> -	happyIn87-		 (Cons happy_var_1 happy_var_2 happy_var_3-	)}}}--happyReduce_233 = happySpecReduce_2  83# happyReduction_233-happyReduction_233 happy_x_2-	happy_x_1-	 =  case happyOut57 happy_x_2 of { happy_var_2 -> -	happyIn87-		 (Nil (ENeg happy_var_2)-	)}--happyReduce_234 = happyReduce 4# 83# happyReduction_234-happyReduction_234 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut55 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut57 happy_x_4 of { happy_var_4 -> -	happyIn87-		 (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_235 = happySpecReduce_3  83# happyReduction_235-happyReduction_235 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut55 happy_x_1 of { happy_var_1 -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut57 happy_x_3 of { happy_var_3 -> -	happyIn87-		 (Cons (Nil happy_var_1) happy_var_2 happy_var_3-	)}}}--happyReduce_236 = happySpecReduce_1  84# happyReduction_236-happyReduction_236 happy_x_1-	 =  case happyOut83 happy_x_1 of { happy_var_1 -> -	happyIn88-		 (happy_var_1-	)}--happyReduce_237 = happySpecReduce_2  85# happyReduction_237-happyReduction_237 happy_x_2-	happy_x_1-	 =  case happyOut89 happy_x_1 of { happy_var_1 -> -	case happyOut90 happy_x_2 of { happy_var_2 -> -	happyIn89-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_238 = happySpecReduce_1  85# happyReduction_238-happyReduction_238 happy_x_1-	 =  case happyOut90 happy_x_1 of { happy_var_1 -> -	happyIn89-		 ([happy_var_1]-	)}--happyReduce_239 = happySpecReduce_1  86# happyReduction_239-happyReduction_239 happy_x_1-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> -	happyIn90-		 (happy_var_1-	)}--happyReduce_240 = happySpecReduce_1  87# happyReduction_240-happyReduction_240 happy_x_1-	 =  case happyOut98 happy_x_1 of { happy_var_1 -> -	happyIn91-		 (happy_var_1-	)}--happyReduce_241 = happySpecReduce_3  87# happyReduction_241-happyReduction_241 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut100 happy_x_2 of { happy_var_2 -> -	happyIn91-		 (happy_var_2-	)}--happyReduce_242 = happySpecReduce_1  88# happyReduction_242-happyReduction_242 happy_x_1-	 =  case happyOut99 happy_x_1 of { happy_var_1 -> -	happyIn92-		 (happy_var_1-	)}--happyReduce_243 = happySpecReduce_3  88# happyReduction_243-happyReduction_243 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut101 happy_x_2 of { happy_var_2 -> -	happyIn92-		 (happy_var_2-	)}--happyReduce_244 = happySpecReduce_1  89# happyReduction_244-happyReduction_244 happy_x_1-	 =  case happyOut100 happy_x_1 of { happy_var_1 -> -	happyIn93-		 (happy_var_1-	)}--happyReduce_245 = happySpecReduce_3  89# happyReduction_245-happyReduction_245 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut98 happy_x_2 of { happy_var_2 -> -	happyIn93-		 (happy_var_2-	)}--happyReduce_246 = happySpecReduce_1  90# happyReduction_246-happyReduction_246 happy_x_1-	 =  case happyOut101 happy_x_1 of { happy_var_1 -> -	happyIn94-		 (happy_var_1-	)}--happyReduce_247 = happySpecReduce_3  90# happyReduction_247-happyReduction_247 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut99 happy_x_2 of { happy_var_2 -> -	happyIn94-		 (happy_var_2-	)}--happyReduce_248 = happySpecReduce_1  91# happyReduction_248-happyReduction_248 happy_x_1-	 =  case happyOut93 happy_x_1 of { happy_var_1 -> -	happyIn95-		 (happy_var_1-	)}--happyReduce_249 = happySpecReduce_1  91# happyReduction_249-happyReduction_249 happy_x_1-	 =  case happyOut94 happy_x_1 of { happy_var_1 -> -	happyIn95-		 (happy_var_1-	)}--happyReduce_250 = happySpecReduce_1  92# happyReduction_250-happyReduction_250 happy_x_1-	 =  case happyOut98 happy_x_1 of { happy_var_1 -> -	happyIn96-		 (happy_var_1-	)}--happyReduce_251 = happySpecReduce_1  92# happyReduction_251-happyReduction_251 happy_x_1-	 =  case happyOut99 happy_x_1 of { happy_var_1 -> -	happyIn96-		 (happy_var_1-	)}--happyReduce_252 = happyMonadReduce 1# 93# happyReduction_252-happyReduction_252 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOut103 happy_x_1 of { happy_var_1 -> -	( do l <- getSrcLoc; return (name l happy_var_1))}-	) (\r -> happyReturn (happyIn97 r))--happyReduce_253 = happySpecReduce_3  93# happyReduction_253-happyReduction_253 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut98 happy_x_2 of { happy_var_2 -> -	happyIn97-		 (happy_var_2-	)}--happyReduce_254 = happySpecReduce_1  93# happyReduction_254-happyReduction_254 happy_x_1-	 =  case happyOut94 happy_x_1 of { happy_var_1 -> -	happyIn97-		 (happy_var_1-	)}--happyReduce_255 = happySpecReduce_2  94# happyReduction_255-happyReduction_255 happy_x_2-	happy_x_1-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (VarId happy_var_2) -> -	happyIn98-		 (name happy_var_1 happy_var_2-	)}}--happyReduce_256 = happySpecReduce_2  95# happyReduction_256-happyReduction_256 happy_x_2-	happy_x_1-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (ConId happy_var_2) -> -	happyIn99-		 (name happy_var_1 happy_var_2-	)}}--happyReduce_257 = happyMonadReduce 1# 96# happyReduction_257-happyReduction_257 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOut102 happy_x_1 of { happy_var_1 -> -	( do l <- getSrcLoc; return (name l happy_var_1))}-	) (\r -> happyReturn (happyIn100 r))--happyReduce_258 = happySpecReduce_2  97# happyReduction_258-happyReduction_258 happy_x_2-	happy_x_1-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (ConSym happy_var_2) -> -	happyIn101-		 (name happy_var_1 happy_var_2-	)}}--happyReduce_259 = happySpecReduce_1  98# happyReduction_259-happyReduction_259 happy_x_1-	 =  case happyOut103 happy_x_1 of { happy_var_1 -> -	happyIn102-		 (happy_var_1-	)}--happyReduce_260 = happySpecReduce_1  98# happyReduction_260-happyReduction_260 happy_x_1-	 =  happyIn102-		 (("","-")-	)--happyReduce_261 = happySpecReduce_1  99# happyReduction_261-happyReduction_261 happy_x_1-	 =  case happyOutTok happy_x_1 of { (VarSym happy_var_1) -> -	happyIn103-		 (happy_var_1-	)}--happyReduce_262 = happySpecReduce_1  99# happyReduction_262-happyReduction_262 happy_x_1-	 =  happyIn103-		 (("","<")-	)--happyReduce_263 = happySpecReduce_1  99# happyReduction_263-happyReduction_263 happy_x_1-	 =  happyIn103-		 (("",">")-	)--happyReduce_264 = happySpecReduce_1  99# happyReduction_264-happyReduction_264 happy_x_1-	 =  happyIn103-		 (("","*")-	)--happyReduce_265 = happySpecReduce_1  99# happyReduction_265-happyReduction_265 happy_x_1-	 =  happyIn103-		 (("","\\\\")-	)--happyReduce_266 = happySpecReduce_1  100# happyReduction_266-happyReduction_266 happy_x_1-	 =  happyIn104-		 (()-	)--happyReduce_267 = happyMonadReduce 1# 100# happyReduction_267-happyReduction_267 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (( popContext)-	) (\r -> happyReturn (happyIn104 r))--happyReduce_268 = happyMonadReduce 0# 101# happyReduction_268-happyReduction_268 (happyRest) tk-	 = happyThen (( pushContext NoLayout)-	) (\r -> happyReturn (happyIn105 r))--happyReduce_269 = happyMonadReduce 0# 102# happyReduction_269-happyReduction_269 (happyRest) tk-	 = happyThen (( do { (r,c) <- getSrcLoc ;-                                                        pushContext (Layout c)-                                                      })-	) (\r -> happyReturn (happyIn106 r))--happyReduce_270 = happyMonadReduce 0# 103# happyReduction_270-happyReduction_270 (happyRest) tk-	 = happyThen (( getSrcLoc)-	) (\r -> happyReturn (happyIn107 r))--happyNewToken action sts stk-	= lexer(\tk -> -	let cont i = happyDoAction i tk action sts stk in-	case tk of {-	EOF -> happyDoAction 63# tk action sts stk;-	VarId happy_dollar_dollar -> cont 1#;-	ConId happy_dollar_dollar -> cont 2#;-	VarSym ("","-") -> cont 3#;-	VarSym ("","<") -> cont 4#;-	VarSym ("",">") -> cont 5#;-	VarSym ("","*") -> cont 6#;-	VarSym happy_dollar_dollar -> cont 7#;-	ConSym happy_dollar_dollar -> cont 8#;-	IntTok happy_dollar_dollar -> cont 9#;-	FloatTok happy_dollar_dollar -> cont 10#;-	Character happy_dollar_dollar -> cont 11#;-	StringTok happy_dollar_dollar -> cont 12#;-	LeftParen -> cont 13#;-	RightParen -> cont 14#;-	SemiColon -> cont 15#;-	LeftCurly -> cont 16#;-	RightCurly -> cont 17#;-	VRightCurly -> cont 18#;-	LeftSquare -> cont 19#;-	RightSquare -> cont 20#;-	Comma -> cont 21#;-	BackQuote -> cont 22#;-	Wildcard -> cont 23#;-	Dot -> cont 24#;-	DotDot -> cont 25#;-	DoubleColon -> cont 26#;-	Assign -> cont 27#;-	Equals -> cont 28#;-	Backslash -> cont 29#;-	Bar -> cont 30#;-	LeftArrow -> cont 31#;-	RightArrow -> cont 32#;-	Backslash2 -> cont 33#;-	KW_Action -> cont 34#;-	KW_After -> cont 35#;-	KW_Before -> cont 36#;-	KW_Case -> cont 37#;-	KW_Class -> cont 38#;-	KW_Data -> cont 39#;-	KW_Default -> cont 40#;-	KW_Do -> cont 41#;-	KW_Else -> cont 42#;-	KW_Elsif -> cont 43#;-	KW_Forall -> cont 44#;-	KW_If -> cont 45#;-	KW_Import -> cont 46#;-	KW_Instance -> cont 47#;-	KW_In -> cont 48#;-	KW_Let -> cont 49#;-	KW_Module -> cont 50#;-	KW_New -> cont 51#;-	KW_Of -> cont 52#;-	KW_Private -> cont 53#;-	KW_Request -> cont 54#;-	KW_Result -> cont 55#;-	KW_Struct -> cont 56#;-	KW_Then -> cont 57#;-	KW_Type -> cont 58#;-	KW_Typeclass -> cont 59#;-	KW_Use -> cont 60#;-	KW_Where -> cont 61#;-	KW_While -> cont 62#;-	_ -> happyError' tk-	})--happyError_ tk = happyError' tk--happyThen :: () => PM a -> (a -> PM b) -> PM b-happyThen = (thenPM)-happyReturn :: () => a -> PM a-happyReturn = (returnPM)-happyThen1 = happyThen-happyReturn1 :: () => a -> PM a-happyReturn1 = happyReturn-happyError' :: () => (Token) -> PM a-happyError' tk = (\token -> happyError) tk--parse = happySomeParser where-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut4 x))--happySeq = happyDontSeq---parser     :: String -> M s Module-parser str = runPM2 parse str--happyError = parseError "parse error"-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "<built-in>" #-}-{-# LINE 1 "<command-line>" #-}+happyIn22 :: (Constr) -> (HappyAbsSyn )+happyIn22 x = unsafeCoerce# x+{-# INLINE happyIn22 #-}+happyOut22 :: (HappyAbsSyn ) -> (Constr)+happyOut22 x = unsafeCoerce# x+{-# INLINE happyOut22 #-}+happyIn23 :: ([Sig]) -> (HappyAbsSyn )+happyIn23 x = unsafeCoerce# x+{-# INLINE happyIn23 #-}+happyOut23 :: (HappyAbsSyn ) -> ([Sig])+happyOut23 x = unsafeCoerce# x+{-# INLINE happyOut23 #-}+happyIn24 :: ([Sig]) -> (HappyAbsSyn )+happyIn24 x = unsafeCoerce# x+{-# INLINE happyIn24 #-}+happyOut24 :: (HappyAbsSyn ) -> ([Sig])+happyOut24 x = unsafeCoerce# x+{-# INLINE happyOut24 #-}+happyIn25 :: ([Sig]) -> (HappyAbsSyn )+happyIn25 x = unsafeCoerce# x+{-# INLINE happyIn25 #-}+happyOut25 :: (HappyAbsSyn ) -> ([Sig])+happyOut25 x = unsafeCoerce# x+{-# INLINE happyOut25 #-}+happyIn26 :: ([Sig]) -> (HappyAbsSyn )+happyIn26 x = unsafeCoerce# x+{-# INLINE happyIn26 #-}+happyOut26 :: (HappyAbsSyn ) -> ([Sig])+happyOut26 x = unsafeCoerce# x+{-# INLINE happyOut26 #-}+happyIn27 :: (Sig) -> (HappyAbsSyn )+happyIn27 x = unsafeCoerce# x+{-# INLINE happyIn27 #-}+happyOut27 :: (HappyAbsSyn ) -> (Sig)+happyOut27 x = unsafeCoerce# x+{-# INLINE happyOut27 #-}+happyIn28 :: ([Bind]) -> (HappyAbsSyn )+happyIn28 x = unsafeCoerce# x+{-# INLINE happyIn28 #-}+happyOut28 :: (HappyAbsSyn ) -> ([Bind])+happyOut28 x = unsafeCoerce# x+{-# INLINE happyOut28 #-}+happyIn29 :: ([Bind]) -> (HappyAbsSyn )+happyIn29 x = unsafeCoerce# x+{-# INLINE happyIn29 #-}+happyOut29 :: (HappyAbsSyn ) -> ([Bind])+happyOut29 x = unsafeCoerce# x+{-# INLINE happyOut29 #-}+happyIn30 :: (Bind) -> (HappyAbsSyn )+happyIn30 x = unsafeCoerce# x+{-# INLINE happyIn30 #-}+happyOut30 :: (HappyAbsSyn ) -> (Bind)+happyOut30 x = unsafeCoerce# x+{-# INLINE happyOut30 #-}+happyIn31 :: ([Field]) -> (HappyAbsSyn )+happyIn31 x = unsafeCoerce# x+{-# INLINE happyIn31 #-}+happyOut31 :: (HappyAbsSyn ) -> ([Field])+happyOut31 x = unsafeCoerce# x+{-# INLINE happyOut31 #-}+happyIn32 :: (Field) -> (HappyAbsSyn )+happyIn32 x = unsafeCoerce# x+{-# INLINE happyIn32 #-}+happyOut32 :: (HappyAbsSyn ) -> (Field)+happyOut32 x = unsafeCoerce# x+{-# INLINE happyOut32 #-}+happyIn33 :: ([Name]) -> (HappyAbsSyn )+happyIn33 x = unsafeCoerce# x+{-# INLINE happyIn33 #-}+happyOut33 :: (HappyAbsSyn ) -> ([Name])+happyOut33 x = unsafeCoerce# x+{-# INLINE happyOut33 #-}+happyIn34 :: (Lhs) -> (HappyAbsSyn )+happyIn34 x = unsafeCoerce# x+{-# INLINE happyIn34 #-}+happyOut34 :: (HappyAbsSyn ) -> (Lhs)+happyOut34 x = unsafeCoerce# x+{-# INLINE happyOut34 #-}+happyIn35 :: (Rhs Exp) -> (HappyAbsSyn )+happyIn35 x = unsafeCoerce# x+{-# INLINE happyIn35 #-}+happyOut35 :: (HappyAbsSyn ) -> (Rhs Exp)+happyOut35 x = unsafeCoerce# x+{-# INLINE happyOut35 #-}+happyIn36 :: ([GExp Exp]) -> (HappyAbsSyn )+happyIn36 x = unsafeCoerce# x+{-# INLINE happyIn36 #-}+happyOut36 :: (HappyAbsSyn ) -> ([GExp Exp])+happyOut36 x = unsafeCoerce# x+{-# INLINE happyOut36 #-}+happyIn37 :: (GExp Exp) -> (HappyAbsSyn )+happyIn37 x = unsafeCoerce# x+{-# INLINE happyIn37 #-}+happyOut37 :: (HappyAbsSyn ) -> (GExp Exp)+happyOut37 x = unsafeCoerce# x+{-# INLINE happyOut37 #-}+happyIn38 :: (Type) -> (HappyAbsSyn )+happyIn38 x = unsafeCoerce# x+{-# INLINE happyIn38 #-}+happyOut38 :: (HappyAbsSyn ) -> (Type)+happyOut38 x = unsafeCoerce# x+{-# INLINE happyOut38 #-}+happyIn39 :: (Type) -> (HappyAbsSyn )+happyIn39 x = unsafeCoerce# x+{-# INLINE happyIn39 #-}+happyOut39 :: (HappyAbsSyn ) -> (Type)+happyOut39 x = unsafeCoerce# x+{-# INLINE happyOut39 #-}+happyIn40 :: ([Type]) -> (HappyAbsSyn )+happyIn40 x = unsafeCoerce# x+{-# INLINE happyIn40 #-}+happyOut40 :: (HappyAbsSyn ) -> ([Type])+happyOut40 x = unsafeCoerce# x+{-# INLINE happyOut40 #-}+happyIn41 :: (Type) -> (HappyAbsSyn )+happyIn41 x = unsafeCoerce# x+{-# INLINE happyIn41 #-}+happyOut41 :: (HappyAbsSyn ) -> (Type)+happyOut41 x = unsafeCoerce# x+{-# INLINE happyOut41 #-}+happyIn42 :: (Type) -> (HappyAbsSyn )+happyIn42 x = unsafeCoerce# x+{-# INLINE happyIn42 #-}+happyOut42 :: (HappyAbsSyn ) -> (Type)+happyOut42 x = unsafeCoerce# x+{-# INLINE happyOut42 #-}+happyIn43 :: ([Type]) -> (HappyAbsSyn )+happyIn43 x = unsafeCoerce# x+{-# INLINE happyIn43 #-}+happyOut43 :: (HappyAbsSyn ) -> ([Type])+happyOut43 x = unsafeCoerce# x+{-# INLINE happyOut43 #-}+happyIn44 :: (Int) -> (HappyAbsSyn )+happyIn44 x = unsafeCoerce# x+{-# INLINE happyIn44 #-}+happyOut44 :: (HappyAbsSyn ) -> (Int)+happyOut44 x = unsafeCoerce# x+{-# INLINE happyOut44 #-}+happyIn45 :: ([Pred]) -> (HappyAbsSyn )+happyIn45 x = unsafeCoerce# x+{-# INLINE happyIn45 #-}+happyOut45 :: (HappyAbsSyn ) -> ([Pred])+happyOut45 x = unsafeCoerce# x+{-# INLINE happyOut45 #-}+happyIn46 :: (Pred) -> (HappyAbsSyn )+happyIn46 x = unsafeCoerce# x+{-# INLINE happyIn46 #-}+happyOut46 :: (HappyAbsSyn ) -> (Pred)+happyOut46 x = unsafeCoerce# x+{-# INLINE happyOut46 #-}+happyIn47 :: (Kind) -> (HappyAbsSyn )+happyIn47 x = unsafeCoerce# x+{-# INLINE happyIn47 #-}+happyOut47 :: (HappyAbsSyn ) -> (Kind)+happyOut47 x = unsafeCoerce# x+{-# INLINE happyOut47 #-}+happyIn48 :: (Kind) -> (HappyAbsSyn )+happyIn48 x = unsafeCoerce# x+{-# INLINE happyIn48 #-}+happyOut48 :: (HappyAbsSyn ) -> (Kind)+happyOut48 x = unsafeCoerce# x+{-# INLINE happyOut48 #-}+happyIn49 :: (Exp) -> (HappyAbsSyn )+happyIn49 x = unsafeCoerce# x+{-# INLINE happyIn49 #-}+happyOut49 :: (HappyAbsSyn ) -> (Exp)+happyOut49 x = unsafeCoerce# x+{-# INLINE happyOut49 #-}+happyIn50 :: (Exp) -> (HappyAbsSyn )+happyIn50 x = unsafeCoerce# x+{-# INLINE happyIn50 #-}+happyOut50 :: (HappyAbsSyn ) -> (Exp)+happyOut50 x = unsafeCoerce# x+{-# INLINE happyOut50 #-}+happyIn51 :: (Exp) -> (HappyAbsSyn )+happyIn51 x = unsafeCoerce# x+{-# INLINE happyIn51 #-}+happyOut51 :: (HappyAbsSyn ) -> (Exp)+happyOut51 x = unsafeCoerce# x+{-# INLINE happyOut51 #-}+happyIn52 :: (Exp) -> (HappyAbsSyn )+happyIn52 x = unsafeCoerce# x+{-# INLINE happyIn52 #-}+happyOut52 :: (HappyAbsSyn ) -> (Exp)+happyOut52 x = unsafeCoerce# x+{-# INLINE happyOut52 #-}+happyIn53 :: (OpExp) -> (HappyAbsSyn )+happyIn53 x = unsafeCoerce# x+{-# INLINE happyIn53 #-}+happyOut53 :: (HappyAbsSyn ) -> (OpExp)+happyOut53 x = unsafeCoerce# x+{-# INLINE happyOut53 #-}+happyIn54 :: (OpExp) -> (HappyAbsSyn )+happyIn54 x = unsafeCoerce# x+{-# INLINE happyIn54 #-}+happyOut54 :: (HappyAbsSyn ) -> (OpExp)+happyOut54 x = unsafeCoerce# x+{-# INLINE happyOut54 #-}+happyIn55 :: (Exp) -> (HappyAbsSyn )+happyIn55 x = unsafeCoerce# x+{-# INLINE happyIn55 #-}+happyOut55 :: (HappyAbsSyn ) -> (Exp)+happyOut55 x = unsafeCoerce# x+{-# INLINE happyOut55 #-}+happyIn56 :: (Exp) -> (HappyAbsSyn )+happyIn56 x = unsafeCoerce# x+{-# INLINE happyIn56 #-}+happyOut56 :: (HappyAbsSyn ) -> (Exp)+happyOut56 x = unsafeCoerce# x+{-# INLINE happyOut56 #-}+happyIn57 :: (Exp) -> (HappyAbsSyn )+happyIn57 x = unsafeCoerce# x+{-# INLINE happyIn57 #-}+happyOut57 :: (HappyAbsSyn ) -> (Exp)+happyOut57 x = unsafeCoerce# x+{-# INLINE happyOut57 #-}+happyIn58 :: (Exp) -> (HappyAbsSyn )+happyIn58 x = unsafeCoerce# x+{-# INLINE happyIn58 #-}+happyOut58 :: (HappyAbsSyn ) -> (Exp)+happyOut58 x = unsafeCoerce# x+{-# INLINE happyOut58 #-}+happyIn59 :: (Exp) -> (HappyAbsSyn )+happyIn59 x = unsafeCoerce# x+{-# INLINE happyIn59 #-}+happyOut59 :: (HappyAbsSyn ) -> (Exp)+happyOut59 x = unsafeCoerce# x+{-# INLINE happyOut59 #-}+happyIn60 :: (Exp) -> (HappyAbsSyn )+happyIn60 x = unsafeCoerce# x+{-# INLINE happyIn60 #-}+happyOut60 :: (HappyAbsSyn ) -> (Exp)+happyOut60 x = unsafeCoerce# x+{-# INLINE happyOut60 #-}+happyIn61 :: (Exp) -> (HappyAbsSyn )+happyIn61 x = unsafeCoerce# x+{-# INLINE happyIn61 #-}+happyOut61 :: (HappyAbsSyn ) -> (Exp)+happyOut61 x = unsafeCoerce# x+{-# INLINE happyOut61 #-}+happyIn62 :: (Lit) -> (HappyAbsSyn )+happyIn62 x = unsafeCoerce# x+{-# INLINE happyIn62 #-}+happyOut62 :: (HappyAbsSyn ) -> (Lit)+happyOut62 x = unsafeCoerce# x+{-# INLINE happyOut62 #-}+happyIn63 :: (Exp) -> (HappyAbsSyn )+happyIn63 x = unsafeCoerce# x+{-# INLINE happyIn63 #-}+happyOut63 :: (HappyAbsSyn ) -> (Exp)+happyOut63 x = unsafeCoerce# x+{-# INLINE happyOut63 #-}+happyIn64 :: ([Exp]) -> (HappyAbsSyn )+happyIn64 x = unsafeCoerce# x+{-# INLINE happyIn64 #-}+happyOut64 :: (HappyAbsSyn ) -> ([Exp])+happyOut64 x = unsafeCoerce# x+{-# INLINE happyOut64 #-}+happyIn65 :: ([Qual]) -> (HappyAbsSyn )+happyIn65 x = unsafeCoerce# x+{-# INLINE happyIn65 #-}+happyOut65 :: (HappyAbsSyn ) -> ([Qual])+happyOut65 x = unsafeCoerce# x+{-# INLINE happyOut65 #-}+happyIn66 :: (Qual) -> (HappyAbsSyn )+happyIn66 x = unsafeCoerce# x+{-# INLINE happyIn66 #-}+happyOut66 :: (HappyAbsSyn ) -> (Qual)+happyOut66 x = unsafeCoerce# x+{-# INLINE happyOut66 #-}+happyIn67 :: ([Alt Exp]) -> (HappyAbsSyn )+happyIn67 x = unsafeCoerce# x+{-# INLINE happyIn67 #-}+happyOut67 :: (HappyAbsSyn ) -> ([Alt Exp])+happyOut67 x = unsafeCoerce# x+{-# INLINE happyOut67 #-}+happyIn68 :: ([Alt Exp]) -> (HappyAbsSyn )+happyIn68 x = unsafeCoerce# x+{-# INLINE happyIn68 #-}+happyOut68 :: (HappyAbsSyn ) -> ([Alt Exp])+happyOut68 x = unsafeCoerce# x+{-# INLINE happyOut68 #-}+happyIn69 :: (Alt Exp) -> (HappyAbsSyn )+happyIn69 x = unsafeCoerce# x+{-# INLINE happyIn69 #-}+happyOut69 :: (HappyAbsSyn ) -> (Alt Exp)+happyOut69 x = unsafeCoerce# x+{-# INLINE happyOut69 #-}+happyIn70 :: (Rhs Exp) -> (HappyAbsSyn )+happyIn70 x = unsafeCoerce# x+{-# INLINE happyIn70 #-}+happyOut70 :: (HappyAbsSyn ) -> (Rhs Exp)+happyOut70 x = unsafeCoerce# x+{-# INLINE happyOut70 #-}+happyIn71 :: ([GExp Exp]) -> (HappyAbsSyn )+happyIn71 x = unsafeCoerce# x+{-# INLINE happyIn71 #-}+happyOut71 :: (HappyAbsSyn ) -> ([GExp Exp])+happyOut71 x = unsafeCoerce# x+{-# INLINE happyOut71 #-}+happyIn72 :: (GExp Exp) -> (HappyAbsSyn )+happyIn72 x = unsafeCoerce# x+{-# INLINE happyIn72 #-}+happyOut72 :: (HappyAbsSyn ) -> (GExp Exp)+happyOut72 x = unsafeCoerce# x+{-# INLINE happyOut72 #-}+happyIn73 :: ([Alt [Stmt]]) -> (HappyAbsSyn )+happyIn73 x = unsafeCoerce# x+{-# INLINE happyIn73 #-}+happyOut73 :: (HappyAbsSyn ) -> ([Alt [Stmt]])+happyOut73 x = unsafeCoerce# x+{-# INLINE happyOut73 #-}+happyIn74 :: ([Alt [Stmt]]) -> (HappyAbsSyn )+happyIn74 x = unsafeCoerce# x+{-# INLINE happyIn74 #-}+happyOut74 :: (HappyAbsSyn ) -> ([Alt [Stmt]])+happyOut74 x = unsafeCoerce# x+{-# INLINE happyOut74 #-}+happyIn75 :: (Alt [Stmt]) -> (HappyAbsSyn )+happyIn75 x = unsafeCoerce# x+{-# INLINE happyIn75 #-}+happyOut75 :: (HappyAbsSyn ) -> (Alt [Stmt])+happyOut75 x = unsafeCoerce# x+{-# INLINE happyOut75 #-}+happyIn76 :: (Rhs [Stmt]) -> (HappyAbsSyn )+happyIn76 x = unsafeCoerce# x+{-# INLINE happyIn76 #-}+happyOut76 :: (HappyAbsSyn ) -> (Rhs [Stmt])+happyOut76 x = unsafeCoerce# x+{-# INLINE happyOut76 #-}+happyIn77 :: ([GExp [Stmt]]) -> (HappyAbsSyn )+happyIn77 x = unsafeCoerce# x+{-# INLINE happyIn77 #-}+happyOut77 :: (HappyAbsSyn ) -> ([GExp [Stmt]])+happyOut77 x = unsafeCoerce# x+{-# INLINE happyOut77 #-}+happyIn78 :: (GExp [Stmt]) -> (HappyAbsSyn )+happyIn78 x = unsafeCoerce# x+{-# INLINE happyIn78 #-}+happyOut78 :: (HappyAbsSyn ) -> (GExp [Stmt])+happyOut78 x = unsafeCoerce# x+{-# INLINE happyOut78 #-}+happyIn79 :: ([Stmt]) -> (HappyAbsSyn )+happyIn79 x = unsafeCoerce# x+{-# INLINE happyIn79 #-}+happyOut79 :: (HappyAbsSyn ) -> ([Stmt])+happyOut79 x = unsafeCoerce# x+{-# INLINE happyOut79 #-}+happyIn80 :: ([Stmt]) -> (HappyAbsSyn )+happyIn80 x = unsafeCoerce# x+{-# INLINE happyIn80 #-}+happyOut80 :: (HappyAbsSyn ) -> ([Stmt])+happyOut80 x = unsafeCoerce# x+{-# INLINE happyOut80 #-}+happyIn81 :: ([Stmt]) -> (HappyAbsSyn )+happyIn81 x = unsafeCoerce# x+{-# INLINE happyIn81 #-}+happyOut81 :: (HappyAbsSyn ) -> ([Stmt])+happyOut81 x = unsafeCoerce# x+{-# INLINE happyOut81 #-}+happyIn82 :: (Stmt) -> (HappyAbsSyn )+happyIn82 x = unsafeCoerce# x+{-# INLINE happyIn82 #-}+happyOut82 :: (HappyAbsSyn ) -> (Stmt)+happyOut82 x = unsafeCoerce# x+{-# INLINE happyOut82 #-}+happyIn83 :: (Exp) -> (HappyAbsSyn )+happyIn83 x = unsafeCoerce# x+{-# INLINE happyIn83 #-}+happyOut83 :: (HappyAbsSyn ) -> (Exp)+happyOut83 x = unsafeCoerce# x+{-# INLINE happyOut83 #-}+happyIn84 :: (Exp) -> (HappyAbsSyn )+happyIn84 x = unsafeCoerce# x+{-# INLINE happyIn84 #-}+happyOut84 :: (HappyAbsSyn ) -> (Exp)+happyOut84 x = unsafeCoerce# x+{-# INLINE happyOut84 #-}+happyIn85 :: (Exp) -> (HappyAbsSyn )+happyIn85 x = unsafeCoerce# x+{-# INLINE happyIn85 #-}+happyOut85 :: (HappyAbsSyn ) -> (Exp)+happyOut85 x = unsafeCoerce# x+{-# INLINE happyOut85 #-}+happyIn86 :: (Exp) -> (HappyAbsSyn )+happyIn86 x = unsafeCoerce# x+{-# INLINE happyIn86 #-}+happyOut86 :: (HappyAbsSyn ) -> (Exp)+happyOut86 x = unsafeCoerce# x+{-# INLINE happyOut86 #-}+happyIn87 :: (OpExp) -> (HappyAbsSyn )+happyIn87 x = unsafeCoerce# x+{-# INLINE happyIn87 #-}+happyOut87 :: (HappyAbsSyn ) -> (OpExp)+happyOut87 x = unsafeCoerce# x+{-# INLINE happyOut87 #-}+happyIn88 :: (OpExp) -> (HappyAbsSyn )+happyIn88 x = unsafeCoerce# x+{-# INLINE happyIn88 #-}+happyOut88 :: (HappyAbsSyn ) -> (OpExp)+happyOut88 x = unsafeCoerce# x+{-# INLINE happyOut88 #-}+happyIn89 :: (Pat) -> (HappyAbsSyn )+happyIn89 x = unsafeCoerce# x+{-# INLINE happyIn89 #-}+happyOut89 :: (HappyAbsSyn ) -> (Pat)+happyOut89 x = unsafeCoerce# x+{-# INLINE happyOut89 #-}+happyIn90 :: ([Pat]) -> (HappyAbsSyn )+happyIn90 x = unsafeCoerce# x+{-# INLINE happyIn90 #-}+happyOut90 :: (HappyAbsSyn ) -> ([Pat])+happyOut90 x = unsafeCoerce# x+{-# INLINE happyOut90 #-}+happyIn91 :: (Pat) -> (HappyAbsSyn )+happyIn91 x = unsafeCoerce# x+{-# INLINE happyIn91 #-}+happyOut91 :: (HappyAbsSyn ) -> (Pat)+happyOut91 x = unsafeCoerce# x+{-# INLINE happyOut91 #-}+happyIn92 :: (Name) -> (HappyAbsSyn )+happyIn92 x = unsafeCoerce# x+{-# INLINE happyIn92 #-}+happyOut92 :: (HappyAbsSyn ) -> (Name)+happyOut92 x = unsafeCoerce# x+{-# INLINE happyOut92 #-}+happyIn93 :: (Name) -> (HappyAbsSyn )+happyIn93 x = unsafeCoerce# x+{-# INLINE happyIn93 #-}+happyOut93 :: (HappyAbsSyn ) -> (Name)+happyOut93 x = unsafeCoerce# x+{-# INLINE happyOut93 #-}+happyIn94 :: (Name) -> (HappyAbsSyn )+happyIn94 x = unsafeCoerce# x+{-# INLINE happyIn94 #-}+happyOut94 :: (HappyAbsSyn ) -> (Name)+happyOut94 x = unsafeCoerce# x+{-# INLINE happyOut94 #-}+happyIn95 :: (Name) -> (HappyAbsSyn )+happyIn95 x = unsafeCoerce# x+{-# INLINE happyIn95 #-}+happyOut95 :: (HappyAbsSyn ) -> (Name)+happyOut95 x = unsafeCoerce# x+{-# INLINE happyOut95 #-}+happyIn96 :: (Name) -> (HappyAbsSyn )+happyIn96 x = unsafeCoerce# x+{-# INLINE happyIn96 #-}+happyOut96 :: (HappyAbsSyn ) -> (Name)+happyOut96 x = unsafeCoerce# x+{-# INLINE happyOut96 #-}+happyIn97 :: (Name) -> (HappyAbsSyn )+happyIn97 x = unsafeCoerce# x+{-# INLINE happyIn97 #-}+happyOut97 :: (HappyAbsSyn ) -> (Name)+happyOut97 x = unsafeCoerce# x+{-# INLINE happyOut97 #-}+happyIn98 :: (Name) -> (HappyAbsSyn )+happyIn98 x = unsafeCoerce# x+{-# INLINE happyIn98 #-}+happyOut98 :: (HappyAbsSyn ) -> (Name)+happyOut98 x = unsafeCoerce# x+{-# INLINE happyOut98 #-}+happyIn99 :: (Name) -> (HappyAbsSyn )+happyIn99 x = unsafeCoerce# x+{-# INLINE happyIn99 #-}+happyOut99 :: (HappyAbsSyn ) -> (Name)+happyOut99 x = unsafeCoerce# x+{-# INLINE happyOut99 #-}+happyIn100 :: (Name) -> (HappyAbsSyn )+happyIn100 x = unsafeCoerce# x+{-# INLINE happyIn100 #-}+happyOut100 :: (HappyAbsSyn ) -> (Name)+happyOut100 x = unsafeCoerce# x+{-# INLINE happyOut100 #-}+happyIn101 :: (Name) -> (HappyAbsSyn )+happyIn101 x = unsafeCoerce# x+{-# INLINE happyIn101 #-}+happyOut101 :: (HappyAbsSyn ) -> (Name)+happyOut101 x = unsafeCoerce# x+{-# INLINE happyOut101 #-}+happyIn102 :: (Name) -> (HappyAbsSyn )+happyIn102 x = unsafeCoerce# x+{-# INLINE happyIn102 #-}+happyOut102 :: (HappyAbsSyn ) -> (Name)+happyOut102 x = unsafeCoerce# x+{-# INLINE happyOut102 #-}+happyIn103 :: ((String,String)) -> (HappyAbsSyn )+happyIn103 x = unsafeCoerce# x+{-# INLINE happyIn103 #-}+happyOut103 :: (HappyAbsSyn ) -> ((String,String))+happyOut103 x = unsafeCoerce# x+{-# INLINE happyOut103 #-}+happyIn104 :: ((String,String)) -> (HappyAbsSyn )+happyIn104 x = unsafeCoerce# x+{-# INLINE happyIn104 #-}+happyOut104 :: (HappyAbsSyn ) -> ((String,String))+happyOut104 x = unsafeCoerce# x+{-# INLINE happyOut104 #-}+happyIn105 :: (()) -> (HappyAbsSyn )+happyIn105 x = unsafeCoerce# x+{-# INLINE happyIn105 #-}+happyOut105 :: (HappyAbsSyn ) -> (())+happyOut105 x = unsafeCoerce# x+{-# INLINE happyOut105 #-}+happyIn106 :: (()) -> (HappyAbsSyn )+happyIn106 x = unsafeCoerce# x+{-# INLINE happyIn106 #-}+happyOut106 :: (HappyAbsSyn ) -> (())+happyOut106 x = unsafeCoerce# x+{-# INLINE happyOut106 #-}+happyIn107 :: (()) -> (HappyAbsSyn )+happyIn107 x = unsafeCoerce# x+{-# INLINE happyIn107 #-}+happyOut107 :: (HappyAbsSyn ) -> (())+happyOut107 x = unsafeCoerce# x+{-# INLINE happyOut107 #-}+happyIn108 :: ((Int,Int)) -> (HappyAbsSyn )+happyIn108 x = unsafeCoerce# x+{-# INLINE happyIn108 #-}+happyOut108 :: (HappyAbsSyn ) -> ((Int,Int))+happyOut108 x = unsafeCoerce# x+{-# INLINE happyOut108 #-}+happyInTok :: (Token) -> (HappyAbsSyn )+happyInTok x = unsafeCoerce# x+{-# INLINE happyInTok #-}+happyOutTok :: (HappyAbsSyn ) -> (Token)+happyOutTok x = unsafeCoerce# x+{-# INLINE happyOutTok #-}+++happyActOffsets :: HappyAddr+happyActOffsets = HappyA# "\xb2\x04\xb2\x04\x00\x00\xa5\x04\xa2\x04\xdb\x04\x00\x00\xce\x04\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x06\xcd\x04\x68\x01\x00\x00\x45\x02\xd3\x02\xe0\x01\x00\x00\x1e\x07\xc3\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x0e\x02\xc8\x04\x00\x00\xbd\x04\x6c\x07\xc0\x03\x01\x07\xc4\x07\x00\x00\x38\x03\x38\x03\x38\x03\x00\x00\xc6\x04\x00\x00\x97\x04\x92\x04\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x06\x97\x02\x00\x00\x90\x04\x00\x00\x00\x00\x0f\x00\xbf\x02\x00\x00\x00\x00\x70\x04\xf8\x0a\x00\x00\x8e\x04\xbb\x04\xba\x04\x00\x00\x1f\x00\x00\x00\x00\x00\x8f\x04\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x07\x02\xa8\x07\x83\x04\xa8\x01\x00\x00\xf6\x01\x00\x00\xb7\x04\x00\x00\xe0\x01\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x8d\x04\x8a\x04\x15\x0b\x00\x00\xe0\x07\xe0\x07\x84\x04\x6a\x03\x67\x03\x44\x0b\x66\x03\x00\x00\x38\x03\x8c\x04\x8b\x04\x00\x00\x87\x04\xfe\x07\x10\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x04\x82\x04\x82\x04\x82\x04\x98\x01\x00\x00\x00\x00\x00\x00\xe9\x0a\x00\x00\x00\x00\x00\x00\x89\x04\x00\x00\x00\x00\x81\x04\x75\x04\xe6\x0a\x4f\x04\x65\x04\x00\x00\xe0\x07\xd1\x0a\x3f\x04\x89\x01\x4b\x04\x00\x00\x99\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x04\x00\x00\x58\x04\x2d\x04\xb0\x02\x00\x00\x00\x00\x00\x00\x22\x03\x10\x03\x00\x00\x00\x00\x3c\x04\xa9\x02\x00\x00\x2c\x04\x2b\x04\x29\x04\x00\x00\x00\x00\x29\x04\x00\x00\x00\x00\xc0\x03\x00\x00\x33\x04\x31\x04\x00\x00\x00\x00\x00\x00\xc0\x03\x32\x00\x00\x00\x16\x04\x00\x00\x98\x01\x00\x00\x00\x00\xcc\x06\x00\x00\x00\x00\x00\x00\x00\x00\x27\x04\x1e\x04\x00\x00\x00\x00\x00\x00\x00\x00\x33\x03\x00\x00\xe0\x07\x39\x0a\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\xf2\x03\xf4\x03\xbf\x01\x00\x00\x61\x0a\x52\x0a\x89\x01\xe0\x07\xe0\x07\xd1\x0a\x00\x00\xe0\x07\x00\x00\x00\x00\x65\x01\x17\x04\x4c\x01\x00\x00\x1a\x00\x89\x01\x00\x00\xce\x0a\x4b\x01\x00\x00\x8a\x01\x89\x02\xe0\x07\x28\x00\xd9\x03\x11\x00\xec\x03\x00\x00\xb7\x03\x00\x00\x89\x01\xe2\x03\x89\x01\x00\x00\xb6\x03\x00\x00\xb2\x03\x89\x01\x00\x00\xce\x0a\x87\x02\x00\x00\xf3\xff\xdd\x03\x89\x01\x00\x00\xdd\x03\x84\x02\xd4\x03\x89\x01\x00\x00\xd7\x03\x00\x00\xd0\x03\x29\x01\x00\x00\x00\x00\x15\x0b\x00\x00\x00\x00\x15\x0b\x06\x00\x00\x00\xcf\x03\x00\x00\xd5\x03\xe0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x09\xf3\x00\x76\x02\x19\x00\xd3\x03\x00\x00\x00\x00\x59\x02\x9b\x00\xe0\x07\xd1\x03\xe0\x07\xbf\x0a\xe0\x07\xe0\x07\xce\x03\x98\x01\x31\x00\x00\x00\xcd\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\xbc\x0a\xa7\x0a\xe0\x07\xc2\x03\x00\x00\xc7\x03\x3b\x01\x65\x03\xc5\x02\xc6\x03\xda\x01\x00\x00\x00\x00\x89\x01\x89\x01\x89\x01\x00\x00\x99\x06\x00\x00\x99\x06\x12\x01\x00\x00\xbb\x03\x00\x00\xb5\x03\x29\x01\x29\x01\x00\x00\x00\x00\x89\x01\x89\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x00\xbd\x03\x00\x00\x00\x00\x00\x00\x93\x03\xf7\xff\x90\x03\x00\x00\x69\x03\xe0\x07\xe0\x07\x13\x0a\x00\x00\x5f\x03\x89\x07\x89\x01\x8a\x03\x70\x03\x00\x00\xa4\x0a\x00\x00\xe0\x07\x00\x00\x8c\x03\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x07\x00\x00\x7b\x03\x00\x00\x89\x01\x00\x00\x00\x00\x00\x00\x00\x00\x45\x03\x87\x03\x00\x00\x00\x00\x00\x00\x00\x00\x71\x03\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x64\x03\x00\x00\x55\x00\x19\x00\x68\x03\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x58\x03\x00\x00\x5a\x03\x00\x00\x00\x00\x00\x00\xa4\x0a\x10\x01\x00\x00\x00\x00\x66\x02\xe0\x07\x00\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\x50\x03\x40\x03\x40\x03\x40\x03\x00\x00\x3d\x03\x00\x00\x00\x00\x98\x01\x89\x01\x00\x00\x2d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x0a\x00\x00\x00\x00\x00\x00\xfe\x02\x18\x03\x00\x00\x95\x0a\xe0\x07\x00\x00\x8c\x0a\x18\x02\x89\x01\x89\x01\x89\x01\x1f\x03\x00\x00\x17\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01\x00\x00\x0c\x03\x8c\x0a\x02\x01\x00\x00\x62\x01\xec\x02\xfc\x02\x00\x00\x7d\x0a\x06\x03\x00\x00\x7a\x0a\xfd\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\xf6\x02\x00\x00\xeb\x02\x00\x00\x00\x00"#++happyGotoOffsets :: HappyAddr+happyGotoOffsets = HappyA# "\xf0\x02\x00\x00\xdd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xea\x02\x7e\x02\xdb\x02\x37\x00\x00\x00\x1e\x02\x00\x00\x00\x00\x68\x02\x23\x04\x00\x00\x53\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x09\x25\x03\x36\x03\x00\x00\x61\x01\x26\x09\x7d\x08\xc6\x01\x05\x00\xc2\x01\x1b\x00\x17\x00\x95\x01\x67\x01\xfc\xff\xdb\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x02\x00\x00\x8c\x02\x3b\x02\x00\x00\x35\x01\x6f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x50\x01\x00\x00\x00\x00\x39\x00\x6e\x02\xc3\x01\x40\x06\x00\x00\x00\x00\x00\x00\x00\x00\x32\x06\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x03\x00\x00\x30\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x07\xfa\x01\xf6\x05\xe8\x05\x16\x00\x00\x00\x00\x00\xb1\x02\x00\x00\x00\x00\xc6\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x01\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x81\x00\x71\x00\x6d\x00\x77\x02\xd5\x01\x00\x00\x00\x00\xbf\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x00\x67\x02\x00\x00\xaa\x08\x00\x00\xed\x01\x00\x00\xda\x05\x15\x09\x03\x02\xa8\x02\xf7\x01\x00\x00\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x4e\x01\x94\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x50\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x07\x39\x01\x00\x00\x00\x00\x00\x00\x4e\x02\x00\x00\x00\x00\xcc\x01\x7b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x06\x00\x00\x9e\x05\x1b\x07\x00\x00\x90\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x1b\x07\x11\x07\xe9\x02\x82\x05\x46\x05\x04\x09\x00\x00\x38\x05\x00\x00\x00\x00\x0a\x00\x36\x00\x59\x01\x00\x00\x00\x00\x8a\x02\xad\x01\x2b\x01\x4d\x01\x00\x00\x00\x00\x49\x02\x2a\x05\x02\x00\xc1\x00\xfb\xff\xa1\x01\x00\x00\x7f\x01\x00\x00\x1d\x02\x0d\x00\x79\x02\x00\x00\x54\x01\x00\x00\x00\x00\x69\x02\x00\x00\x72\x01\x00\x00\x00\x00\x3d\x02\x75\x01\x5c\x02\x00\x00\x3a\x00\x00\x00\x49\x01\x13\x02\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x07\x07\x00\x00\x00\x00\x4b\x06\x00\x00\x00\x00\x00\x00\x00\x00\xca\xff\xee\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x01\x00\x00\xdb\x01\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x04\x52\x00\xd2\x04\xd7\x08\x96\x04\x88\x04\x00\x00\x24\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\x09\x80\x09\x7a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x02\xd4\x02\xc2\x02\x00\x00\xa7\x00\xd3\x00\x6f\x00\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x5e\x00\x00\x00\x00\x00\xdf\x02\xd2\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x04\x30\x04\xf9\x01\x00\x00\x00\x00\x22\x04\x4b\x02\x00\x00\x00\x00\x00\x00\xc6\x08\x73\x00\xe6\x03\x00\x00\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\xff\x00\x00\x00\x00\xee\x00\x70\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x99\x08\x6b\x00\x00\x00\x00\x00\x9c\x01\xca\x03\x00\x00\x00\x00\x8e\x03\x00\x00\x00\x00\x00\x00\xd3\xff\x48\x00\x35\x00\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x3e\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x3f\x08\x80\x03\x00\x00\x6f\x09\x00\x00\x41\x02\x8e\x00\x31\x02\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xff\x12\x08\x1d\x00\x00\x00\xde\x00\x00\x00\xd0\xff\x00\x00\xe5\x07\xd4\xff\x00\x00\x42\x09\x00\x00\x00\x00\x72\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\x00\x00\xcb\xff\x00\x00\x00\x00"#++happyDefActions :: HappyAddr+happyDefActions = HappyA# "\x00\x00\x00\x00\xf0\xfe\x00\x00\x00\x00\x00\x00\xfe\xfe\xf1\xfe\xfe\xff\xf6\xff\xf2\xfe\xf6\xff\xf0\xfe\x00\x00\x00\x00\xf2\xff\x00\x00\x00\x00\x1f\xff\x1d\xff\x73\xff\x6b\xff\x69\xff\x65\xff\xb8\xff\x22\xff\x21\xff\x20\xff\x1e\xff\x68\xff\x66\xff\x0e\xff\x0c\xff\x00\x00\xf0\xfe\xf0\xfe\xf0\xfe\x67\xff\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf1\xfe\xf0\xfe\xf0\xfe\xf1\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\x00\x00\xf4\xff\xeb\xff\xd9\xff\x04\xff\x03\xff\x00\x00\xdb\xff\xdb\xff\x00\x00\xf0\xfe\xf2\xfe\xe7\xff\x00\x00\x04\xff\x03\xff\x00\x00\xf5\xff\xe6\xff\xf0\xfe\xf2\xfe\xdb\xff\xf0\xfe\x68\xff\x66\xff\x0c\xff\x00\x00\xf0\xfe\x0f\xff\xf0\xfe\x10\xff\x57\xff\x92\xff\x90\xff\x8f\xff\x8e\xff\x8c\xff\x8d\xff\x7d\xff\x8b\xff\x71\xff\x00\x00\x56\xff\xf0\xfe\xf2\xfe\xf0\xfe\xf0\xfe\xf1\xfe\x00\x00\x00\x00\xf0\xfe\x00\x00\x00\xff\xf0\xfe\x00\x00\x08\xff\xfd\xfe\x02\xff\x00\x00\xf0\xfe\xf8\xfe\xf7\xfe\xf6\xfe\xf9\xfe\x64\xff\x9d\xff\xf0\xfe\xf0\xfe\xf5\xfe\x1a\xff\x15\xff\xff\xfe\x5c\xff\x5b\xff\x5a\xff\x59\xff\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x00\x00\xf2\xfe\x06\xff\x05\xff\xf0\xfe\x0a\xff\x08\xff\xfb\xfe\x00\x00\xfa\xfe\xf0\xfe\xf0\xfe\x6c\xff\xf0\xfe\xe4\xff\xb6\xff\xb3\xff\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xfa\xff\xf3\xfe\xf0\xfe\xf4\xfe\xf7\xff\xf3\xff\xfc\xff\xf1\xfe\xe5\xff\xb0\xff\xaf\xff\xac\xff\xaa\xff\xa9\xff\xa8\xff\xf0\xfe\xf0\xfe\xa7\xff\xba\xff\x00\x00\x00\x00\x4f\xff\x4d\xff\x00\x00\xf1\xfe\xb7\xff\xb4\xff\xf1\xfe\x18\xff\x13\xff\xf0\xfe\x6a\xff\x00\x00\x00\x00\xfc\xfe\x1b\xff\x16\xff\xf0\xfe\xf0\xfe\xf1\xff\x97\xff\x96\xff\x00\x00\x95\xff\x79\xff\x32\xff\xf2\xfe\x7c\xff\x7b\xff\x7a\xff\x00\x00\x00\x00\x88\xff\x83\xff\x0b\xff\x0d\xff\xf0\xfe\x61\xff\xf0\xfe\xf0\xfe\x62\xff\xf0\xfe\x5d\xff\x9e\xff\x91\xff\x00\x00\x00\x00\xf0\xfe\x60\xff\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\x11\xff\xf0\xfe\x6e\xff\x6d\xff\xdd\xff\xf0\xfe\x00\x00\xd5\xff\x00\x00\xf0\xfe\xf0\xfe\xf0\xfe\x00\x00\xc0\xff\x00\x00\x00\x00\xf0\xfe\xe0\xff\xf0\xfe\xf0\xfe\xfa\xff\xfd\xff\xcb\xff\xdc\xff\xf0\xfe\xf1\xfe\xf0\xfe\xe1\xff\xcb\xff\x6f\xff\xbe\xff\xf0\xfe\xc2\xff\xf0\xfe\x00\x00\xda\xff\xea\xff\xf0\xfe\xf0\xfe\xd7\xff\xf0\xfe\x00\x00\xd1\xff\xf0\xfe\x70\xff\x53\xff\x55\xff\x51\xff\x93\xff\x89\xff\x84\xff\xf0\xfe\x86\xff\x81\xff\xf0\xfe\x00\x00\xbc\xff\x00\x00\x7e\xff\xf1\xfe\xf0\xfe\x51\xff\x5f\xff\x52\xff\x5e\xff\x01\xff\x63\xff\xf0\xfe\x00\x00\x00\x00\x00\x00\x33\xff\x30\xff\x2e\xff\x23\xff\x00\x00\xf0\xfe\xf1\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\x00\x00\x00\x00\x00\x00\x74\xff\x00\x00\x1c\xff\x17\xff\x07\xff\x09\xff\x19\xff\x14\xff\xb5\xff\x4c\xff\xf0\xfe\xf0\xfe\xf0\xfe\x00\x00\xa6\xff\x00\x00\xb0\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xab\xff\xf0\xfe\xf0\xfe\xf0\xfe\xfb\xff\xf0\xfe\xf2\xfe\xf0\xfe\x00\x00\x9a\xff\xb1\xff\x9b\xff\xa8\xff\xad\xff\xae\xff\xa5\xff\xa2\xff\xf0\xfe\xf0\xfe\xa3\xff\xa1\xff\xb2\xff\x50\xff\x4e\xff\x75\xff\x78\xff\xf0\xfe\x00\x00\x98\xff\x94\xff\x29\xff\x00\x00\x00\x00\x00\x00\x25\xff\x00\x00\xf0\xfe\xf0\xfe\xf0\xfe\x34\xff\x2c\xff\xf0\xfe\xf0\xfe\x00\x00\x00\x00\x80\xff\xf0\xfe\xf2\xfe\xf0\xfe\x7f\xff\xf0\xfe\x87\xff\x82\xff\x8a\xff\x85\xff\xf0\xfe\xde\xff\xdf\xff\xef\xff\xf0\xfe\xd8\xff\xd6\xff\xd3\xff\xd4\xff\xe8\xff\xf1\xfe\xc3\xff\xc1\xff\xbf\xff\xee\xff\xf1\xfe\xf0\xff\xec\xff\xc7\xff\xf2\xfe\xe2\xff\xe3\xff\xed\xff\xf0\xfe\x00\x00\xc8\xff\xc5\xff\x00\x00\xb9\xff\xcc\xff\xe9\xff\xd2\xff\xcf\xff\xcd\xff\x54\xff\xbd\xff\xbb\xff\xf0\xfe\x00\x00\x48\xff\x12\xff\x00\x00\xf0\xfe\x35\xff\x2d\xff\xf0\xfe\x31\xff\x2f\xff\x2a\xff\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x77\xff\x00\x00\x9f\xff\xa0\xff\x00\x00\xf0\xfe\xf8\xff\x00\x00\xf9\xff\x9c\xff\x99\xff\x76\xff\x27\xff\x28\xff\x26\xff\x24\xff\xf0\xfe\xf2\xfe\x2b\xff\x72\xff\x47\xff\x45\xff\x42\xff\xf0\xfe\xf0\xfe\x4a\xff\xf0\xfe\x00\x00\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xc9\xff\x00\x00\xca\xff\xc6\xff\xc4\xff\xd0\xff\xce\xff\x4b\xff\x49\xff\x46\xff\x00\x00\x43\xff\xf1\xfe\xf0\xfe\x00\x00\x3d\xff\x00\x00\x3c\xff\x3a\xff\x37\xff\xf0\xfe\xf1\xfe\x3f\xff\xf0\xfe\x00\x00\x44\xff\xf0\xfe\x41\xff\x40\xff\x3e\xff\x3b\xff\x00\x00\x38\xff\xf1\xfe\x39\xff\xf1\xfe\x36\xff"#++happyCheck :: HappyAddr+happyCheck = HappyA# "\xff\xff\x03\x00\x01\x00\x08\x00\x05\x00\x06\x00\x07\x00\x18\x00\x0c\x00\x3f\x00\x08\x00\x09\x00\x15\x00\x14\x00\x18\x00\x1c\x00\x01\x00\x1e\x00\x0d\x00\x04\x00\x0a\x00\x04\x00\x4b\x00\x11\x00\x45\x00\x00\x00\x4a\x00\x15\x00\x1d\x00\x1e\x00\x04\x00\x4b\x00\x29\x00\x14\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x0c\x00\x18\x00\x01\x00\x18\x00\x12\x00\x04\x00\x18\x00\x18\x00\x18\x00\x3d\x00\x67\x00\x67\x00\x34\x00\x1a\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x67\x00\x67\x00\x05\x00\x06\x00\x07\x00\x0d\x00\x21\x00\x01\x00\x11\x00\x11\x00\x0e\x00\x0f\x00\x15\x00\x0e\x00\x0f\x00\x0f\x00\x19\x00\x19\x00\x3d\x00\x0d\x00\x3d\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1d\x00\x1e\x00\x67\x00\x58\x00\x59\x00\x5d\x00\x5f\x00\x5f\x00\x60\x00\x67\x00\x5f\x00\x60\x00\x67\x00\x5f\x00\x0d\x00\x68\x00\x68\x00\x67\x00\x11\x00\x68\x00\x67\x00\x5f\x00\x68\x00\x34\x00\x67\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x67\x00\x06\x00\x07\x00\x67\x00\x5d\x00\x67\x00\x5f\x00\x60\x00\x67\x00\x67\x00\x67\x00\x4b\x00\x4b\x00\x15\x00\x65\x00\x68\x00\x26\x00\x44\x00\x1a\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1d\x00\x1e\x00\x58\x00\x58\x00\x59\x00\x58\x00\x58\x00\x4b\x00\x17\x00\x5f\x00\x5f\x00\x60\x00\x5f\x00\x5f\x00\x1d\x00\x67\x00\x67\x00\x4b\x00\x68\x00\x68\x00\x12\x00\x68\x00\x68\x00\x34\x00\x66\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x38\x00\x39\x00\x3a\x00\x06\x00\x07\x00\x67\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x62\x00\x1b\x00\x59\x00\x4b\x00\x67\x00\x1f\x00\x68\x00\x4b\x00\x5f\x00\x60\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1d\x00\x1e\x00\x68\x00\x58\x00\x59\x00\x57\x00\x58\x00\x59\x00\x4b\x00\x4b\x00\x5f\x00\x60\x00\x65\x00\x5f\x00\x60\x00\x65\x00\x67\x00\x58\x00\x66\x00\x68\x00\x67\x00\x66\x00\x68\x00\x34\x00\x5f\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x15\x00\x16\x00\x17\x00\x68\x00\x07\x00\x59\x00\x67\x00\x67\x00\x1d\x00\x5f\x00\x60\x00\x5f\x00\x60\x00\x65\x00\x1b\x00\x1c\x00\x2b\x00\x2c\x00\x68\x00\x0d\x00\x68\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1d\x00\x1e\x00\x1c\x00\x58\x00\x59\x00\x19\x00\x00\x00\x15\x00\x16\x00\x17\x00\x5f\x00\x60\x00\x15\x00\x11\x00\x12\x00\x1d\x00\x0f\x00\x1a\x00\x11\x00\x68\x00\x00\x00\x0f\x00\x00\x00\x34\x00\x12\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x0f\x00\x5f\x00\x0f\x00\x12\x00\x15\x00\x12\x00\x58\x00\x48\x00\x49\x00\x4a\x00\x68\x00\x01\x00\x02\x00\x5f\x00\x58\x00\x20\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x5f\x00\x68\x00\x0d\x00\x58\x00\x59\x00\x66\x00\x58\x00\x60\x00\x13\x00\x68\x00\x5f\x00\x60\x00\x17\x00\x5f\x00\x65\x00\x68\x00\x19\x00\x1a\x00\x58\x00\x68\x00\x1d\x00\x1e\x00\x68\x00\x00\x00\x00\x00\x5f\x00\x19\x00\x1a\x00\x15\x00\x59\x00\x1d\x00\x1e\x00\x1b\x00\x1c\x00\x68\x00\x5f\x00\x60\x00\x10\x00\x0f\x00\x0f\x00\x21\x00\x12\x00\x12\x00\x34\x00\x68\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x13\x00\x00\x00\x34\x00\x05\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x0f\x00\x5f\x00\x60\x00\x12\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1e\x00\x68\x00\x20\x00\x58\x00\x59\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x5f\x00\x60\x00\x1a\x00\x58\x00\x59\x00\x1d\x00\x1e\x00\x58\x00\x13\x00\x68\x00\x5f\x00\x60\x00\x0d\x00\x15\x00\x5f\x00\x38\x00\x39\x00\x3a\x00\x13\x00\x68\x00\x06\x00\x15\x00\x17\x00\x68\x00\x20\x00\x02\x00\x1a\x00\x0d\x00\x34\x00\x59\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x5f\x00\x60\x00\x17\x00\x62\x00\x61\x00\x65\x00\x63\x00\x64\x00\x0d\x00\x68\x00\x56\x00\x57\x00\x58\x00\x59\x00\x13\x00\x1d\x00\x1e\x00\x65\x00\x17\x00\x5f\x00\x60\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x60\x00\x20\x00\x68\x00\x58\x00\x59\x00\x0d\x00\x58\x00\x0b\x00\x68\x00\x11\x00\x5f\x00\x60\x00\x34\x00\x5f\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x01\x00\x02\x00\x68\x00\x42\x00\x43\x00\x44\x00\x66\x00\x08\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x1d\x00\x1e\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x60\x00\x16\x00\x58\x00\x59\x00\x02\x00\x1f\x00\x20\x00\x21\x00\x68\x00\x5f\x00\x60\x00\x34\x00\x21\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x01\x00\x02\x00\x5d\x00\x15\x00\x5f\x00\x60\x00\x21\x00\x19\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x1e\x00\x68\x00\x1d\x00\x1e\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x60\x00\x15\x00\x58\x00\x59\x00\x60\x00\x0f\x00\x1a\x00\x11\x00\x68\x00\x5f\x00\x60\x00\x34\x00\x68\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x66\x00\x0f\x00\x60\x00\x11\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x68\x00\x0b\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x2b\x00\x2c\x00\x58\x00\x59\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x15\x00\x58\x00\x1f\x00\x20\x00\x21\x00\x1a\x00\x66\x00\x68\x00\x5f\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x1f\x00\x20\x00\x21\x00\x68\x00\x59\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x1b\x00\x1c\x00\x59\x00\x1e\x00\x1f\x00\x2b\x00\x2c\x00\x68\x00\x5f\x00\x60\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x65\x00\x1e\x00\x68\x00\x20\x00\x1f\x00\x20\x00\x21\x00\x59\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x1c\x00\x0f\x00\x1e\x00\x11\x00\x0f\x00\x0b\x00\x11\x00\x68\x00\x59\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x2b\x00\x2c\x00\x59\x00\x1c\x00\x0f\x00\x1e\x00\x11\x00\x68\x00\x5f\x00\x60\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x01\x00\x02\x00\x68\x00\x04\x00\x59\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x0d\x00\x15\x00\x58\x00\x01\x00\x02\x00\x59\x00\x13\x00\x68\x00\x1c\x00\x5f\x00\x17\x00\x5f\x00\x60\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x68\x00\x58\x00\x68\x00\x59\x00\x0e\x00\x66\x00\x66\x00\x0b\x00\x5f\x00\x5f\x00\x60\x00\x15\x00\x23\x00\x24\x00\x25\x00\x26\x00\x04\x00\x68\x00\x68\x00\x2a\x00\x59\x00\x66\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x29\x00\x2a\x00\x59\x00\x04\x00\x1c\x00\x00\x00\x1e\x00\x68\x00\x5f\x00\x60\x00\x23\x00\x24\x00\x25\x00\x26\x00\x25\x00\x26\x00\x10\x00\x68\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x59\x00\x23\x00\x24\x00\x25\x00\x26\x00\x10\x00\x5f\x00\x60\x00\x25\x00\x26\x00\x5a\x00\x5b\x00\x5c\x00\x25\x00\x26\x00\x68\x00\x59\x00\x61\x00\x62\x00\x63\x00\x64\x00\x10\x00\x5f\x00\x60\x00\x68\x00\x1e\x00\x59\x00\x10\x00\x0d\x00\x58\x00\x59\x00\x68\x00\x5f\x00\x60\x00\x13\x00\x14\x00\x5f\x00\x60\x00\x17\x00\x11\x00\x3d\x00\x68\x00\x59\x00\x0d\x00\x59\x00\x68\x00\x0d\x00\x0e\x00\x5f\x00\x60\x00\x5f\x00\x60\x00\x13\x00\x1e\x00\x15\x00\x59\x00\x17\x00\x68\x00\x3d\x00\x68\x00\x59\x00\x5f\x00\x60\x00\x0d\x00\x0e\x00\x59\x00\x5f\x00\x60\x00\x0d\x00\x13\x00\x68\x00\x5f\x00\x60\x00\x17\x00\x13\x00\x68\x00\x28\x00\x11\x00\x17\x00\x10\x00\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x10\x00\x3c\x00\x08\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x0e\x00\x0e\x00\x0e\x00\x1e\x00\x0f\x00\x0e\x00\x15\x00\x15\x00\x15\x00\x15\x00\x58\x00\x59\x00\x15\x00\x5b\x00\x10\x00\x3d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x5a\x00\x5b\x00\x5c\x00\x68\x00\x58\x00\x59\x00\x15\x00\x61\x00\x62\x00\x63\x00\x64\x00\x5f\x00\x60\x00\x10\x00\x68\x00\x0d\x00\x2a\x00\x11\x00\x3d\x00\x34\x00\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x39\x00\x58\x00\x59\x00\x39\x00\x0d\x00\x11\x00\x1a\x00\x15\x00\x5f\x00\x60\x00\x13\x00\x0e\x00\x0e\x00\x14\x00\x17\x00\x58\x00\x59\x00\x68\x00\x30\x00\x0e\x00\x1d\x00\x11\x00\x5f\x00\x60\x00\x10\x00\x0f\x00\x23\x00\x24\x00\x10\x00\x58\x00\x59\x00\x68\x00\x19\x00\x0d\x00\x1c\x00\x15\x00\x5f\x00\x60\x00\x3d\x00\x1c\x00\x31\x00\x10\x00\x3d\x00\x3d\x00\x1c\x00\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x35\x00\x58\x00\x59\x00\x0d\x00\x5a\x00\x5b\x00\x5c\x00\x34\x00\x5f\x00\x60\x00\x39\x00\x61\x00\x62\x00\x63\x00\x64\x00\x58\x00\x59\x00\x68\x00\x68\x00\x16\x00\x0e\x00\x20\x00\x5f\x00\x60\x00\x10\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\x58\x00\x59\x00\x68\x00\x61\x00\x62\x00\x63\x00\x64\x00\x5f\x00\x60\x00\x16\x00\x68\x00\x16\x00\x1f\x00\x1f\x00\x0d\x00\x20\x00\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x21\x00\x58\x00\x59\x00\x10\x00\x5a\x00\x5b\x00\x5c\x00\x35\x00\x5f\x00\x60\x00\x1e\x00\x61\x00\x62\x00\x63\x00\x64\x00\x58\x00\x59\x00\x68\x00\x68\x00\x3d\x00\x18\x00\x0d\x00\x5f\x00\x60\x00\x08\x00\x10\x00\x0d\x00\x10\x00\x0e\x00\x58\x00\x59\x00\x68\x00\x0e\x00\x0e\x00\x18\x00\x0d\x00\x5f\x00\x60\x00\x15\x00\x30\x00\x14\x00\x10\x00\x15\x00\x0d\x00\x15\x00\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x1a\x00\x58\x00\x59\x00\x1a\x00\x1a\x00\x10\x00\x1a\x00\x10\x00\x5f\x00\x60\x00\x18\x00\x0f\x00\x02\x00\x10\x00\x3d\x00\x58\x00\x59\x00\x68\x00\x3e\x00\x32\x00\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x58\x00\x59\x00\x68\x00\xff\xff\x03\x00\x13\x00\xff\xff\x5f\x00\x60\x00\x17\x00\xff\xff\x58\x00\x59\x00\xff\xff\x0d\x00\x1d\x00\x68\x00\xff\xff\x5f\x00\x60\x00\x13\x00\x23\x00\x24\x00\xff\xff\x17\x00\x27\x00\x28\x00\x68\x00\xff\xff\xff\xff\x1d\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\x31\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\x28\x00\x38\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\xff\xff\x38\x00\xff\xff\x3a\x00\x3b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x38\x00\x39\x00\x3a\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\x36\x00\x37\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\x5f\x00\x60\x00\x13\x00\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x68\x00\xff\xff\xff\xff\x1d\x00\x01\x00\x02\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x13\x00\x31\x00\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\x38\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\x01\x00\x02\x00\x68\x00\x5f\x00\x60\x00\xff\xff\x58\x00\x59\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x68\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x03\x00\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\x26\x00\xff\xff\xff\xff\x29\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\x58\x00\x59\x00\x03\x00\x23\x00\x24\x00\x25\x00\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\x0d\x00\x2d\x00\xff\xff\x10\x00\x68\x00\x31\x00\x13\x00\x33\x00\xff\xff\xff\xff\x17\x00\x18\x00\x38\x00\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\x2d\x00\xff\xff\x13\x00\x14\x00\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x1d\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\x2d\x00\xff\xff\x13\x00\xff\xff\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x1d\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x22\x00\xff\xff\x3d\x00\x3e\x00\x26\x00\xff\xff\xff\xff\x29\x00\xff\xff\xff\xff\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\x36\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\x46\x00\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\x46\x00\x47\x00\xff\xff\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\x40\x00\x41\x00\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\x40\x00\x41\x00\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\x3d\x00\x3e\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\x47\x00\xff\xff\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\xff\xff\x3e\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x03\x00\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x0d\x00\x58\x00\x59\x00\xff\xff\x11\x00\xff\xff\x13\x00\xff\xff\x5f\x00\x60\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x68\x00\x03\x00\x58\x00\x59\x00\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x5f\x00\x60\x00\x0d\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x13\x00\x68\x00\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\x37\x00\x34\x00\x1d\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x03\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\x37\x00\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\x58\x00\x59\x00\x03\x00\x1d\x00\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x23\x00\x24\x00\x25\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x68\x00\x03\x00\x13\x00\x2d\x00\xff\xff\xff\xff\x17\x00\x31\x00\xff\xff\xff\xff\xff\xff\x0d\x00\x1d\x00\xff\xff\x10\x00\xff\xff\xff\xff\x13\x00\x23\x00\x24\x00\x25\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x03\x00\x1d\x00\x2d\x00\x03\x00\xff\xff\xff\xff\x31\x00\x23\x00\x24\x00\x25\x00\x0d\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x13\x00\x2d\x00\x03\x00\x13\x00\x17\x00\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\x1d\x00\x03\x00\x0d\x00\x1d\x00\xff\xff\xff\xff\x23\x00\x24\x00\x13\x00\x23\x00\x24\x00\x0d\x00\x17\x00\xff\xff\xff\xff\xff\xff\x03\x00\x13\x00\x1d\x00\x03\x00\x31\x00\x17\x00\xff\xff\x31\x00\x23\x00\x24\x00\x0d\x00\x1d\x00\xff\xff\x0d\x00\xff\xff\xff\xff\x13\x00\x23\x00\x24\x00\x13\x00\x17\x00\xff\xff\x31\x00\x17\x00\x03\x00\xff\xff\x1d\x00\x03\x00\xff\xff\x1d\x00\xff\xff\x31\x00\x23\x00\x24\x00\x0d\x00\x23\x00\x24\x00\x0d\x00\xff\xff\xff\xff\x13\x00\xff\xff\x03\x00\x13\x00\x17\x00\x03\x00\x31\x00\x17\x00\xff\xff\x31\x00\x1d\x00\xff\xff\x0d\x00\x1d\x00\xff\xff\x0d\x00\x23\x00\x24\x00\x13\x00\x23\x00\x24\x00\x13\x00\x17\x00\xff\xff\xff\xff\x17\x00\x03\x00\xff\xff\x1d\x00\x03\x00\x31\x00\x1d\x00\xff\xff\x31\x00\x23\x00\x24\x00\x0d\x00\x23\x00\x24\x00\x0d\x00\xff\xff\xff\xff\x13\x00\xff\xff\x03\x00\x13\x00\x17\x00\xff\xff\x31\x00\x17\x00\xff\xff\x31\x00\x1d\x00\xff\xff\x0d\x00\x1d\x00\xff\xff\xff\xff\x23\x00\x24\x00\x13\x00\x23\x00\x24\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x31\x00\xff\xff\xff\xff\x31\x00\x23\x00\x24\x00\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x0d\x00\x13\x00\xff\xff\x10\x00\xff\xff\x17\x00\x13\x00\x31\x00\xff\xff\xff\xff\x17\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x15\x00\x16\x00\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#++happyTable :: HappyAddr+happyTable = HappyA# "\x00\x00\x52\x01\x08\x00\xf9\x00\x0d\x00\x33\x00\x0f\x00\xfc\x01\x35\x00\x7b\x01\xfe\x00\xff\x00\x44\x01\xa2\x01\xf3\x01\x95\x00\xdb\xff\x96\x00\x45\x00\xdb\xff\x0d\x01\xfc\x00\xfe\x01\x80\x01\xc9\x01\x9a\x00\xfa\x01\x81\x01\x10\x00\x11\x00\x09\x01\xf8\x01\xb9\x01\x96\x01\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\x3f\x00\xa3\x01\xf0\xfe\x40\x01\x9c\x00\xfc\x00\x41\x01\xd8\x00\x3c\x00\x90\x01\x7c\x01\xc5\x00\x12\x00\x0a\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xca\x01\xc5\x00\x0d\x00\x0e\x00\x0f\x00\x44\x00\x78\x00\xf0\xfe\x68\x01\x39\x01\x0c\x01\xea\x00\x69\x01\xe9\x00\xea\x00\x8b\x01\x6a\x01\x3a\x01\xdb\xff\x44\x00\xfd\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\x3d\x00\x1d\x00\x1e\x00\x36\x00\xfa\x00\x37\x00\x38\x00\x3d\x00\x1f\x00\x20\x00\x97\x01\xfa\x00\x44\x00\xab\x00\x39\x00\x53\x01\xc7\xff\x21\x00\x09\x00\xfa\x00\xab\x00\x12\x00\x46\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xab\x00\x40\x00\x97\x01\xc1\x01\x0f\x00\x3d\x00\x36\x00\x3d\x00\x41\x00\x42\x00\x3d\x00\x3d\x00\x3d\x00\xc6\x01\xc7\x01\x97\x00\xf0\x01\x39\x00\x4e\x01\xe5\x01\xd9\x01\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\xeb\x00\x1d\x00\x1e\x00\xeb\x00\xeb\x00\xc8\x01\xdd\x01\x1f\x00\x1f\x00\x20\x00\x1f\x00\x1f\x00\xa0\x01\xc5\x00\xc5\x00\x70\x01\xab\x00\x21\x00\xdf\x01\xab\x00\xab\x00\x12\x00\xe7\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4f\x00\x16\x00\x17\x00\x56\x01\x0f\x00\xc5\x00\xa6\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xd6\x01\x73\x01\xa5\x00\xc4\x00\xc5\x00\x74\x01\x8b\x00\xc7\x00\xa6\x00\x4c\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\x39\x00\x1d\x00\x1e\x00\xe3\x00\x4a\x00\x4b\x00\xc8\x00\xc9\x00\x1f\x00\x20\x00\xd3\x01\x1f\x00\x4c\x00\xda\x01\xc5\x00\xa1\x01\x9c\x01\x21\x00\xc5\x00\xaa\x01\x4d\x00\x12\x00\x1f\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xdb\x01\x9e\x01\x9f\x01\xab\x00\x9d\x00\xa5\x00\xc5\x00\xc5\x00\xa0\x01\xb8\x00\xb9\x00\xa6\x00\x4c\x00\xc0\x01\x1a\x01\x1b\x01\xc4\x01\xc0\x00\x39\x00\x44\x00\x39\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\xa8\x01\x1d\x00\x1e\x00\xbc\x01\x9a\x00\x9d\x01\x9e\x01\x9f\x01\x1f\x00\x20\x00\x97\x00\xa4\x01\xa5\x01\xa0\x01\xf2\x01\x79\x01\xf7\x01\x21\x00\x9a\x00\xf2\x01\x9a\x00\x12\x00\x9c\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa6\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xd5\x01\xfa\x00\x9b\x00\x9c\x00\x44\x01\x9c\x00\xa1\x01\xeb\x01\xec\x01\xed\x01\xab\x00\xf0\xfe\xf0\xfe\x1f\x00\x1c\x01\xfe\x01\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1f\x00\xab\x00\xa8\x00\x1d\x00\x1e\x00\x55\x01\x1c\x01\x34\x00\xa9\x00\xab\x00\x1f\x00\x20\x00\xaa\x00\x1f\x00\x75\x01\x05\x00\x05\x01\xf0\x00\xa1\x01\x21\x00\xf1\x00\xf2\x00\xab\x00\x9a\x00\x9a\x00\x1f\x00\xef\x00\xf0\x00\x61\x01\xa5\x00\xf1\x00\xf2\x00\x37\x01\x1b\x01\xab\x00\xa6\x00\x4c\x00\x88\x01\x05\x01\x0c\x01\x52\x01\x9c\x00\x9c\x00\x12\x00\x39\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xf0\xfe\x93\x01\x9a\x00\x12\x00\x0f\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x47\x01\x48\x01\xa2\x00\xa3\x00\xa4\x00\x49\x01\x4a\x01\x9b\x00\xcb\x00\xb9\x00\x9c\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xef\x01\x39\x00\xf0\x01\x1d\x00\x1e\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1f\x00\x4c\x00\x91\x01\x1d\x00\x1e\x00\xf1\x00\xf2\x00\x1c\x01\x9b\x01\x21\x00\x1f\x00\x4c\x00\xa8\x00\x44\x01\x1f\x00\x4f\x00\x16\x00\x17\x00\xa9\x00\x21\x00\xc2\x00\x97\x00\xaa\x00\xab\x00\xf5\x01\xf8\x00\x03\x01\xc3\x00\x12\x00\xa5\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa6\x00\x4c\x00\xc4\x00\x4b\x01\x69\x00\x03\x01\x6b\x00\x8a\x00\x24\x00\x4c\x01\x50\x00\x51\x00\x4a\x00\x4b\x00\x25\x00\x27\x01\x28\x01\x0a\x01\x26\x00\x1f\x00\x4c\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x3a\x00\xe5\x00\x4d\x00\x1d\x00\x1e\x00\x44\x00\x8d\x01\xe7\x00\x05\x00\x1e\x01\x1f\x00\x4c\x00\x12\x00\x1f\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x7b\x00\x07\x00\xab\x00\xce\x01\xcf\x01\xd0\x01\x26\x01\xbb\x00\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\xf0\xfe\x27\x01\x28\x01\x79\x01\x2a\x01\x2b\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x3b\x00\x8e\x00\x1d\x00\x1e\x00\x9e\x00\x76\x01\x92\x00\x93\x00\x05\x00\x1f\x00\x4c\x00\x12\x00\x78\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x7b\x00\x07\x00\x06\x01\xe1\x00\x37\x00\x42\x00\xb2\x00\xe2\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xe3\x00\x39\x00\x27\x01\x28\x01\x29\x01\x2a\x01\x2b\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x44\x00\xb9\xff\x1d\x00\x1e\x00\x48\x00\xd5\x01\xb9\xff\xe2\x01\x05\x00\x1f\x00\x4c\x00\x12\x00\x05\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x86\x01\x48\x01\xa2\x00\xa3\x00\xa4\x00\x87\x01\xbe\x00\x9b\x00\x04\x00\xc3\x01\x99\x01\x48\x01\xa2\x00\xa3\x00\xa4\x00\x9a\x01\x05\x00\xf4\x00\xb3\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x6a\x01\xc0\x00\x1d\x00\x1e\x00\xde\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x1f\x00\x4c\x00\x97\x00\xaa\x00\x8e\x01\x92\x00\x93\x00\x98\x00\xdb\x00\x21\x00\x1f\x00\xe0\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x01\x01\x92\x00\x93\x00\xab\x00\xa5\x00\xb1\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x12\xff\xb8\xff\xa5\x00\xb8\xff\x12\xff\x35\x01\xc0\x00\x39\x00\xa6\x00\x4c\x00\x8c\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x98\x00\xd2\x01\x39\x00\xd3\x01\x91\x00\x92\x00\x93\x00\xa5\x00\x92\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x78\x01\x0c\x01\x96\x00\x8b\x01\x05\x01\xf5\x00\x91\x01\x39\x00\xa5\x00\x95\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\xbf\x00\xc0\x00\xa5\x00\x95\x00\x9b\x00\x96\x00\xf8\x00\x39\x00\xa6\x00\x4c\x00\x07\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xf0\xfe\xf0\xfe\x39\x00\x50\x01\xa5\x00\x45\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\xa8\x00\x44\x01\xb7\x00\x7b\x00\x07\x00\xa5\x00\xa9\x00\x39\x00\x45\x01\x1f\x00\xaa\x00\xa6\x00\x4c\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xab\x00\xca\x00\x39\x00\xa5\x00\x5e\x01\xe8\x00\xee\x00\xf6\x00\x1f\x00\xa6\x00\x4c\x00\xd8\x00\x57\x01\xa2\x00\xa3\x00\xa4\x00\x32\x00\xab\x00\x39\x00\xc3\x01\xa5\x00\x0b\x00\x57\x01\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x58\x01\x59\x01\xa5\x00\x0c\x00\x95\x00\x03\x00\x96\x00\x39\x00\xa6\x00\x4c\x00\xbc\x01\xa2\x00\xa3\x00\xa4\x00\x5b\x01\xa4\x00\xc7\x00\x39\x00\xd0\x00\x15\x00\x16\x00\x17\x00\xa5\x00\xbd\x01\xa2\x00\xa3\x00\xa4\x00\x3f\x00\xa6\x00\x4c\x00\x5c\x01\xa4\x00\x85\x00\x86\x00\xd3\x00\x13\x01\xa4\x00\x39\x00\xa5\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\xc7\x00\x5a\x01\x4c\x00\x8b\x00\xef\x01\xa5\x00\x3f\x00\xa8\x00\x4a\x00\x4b\x00\x39\x00\x5a\x01\x4c\x00\xa9\x00\x47\x01\x1f\x00\x4c\x00\xaa\x00\xdd\x01\xfc\x01\x39\x00\xa5\x00\x44\x00\xa5\x00\x4d\x00\xa8\x00\x4e\x01\xa6\x00\x4c\x00\xa6\x00\x4c\x00\xa9\x00\xd2\x01\x75\x00\xa5\x00\xaa\x00\x39\x00\xe7\x01\x39\x00\xa5\x00\xa6\x00\x4c\x00\x24\x00\x24\x01\xa5\x00\xa6\x00\x4c\x00\x24\x00\x25\x00\x39\x00\xa6\x00\x4c\x00\x26\x00\x25\x00\x39\x00\x63\x00\xc6\x01\x26\x00\xc7\x00\x39\x00\x64\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x65\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xcc\x01\x66\x00\xf0\xfe\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x5c\x00\x5d\x00\x5f\x01\xd2\x00\xd5\x00\xd8\x01\xda\x01\xd7\x00\x60\x01\x60\x01\xd3\x00\xd6\x00\x4a\x00\x1e\x00\xd8\x00\x67\x00\x99\x01\xb4\x00\x68\x00\x1f\x00\x4c\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x85\x00\x86\x00\xdd\x00\x6d\x00\x4a\x00\x1e\x00\x60\x01\x88\x00\x89\x00\x6b\x00\x8a\x00\x1f\x00\x4c\x00\x3f\x00\x8b\x00\x44\x00\xb0\x01\xb1\x01\xb4\x00\xb7\x01\x21\x00\xf5\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe3\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xcc\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb8\x01\x4a\x00\x1e\x00\xba\x01\x24\x00\xbb\x01\xbf\x01\xc0\x01\x1f\x00\x4c\x00\x25\x00\xcf\x00\x62\x01\x63\x01\x26\x00\x4a\x00\x1e\x00\x21\x00\xf4\x00\x6c\x01\x27\x00\x67\x01\x1f\x00\x4c\x00\xc7\x00\x75\x01\x28\x00\x29\x00\x7e\x01\x4a\x00\x1e\x00\x21\x00\x86\x01\x44\x00\x7f\x01\x44\x01\x1f\x00\x4c\x00\xb4\x00\x8a\x01\x2e\x00\x99\x01\x95\x01\x95\x01\xfe\x00\x21\x00\xcd\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa7\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa9\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa0\x00\x4a\x00\x1e\x00\x44\x00\x85\x00\x86\x00\xde\x00\x1f\x01\x1f\x00\x4c\x00\x20\x01\x88\x00\x89\x00\x6b\x00\x8a\x00\x4a\x00\x1e\x00\x21\x00\x8b\x00\x25\x01\x26\x01\x37\x01\x1f\x00\x4c\x00\x3f\x00\x85\x00\x86\x00\x87\x00\x7b\x00\x4a\x00\x1e\x00\x21\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x1f\x00\x4c\x00\x3d\x01\x8b\x00\x3e\x01\x43\x01\x12\xff\x44\x00\x51\x01\x21\x00\xb1\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb4\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb5\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x52\x01\x4a\x00\x1e\x00\x55\x01\x85\x00\x86\x00\x90\x00\xa0\x00\x1f\x00\x4c\x00\x96\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x4a\x00\x1e\x00\x21\x00\x8b\x00\xb4\x00\x8f\x00\x44\x00\x1f\x00\x4c\x00\xbb\x00\xc7\x00\x44\x00\x3f\x00\xfb\xfe\x4a\x00\x1e\x00\x21\x00\xcf\x00\xd0\x00\x8f\x00\x44\x00\x1f\x00\x4c\x00\xd3\x00\xf4\x00\xdd\x00\x3f\x00\xee\x00\x44\x00\xee\x00\x21\x00\x63\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x6c\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x6d\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe0\x00\x4a\x00\x1e\x00\x0e\xff\xed\x00\x48\x00\x84\x00\x85\x00\x1f\x00\x4c\x00\x8f\x00\x9d\x00\x07\x00\x0b\x00\x08\x00\x4a\x00\x1e\x00\x21\x00\xff\xff\x03\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x6f\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x71\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x7a\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x0f\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x11\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x12\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x20\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x22\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\xb1\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xd9\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xda\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\xe5\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe6\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x81\x01\x59\x00\x82\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x23\x00\x25\x00\x00\x00\x1f\x00\x4c\x00\x26\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x24\x00\x27\x00\x21\x00\x00\x00\x1f\x00\x4c\x00\x25\x00\x28\x00\x29\x00\x00\x00\x26\x00\x2a\x00\x2b\x00\x21\x00\x00\x00\x00\x00\x27\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x2e\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2f\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\xf0\xfe\xf0\xfe\x23\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x31\x00\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x8f\x00\x16\x00\x17\x00\xf0\xfe\x28\x00\x29\x00\x30\x01\xf0\xfe\x00\x00\x00\x00\xf0\xfe\x31\x01\x32\x01\x33\x01\x34\x01\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xfe\x35\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x24\x00\x74\x00\x00\x00\x60\x00\x1f\x00\x4c\x00\x25\x00\x00\x00\x75\x00\x76\x00\x26\x00\x77\x00\x00\x00\x4d\x00\x00\x00\x00\x00\x27\x00\xf0\xfe\xf0\xfe\x00\x00\x78\x00\x00\x00\x28\x00\x29\x00\x61\x00\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\x24\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x25\x00\x2e\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x63\x00\x83\x01\x59\x00\x84\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x14\x01\x59\x00\x15\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x17\x01\x59\x00\x18\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x7b\x00\x07\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\xcc\x00\x59\x00\xcd\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x5f\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x82\x00\x24\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x5f\x00\x28\x00\x29\x00\x61\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x24\x00\x62\x00\x00\x00\x60\x00\x21\x00\x2e\x00\x25\x00\xb3\x01\x00\x00\x00\x00\x26\x00\x8f\x00\x63\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x60\x00\x62\x00\x00\x00\x25\x00\x58\xff\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x27\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x60\x00\x62\x00\x00\x00\x25\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x27\x00\x00\x00\x7b\x00\x07\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\xbb\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x80\x00\x00\x00\xf9\x01\xad\x00\x81\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x3a\x01\x00\x00\x3b\x01\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x83\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\xf2\x01\xe9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xea\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\xe4\x01\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x01\x00\x00\x3f\x01\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\xe8\x01\xe9\x01\x00\x00\x49\x00\x16\x00\x17\x00\x21\x00\x00\x00\x00\x00\x00\x00\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xea\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\xd5\x01\xac\x01\x00\x00\x1f\x00\x4c\x00\xb4\x00\x00\x00\xb5\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4d\x00\x00\x00\x00\x00\x00\x00\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xae\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\xab\x01\xac\x01\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x6e\x01\xad\x00\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xae\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x10\x01\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\xac\x00\xad\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x4e\x00\x16\x00\x17\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x8f\x00\x16\x00\x17\x00\x4d\x00\x00\x00\x00\x00\x00\x00\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xea\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\x00\x00\xe2\x01\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4d\x00\x00\x00\x00\x00\x64\x01\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xae\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbc\x00\x14\x00\x15\x00\x16\x00\x17\x00\x23\x00\x00\x00\x00\x00\x65\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x24\x00\x4a\x00\x1e\x00\x00\x00\x32\xff\x00\x00\x25\x00\x00\x00\x1f\x00\x4c\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x21\x00\x23\x00\x4a\x00\x1e\x00\x00\x00\x28\x00\x29\x00\x30\x01\x00\x00\x1f\x00\x4c\x00\x24\x00\x31\x01\x32\x01\x33\x01\x34\x01\x00\x00\x25\x00\x21\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x35\x01\x78\x00\x27\x00\x79\x00\x14\x00\x15\x00\x16\x00\x17\x00\x28\x00\x29\x00\x30\x01\x00\x00\x00\x00\x00\x00\x1a\x01\x31\x01\x32\x01\x33\x01\x34\x01\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x24\x00\x22\x01\x00\x00\x60\x00\x35\x01\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x17\x01\x27\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x28\x00\x29\x00\x61\x00\x24\x00\x00\x00\x00\x00\x60\x00\x21\x00\x1a\x01\x25\x00\x62\x00\x00\x00\x00\x00\x26\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x24\x00\x27\x00\x00\x00\x60\x00\x00\x00\x00\x00\x25\x00\x28\x00\x29\x00\x61\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x27\x00\x62\x00\x23\x00\x00\x00\x00\x00\x2e\x00\x28\x00\x29\x00\x61\x00\x24\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x62\x00\x23\x00\x25\x00\x26\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x27\x00\x23\x00\x24\x00\x27\x00\x00\x00\x00\x00\x28\x00\x29\x00\x25\x00\x28\x00\x29\x00\x24\x00\x26\x00\x00\x00\x00\x00\x00\x00\x23\x00\x25\x00\x27\x00\x23\x00\x2e\x00\x26\x00\x00\x00\xb1\x00\x28\x00\x29\x00\x24\x00\x27\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x28\x00\x29\x00\x25\x00\x26\x00\x00\x00\x2e\x00\x26\x00\x23\x00\x00\x00\x27\x00\x23\x00\x00\x00\x27\x00\x00\x00\xb1\x00\x28\x00\x29\x00\x24\x00\x28\x00\x29\x00\x24\x00\x00\x00\x00\x00\x25\x00\x00\x00\x23\x00\x25\x00\x26\x00\x23\x00\x2e\x00\x26\x00\x00\x00\xb1\x00\x27\x00\x00\x00\x24\x00\x27\x00\x00\x00\x24\x00\x28\x00\x29\x00\x25\x00\x28\x00\x29\x00\x25\x00\x26\x00\x00\x00\x00\x00\x26\x00\xb7\x00\x00\x00\x27\x00\xbe\x00\x2e\x00\x27\x00\x00\x00\xb1\x00\x28\x00\x29\x00\x24\x00\x28\x00\x29\x00\x24\x00\x00\x00\x00\x00\x25\x00\x00\x00\x23\x00\x25\x00\x26\x00\x00\x00\x2e\x00\x26\x00\x00\x00\xb1\x00\x27\x00\x00\x00\x24\x00\x27\x00\x00\x00\x00\x00\x28\x00\x29\x00\x25\x00\x28\x00\x29\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x2e\x00\x28\x00\x29\x00\x24\x00\xfa\xfe\x00\x00\x60\x00\x00\x00\x24\x00\x25\x00\x00\x00\x60\x00\x00\x00\x26\x00\x25\x00\x2e\x00\x00\x00\x00\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x62\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xff\x8e\x00\x00\x00\x00\x00\x00\x00\x8d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++happyReduceArr = array (1, 271) [+	(1 , happyReduce_1),+	(2 , happyReduce_2),+	(3 , happyReduce_3),+	(4 , happyReduce_4),+	(5 , happyReduce_5),+	(6 , happyReduce_6),+	(7 , happyReduce_7),+	(8 , happyReduce_8),+	(9 , happyReduce_9),+	(10 , happyReduce_10),+	(11 , happyReduce_11),+	(12 , happyReduce_12),+	(13 , happyReduce_13),+	(14 , happyReduce_14),+	(15 , happyReduce_15),+	(16 , happyReduce_16),+	(17 , happyReduce_17),+	(18 , happyReduce_18),+	(19 , happyReduce_19),+	(20 , happyReduce_20),+	(21 , happyReduce_21),+	(22 , happyReduce_22),+	(23 , happyReduce_23),+	(24 , happyReduce_24),+	(25 , happyReduce_25),+	(26 , happyReduce_26),+	(27 , happyReduce_27),+	(28 , happyReduce_28),+	(29 , happyReduce_29),+	(30 , happyReduce_30),+	(31 , happyReduce_31),+	(32 , happyReduce_32),+	(33 , happyReduce_33),+	(34 , happyReduce_34),+	(35 , happyReduce_35),+	(36 , happyReduce_36),+	(37 , happyReduce_37),+	(38 , happyReduce_38),+	(39 , happyReduce_39),+	(40 , happyReduce_40),+	(41 , happyReduce_41),+	(42 , happyReduce_42),+	(43 , happyReduce_43),+	(44 , happyReduce_44),+	(45 , happyReduce_45),+	(46 , happyReduce_46),+	(47 , happyReduce_47),+	(48 , happyReduce_48),+	(49 , happyReduce_49),+	(50 , happyReduce_50),+	(51 , happyReduce_51),+	(52 , happyReduce_52),+	(53 , happyReduce_53),+	(54 , happyReduce_54),+	(55 , happyReduce_55),+	(56 , happyReduce_56),+	(57 , happyReduce_57),+	(58 , happyReduce_58),+	(59 , happyReduce_59),+	(60 , happyReduce_60),+	(61 , happyReduce_61),+	(62 , happyReduce_62),+	(63 , happyReduce_63),+	(64 , happyReduce_64),+	(65 , happyReduce_65),+	(66 , happyReduce_66),+	(67 , happyReduce_67),+	(68 , happyReduce_68),+	(69 , happyReduce_69),+	(70 , happyReduce_70),+	(71 , happyReduce_71),+	(72 , happyReduce_72),+	(73 , happyReduce_73),+	(74 , happyReduce_74),+	(75 , happyReduce_75),+	(76 , happyReduce_76),+	(77 , happyReduce_77),+	(78 , happyReduce_78),+	(79 , happyReduce_79),+	(80 , happyReduce_80),+	(81 , happyReduce_81),+	(82 , happyReduce_82),+	(83 , happyReduce_83),+	(84 , happyReduce_84),+	(85 , happyReduce_85),+	(86 , happyReduce_86),+	(87 , happyReduce_87),+	(88 , happyReduce_88),+	(89 , happyReduce_89),+	(90 , happyReduce_90),+	(91 , happyReduce_91),+	(92 , happyReduce_92),+	(93 , happyReduce_93),+	(94 , happyReduce_94),+	(95 , happyReduce_95),+	(96 , happyReduce_96),+	(97 , happyReduce_97),+	(98 , happyReduce_98),+	(99 , happyReduce_99),+	(100 , happyReduce_100),+	(101 , happyReduce_101),+	(102 , happyReduce_102),+	(103 , happyReduce_103),+	(104 , happyReduce_104),+	(105 , happyReduce_105),+	(106 , happyReduce_106),+	(107 , happyReduce_107),+	(108 , happyReduce_108),+	(109 , happyReduce_109),+	(110 , happyReduce_110),+	(111 , happyReduce_111),+	(112 , happyReduce_112),+	(113 , happyReduce_113),+	(114 , happyReduce_114),+	(115 , happyReduce_115),+	(116 , happyReduce_116),+	(117 , happyReduce_117),+	(118 , happyReduce_118),+	(119 , happyReduce_119),+	(120 , happyReduce_120),+	(121 , happyReduce_121),+	(122 , happyReduce_122),+	(123 , happyReduce_123),+	(124 , happyReduce_124),+	(125 , happyReduce_125),+	(126 , happyReduce_126),+	(127 , happyReduce_127),+	(128 , happyReduce_128),+	(129 , happyReduce_129),+	(130 , happyReduce_130),+	(131 , happyReduce_131),+	(132 , happyReduce_132),+	(133 , happyReduce_133),+	(134 , happyReduce_134),+	(135 , happyReduce_135),+	(136 , happyReduce_136),+	(137 , happyReduce_137),+	(138 , happyReduce_138),+	(139 , happyReduce_139),+	(140 , happyReduce_140),+	(141 , happyReduce_141),+	(142 , happyReduce_142),+	(143 , happyReduce_143),+	(144 , happyReduce_144),+	(145 , happyReduce_145),+	(146 , happyReduce_146),+	(147 , happyReduce_147),+	(148 , happyReduce_148),+	(149 , happyReduce_149),+	(150 , happyReduce_150),+	(151 , happyReduce_151),+	(152 , happyReduce_152),+	(153 , happyReduce_153),+	(154 , happyReduce_154),+	(155 , happyReduce_155),+	(156 , happyReduce_156),+	(157 , happyReduce_157),+	(158 , happyReduce_158),+	(159 , happyReduce_159),+	(160 , happyReduce_160),+	(161 , happyReduce_161),+	(162 , happyReduce_162),+	(163 , happyReduce_163),+	(164 , happyReduce_164),+	(165 , happyReduce_165),+	(166 , happyReduce_166),+	(167 , happyReduce_167),+	(168 , happyReduce_168),+	(169 , happyReduce_169),+	(170 , happyReduce_170),+	(171 , happyReduce_171),+	(172 , happyReduce_172),+	(173 , happyReduce_173),+	(174 , happyReduce_174),+	(175 , happyReduce_175),+	(176 , happyReduce_176),+	(177 , happyReduce_177),+	(178 , happyReduce_178),+	(179 , happyReduce_179),+	(180 , happyReduce_180),+	(181 , happyReduce_181),+	(182 , happyReduce_182),+	(183 , happyReduce_183),+	(184 , happyReduce_184),+	(185 , happyReduce_185),+	(186 , happyReduce_186),+	(187 , happyReduce_187),+	(188 , happyReduce_188),+	(189 , happyReduce_189),+	(190 , happyReduce_190),+	(191 , happyReduce_191),+	(192 , happyReduce_192),+	(193 , happyReduce_193),+	(194 , happyReduce_194),+	(195 , happyReduce_195),+	(196 , happyReduce_196),+	(197 , happyReduce_197),+	(198 , happyReduce_198),+	(199 , happyReduce_199),+	(200 , happyReduce_200),+	(201 , happyReduce_201),+	(202 , happyReduce_202),+	(203 , happyReduce_203),+	(204 , happyReduce_204),+	(205 , happyReduce_205),+	(206 , happyReduce_206),+	(207 , happyReduce_207),+	(208 , happyReduce_208),+	(209 , happyReduce_209),+	(210 , happyReduce_210),+	(211 , happyReduce_211),+	(212 , happyReduce_212),+	(213 , happyReduce_213),+	(214 , happyReduce_214),+	(215 , happyReduce_215),+	(216 , happyReduce_216),+	(217 , happyReduce_217),+	(218 , happyReduce_218),+	(219 , happyReduce_219),+	(220 , happyReduce_220),+	(221 , happyReduce_221),+	(222 , happyReduce_222),+	(223 , happyReduce_223),+	(224 , happyReduce_224),+	(225 , happyReduce_225),+	(226 , happyReduce_226),+	(227 , happyReduce_227),+	(228 , happyReduce_228),+	(229 , happyReduce_229),+	(230 , happyReduce_230),+	(231 , happyReduce_231),+	(232 , happyReduce_232),+	(233 , happyReduce_233),+	(234 , happyReduce_234),+	(235 , happyReduce_235),+	(236 , happyReduce_236),+	(237 , happyReduce_237),+	(238 , happyReduce_238),+	(239 , happyReduce_239),+	(240 , happyReduce_240),+	(241 , happyReduce_241),+	(242 , happyReduce_242),+	(243 , happyReduce_243),+	(244 , happyReduce_244),+	(245 , happyReduce_245),+	(246 , happyReduce_246),+	(247 , happyReduce_247),+	(248 , happyReduce_248),+	(249 , happyReduce_249),+	(250 , happyReduce_250),+	(251 , happyReduce_251),+	(252 , happyReduce_252),+	(253 , happyReduce_253),+	(254 , happyReduce_254),+	(255 , happyReduce_255),+	(256 , happyReduce_256),+	(257 , happyReduce_257),+	(258 , happyReduce_258),+	(259 , happyReduce_259),+	(260 , happyReduce_260),+	(261 , happyReduce_261),+	(262 , happyReduce_262),+	(263 , happyReduce_263),+	(264 , happyReduce_264),+	(265 , happyReduce_265),+	(266 , happyReduce_266),+	(267 , happyReduce_267),+	(268 , happyReduce_268),+	(269 , happyReduce_269),+	(270 , happyReduce_270),+	(271 , happyReduce_271)+	]++happy_n_terms = 63 :: Int+happy_n_nonterms = 105 :: Int++happyReduce_1 = happyReduce 4# 0# happyReduction_1+happyReduction_1 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut100 happy_x_2 of { happy_var_2 -> +	case happyOut5 happy_x_4 of { happy_var_4 -> +	happyIn4+		 (mkModule happy_var_2 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_2 = happyReduce 6# 1# happyReduction_2+happyReduction_2 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut8 happy_x_3 of { happy_var_3 -> +	case happyOut10 happy_x_4 of { happy_var_4 -> +	case happyOut6 happy_x_6 of { happy_var_6 -> +	happyIn5+		 ((reverse happy_var_3,reverse happy_var_4, happy_var_6)+	) `HappyStk` happyRest}}}++happyReduce_3 = happyReduce 5# 1# happyReduction_3+happyReduction_3 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut8 happy_x_2 of { happy_var_2 -> +	case happyOut10 happy_x_3 of { happy_var_3 -> +	case happyOut6 happy_x_5 of { happy_var_5 -> +	happyIn5+		 ((reverse happy_var_2, reverse happy_var_3, happy_var_5)+	) `HappyStk` happyRest}}}++happyReduce_4 = happySpecReduce_2  2# happyReduction_4+happyReduction_4 happy_x_2+	happy_x_1+	 =  case happyOut7 happy_x_2 of { happy_var_2 -> +	happyIn6+		 (happy_var_2+	)}++happyReduce_5 = happySpecReduce_0  2# happyReduction_5+happyReduction_5  =  happyIn6+		 ([]+	)++happyReduce_6 = happyReduce 4# 3# happyReduction_6+happyReduction_6 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut10 happy_x_3 of { happy_var_3 -> +	happyIn7+		 (reverse happy_var_3+	) `HappyStk` happyRest}++happyReduce_7 = happySpecReduce_3  3# happyReduction_7+happyReduction_7 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut10 happy_x_2 of { happy_var_2 -> +	happyIn7+		 (reverse happy_var_2+	)}++happyReduce_8 = happySpecReduce_3  4# happyReduction_8+happyReduction_8 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> +	case happyOut9 happy_x_2 of { happy_var_2 -> +	happyIn8+		 (happy_var_2 : happy_var_1+	)}}++happyReduce_9 = happySpecReduce_0  4# happyReduction_9+happyReduction_9  =  happyIn8+		 ([]+	)++happyReduce_10 = happySpecReduce_2  5# happyReduction_10+happyReduction_10 happy_x_2+	happy_x_1+	 =  case happyOut100 happy_x_2 of { happy_var_2 -> +	happyIn9+		 (Import True (modId happy_var_2)+	)}++happyReduce_11 = happySpecReduce_2  5# happyReduction_11+happyReduction_11 happy_x_2+	happy_x_1+	 =  case happyOut100 happy_x_2 of { happy_var_2 -> +	happyIn9+		 (Import False (modId happy_var_2)+	)}++happyReduce_12 = happySpecReduce_3  6# happyReduction_12+happyReduction_12 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut10 happy_x_1 of { happy_var_1 -> +	case happyOut11 happy_x_3 of { happy_var_3 -> +	happyIn10+		 (happy_var_3 ++ happy_var_1+	)}}++happyReduce_13 = happySpecReduce_1  6# happyReduction_13+happyReduction_13 happy_x_1+	 =  case happyOut11 happy_x_1 of { happy_var_1 -> +	happyIn10+		 (happy_var_1+	)}++happyReduce_14 = happySpecReduce_3  7# happyReduction_14+happyReduction_14 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	case happyOut47 happy_x_3 of { happy_var_3 -> +	happyIn11+		 ([DKSig happy_var_1 happy_var_3]+	)}}++happyReduce_15 = happyReduce 5# 7# happyReduction_15+happyReduction_15 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut100 happy_x_2 of { happy_var_2 -> +	case happyOut15 happy_x_3 of { happy_var_3 -> +	case happyOut38 happy_x_5 of { happy_var_5 -> +	happyIn11+		 ([DType happy_var_2 (reverse happy_var_3) happy_var_5]+	) `HappyStk` happyRest}}}++happyReduce_16 = happyReduce 5# 7# happyReduction_16+happyReduction_16 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut100 happy_x_2 of { happy_var_2 -> +	case happyOut15 happy_x_3 of { happy_var_3 -> +	case happyOut14 happy_x_4 of { happy_var_4 -> +	case happyOut20 happy_x_5 of { happy_var_5 -> +	happyIn11+		 ([DData happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]+	) `HappyStk` happyRest}}}}++happyReduce_17 = happyReduce 5# 7# happyReduction_17+happyReduction_17 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut100 happy_x_2 of { happy_var_2 -> +	case happyOut15 happy_x_3 of { happy_var_3 -> +	case happyOut13 happy_x_4 of { happy_var_4 -> +	case happyOut23 happy_x_5 of { happy_var_5 -> +	happyIn11+		 ([DRec False happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]+	) `HappyStk` happyRest}}}}++happyReduce_18 = happyReduce 5# 7# happyReduction_18+happyReduction_18 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut100 happy_x_2 of { happy_var_2 -> +	case happyOut15 happy_x_3 of { happy_var_3 -> +	case happyOut12 happy_x_4 of { happy_var_4 -> +	case happyOut23 happy_x_5 of { happy_var_5 -> +	happyIn11+		 ([DRec True happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]+	) `HappyStk` happyRest}}}}++happyReduce_19 = happyReduce 5# 7# happyReduction_19+happyReduction_19 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut100 happy_x_2 of { happy_var_2 -> +	case happyOut15 happy_x_3 of { happy_var_3 -> +	case happyOut24 happy_x_5 of { happy_var_5 -> +	happyIn11+		 ([DRec True happy_var_2 (reverse happy_var_3) [] happy_var_5]+	) `HappyStk` happyRest}}}++happyReduce_20 = happySpecReduce_2  7# happyReduction_20+happyReduction_20 happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> +	happyIn11+		 ([DTClass happy_var_2]+	)}++happyReduce_21 = happyReduce 4# 7# happyReduction_21+happyReduction_21 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut92 happy_x_2 of { happy_var_2 -> +	case happyOut38 happy_x_4 of { happy_var_4 -> +	happyIn11+		 ([DPSig happy_var_2 happy_var_4]+	) `HappyStk` happyRest}}++happyReduce_22 = happyReduce 6# 7# happyReduction_22+happyReduction_22 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut92 happy_x_2 of { happy_var_2 -> +	case happyOut38 happy_x_4 of { happy_var_4 -> +	case happyOut28 happy_x_6 of { happy_var_6 -> +	happyIn11+		 ([DBind [BEqn (exp2lhs (EVar happy_var_2)) +                                                                          (RExp (EBStruct (Just (type2head happy_var_4)) [] happy_var_6))],+                                                              DPSig happy_var_2 happy_var_4]+	) `HappyStk` happyRest}}}++happyReduce_23 = happyReduce 5# 7# happyReduction_23+happyReduction_23 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut92 happy_x_2 of { happy_var_2 -> +	case happyOut38 happy_x_4 of { happy_var_4 -> +	case happyOut35 happy_x_5 of { happy_var_5 -> +	happyIn11+		 ([DBind [BEqn (exp2lhs (EVar happy_var_2)) happy_var_5], DPSig happy_var_2 happy_var_4]+	) `HappyStk` happyRest}}}++happyReduce_24 = happySpecReduce_2  7# happyReduction_24+happyReduction_24 happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> +	happyIn11+		 ([DInstance happy_var_2]+	)}++happyReduce_25 = happySpecReduce_2  7# happyReduction_25+happyReduction_25 happy_x_2+	happy_x_1+	 =  case happyOut17 happy_x_2 of { happy_var_2 -> +	happyIn11+		 ([DDefault (reverse happy_var_2)]+	)}++happyReduce_26 = happySpecReduce_3  7# happyReduction_26+happyReduction_26 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	case happyOut38 happy_x_3 of { happy_var_3 -> +	happyIn11+		 ([DBind [BSig (reverse happy_var_1) happy_var_3]]+	)}}++happyReduce_27 = happySpecReduce_2  7# happyReduction_27+happyReduction_27 happy_x_2+	happy_x_1+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_2 of { happy_var_2 -> +	happyIn11+		 ([DBind [BEqn happy_var_1 happy_var_2]]+	)}}++happyReduce_28 = happySpecReduce_2  8# happyReduction_28+happyReduction_28 happy_x_2+	happy_x_1+	 =  case happyOut43 happy_x_2 of { happy_var_2 -> +	happyIn12+		 (reverse happy_var_2+	)}++happyReduce_29 = happySpecReduce_2  8# happyReduction_29+happyReduction_29 happy_x_2+	happy_x_1+	 =  case happyOut38 happy_x_2 of { happy_var_2 -> +	happyIn12+		 ([happy_var_2]+	)}++happyReduce_30 = happySpecReduce_1  9# happyReduction_30+happyReduction_30 happy_x_1+	 =  case happyOut12 happy_x_1 of { happy_var_1 -> +	happyIn13+		 (happy_var_1+	)}++happyReduce_31 = happySpecReduce_0  9# happyReduction_31+happyReduction_31  =  happyIn13+		 ([]+	)++happyReduce_32 = happySpecReduce_2  10# happyReduction_32+happyReduction_32 happy_x_2+	happy_x_1+	 =  case happyOut43 happy_x_2 of { happy_var_2 -> +	happyIn14+		 (reverse happy_var_2+	)}++happyReduce_33 = happySpecReduce_2  10# happyReduction_33+happyReduction_33 happy_x_2+	happy_x_1+	 =  case happyOut38 happy_x_2 of { happy_var_2 -> +	happyIn14+		 ([happy_var_2]+	)}++happyReduce_34 = happySpecReduce_0  10# happyReduction_34+happyReduction_34  =  happyIn14+		 ([]+	)++happyReduce_35 = happySpecReduce_2  11# happyReduction_35+happyReduction_35 happy_x_2+	happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	case happyOut99 happy_x_2 of { happy_var_2 -> +	happyIn15+		 (happy_var_2 : happy_var_1+	)}}++happyReduce_36 = happySpecReduce_0  11# happyReduction_36+happyReduction_36  =  happyIn15+		 ([]+	)++happyReduce_37 = happySpecReduce_3  12# happyReduction_37+happyReduction_37 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	case happyOut97 happy_x_3 of { happy_var_3 -> +	happyIn16+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_38 = happySpecReduce_1  12# happyReduction_38+happyReduction_38 happy_x_1+	 =  case happyOut97 happy_x_1 of { happy_var_1 -> +	happyIn16+		 ([happy_var_1]+	)}++happyReduce_39 = happyReduce 4# 13# happyReduction_39+happyReduction_39 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut18 happy_x_3 of { happy_var_3 -> +	happyIn17+		 (happy_var_3+	) `HappyStk` happyRest}++happyReduce_40 = happySpecReduce_3  13# happyReduction_40+happyReduction_40 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut18 happy_x_2 of { happy_var_2 -> +	happyIn17+		 (happy_var_2+	)}++happyReduce_41 = happySpecReduce_3  14# happyReduction_41+happyReduction_41 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> +	case happyOut19 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_42 = happySpecReduce_1  14# happyReduction_42+happyReduction_42 happy_x_1+	 =  case happyOut19 happy_x_1 of { happy_var_1 -> +	happyIn18+		 ([happy_var_1]+	)}++happyReduce_43 = happySpecReduce_3  15# happyReduction_43+happyReduction_43 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut92 happy_x_1 of { happy_var_1 -> +	case happyOut92 happy_x_3 of { happy_var_3 -> +	happyIn19+		 (Default True happy_var_1 happy_var_3+	)}}++happyReduce_44 = happySpecReduce_3  15# happyReduction_44+happyReduction_44 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut92 happy_x_1 of { happy_var_1 -> +	case happyOut38 happy_x_3 of { happy_var_3 -> +	happyIn19+		 (Derive happy_var_1 happy_var_3+	)}}++happyReduce_45 = happySpecReduce_2  16# happyReduction_45+happyReduction_45 happy_x_2+	happy_x_1+	 =  case happyOut21 happy_x_2 of { happy_var_2 -> +	happyIn20+		 (reverse happy_var_2+	)}++happyReduce_46 = happySpecReduce_0  16# happyReduction_46+happyReduction_46  =  happyIn20+		 ([]+	)++happyReduce_47 = happySpecReduce_3  17# happyReduction_47+happyReduction_47 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut21 happy_x_1 of { happy_var_1 -> +	case happyOut22 happy_x_3 of { happy_var_3 -> +	happyIn21+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_48 = happySpecReduce_1  17# happyReduction_48+happyReduction_48 happy_x_1+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> +	happyIn21+		 ([happy_var_1]+	)}++happyReduce_49 = happySpecReduce_3  18# happyReduction_49+happyReduction_49 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut38 happy_x_1 of { happy_var_1 -> +	case happyOut102 happy_x_2 of { happy_var_2 -> +	case happyOut38 happy_x_3 of { happy_var_3 -> +	happyIn22+		 (Constr happy_var_2 [happy_var_1, happy_var_3] []+	)}}}++happyReduce_50 = happySpecReduce_1  18# happyReduction_50+happyReduction_50 happy_x_1+	 =  case happyOut38 happy_x_1 of { happy_var_1 -> +	happyIn22+		 (type2cons happy_var_1+	)}++happyReduce_51 = happySpecReduce_2  19# happyReduction_51+happyReduction_51 happy_x_2+	happy_x_1+	 =  case happyOut24 happy_x_2 of { happy_var_2 -> +	happyIn23+		 (happy_var_2+	)}++happyReduce_52 = happySpecReduce_0  19# happyReduction_52+happyReduction_52  =  happyIn23+		 ([]+	)++happyReduce_53 = happyReduce 4# 20# happyReduction_53+happyReduction_53 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut25 happy_x_3 of { happy_var_3 -> +	happyIn24+		 (reverse happy_var_3+	) `HappyStk` happyRest}++happyReduce_54 = happySpecReduce_3  20# happyReduction_54+happyReduction_54 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut25 happy_x_2 of { happy_var_2 -> +	happyIn24+		 (reverse happy_var_2+	)}++happyReduce_55 = happySpecReduce_1  21# happyReduction_55+happyReduction_55 happy_x_1+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> +	happyIn25+		 (happy_var_1+	)}++happyReduce_56 = happySpecReduce_0  21# happyReduction_56+happyReduction_56  =  happyIn25+		 ([]+	)++happyReduce_57 = happySpecReduce_3  22# happyReduction_57+happyReduction_57 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> +	case happyOut27 happy_x_3 of { happy_var_3 -> +	happyIn26+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_58 = happySpecReduce_1  22# happyReduction_58+happyReduction_58 happy_x_1+	 =  case happyOut27 happy_x_1 of { happy_var_1 -> +	happyIn26+		 ([happy_var_1]+	)}++happyReduce_59 = happySpecReduce_3  23# happyReduction_59+happyReduction_59 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	case happyOut38 happy_x_3 of { happy_var_3 -> +	happyIn27+		 (Sig (reverse happy_var_1) happy_var_3+	)}}++happyReduce_60 = happyReduce 4# 24# happyReduction_60+happyReduction_60 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut29 happy_x_3 of { happy_var_3 -> +	happyIn28+		 (reverse happy_var_3+	) `HappyStk` happyRest}++happyReduce_61 = happySpecReduce_3  24# happyReduction_61+happyReduction_61 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut29 happy_x_2 of { happy_var_2 -> +	happyIn28+		 (reverse happy_var_2+	)}++happyReduce_62 = happySpecReduce_3  25# happyReduction_62+happyReduction_62 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut29 happy_x_1 of { happy_var_1 -> +	case happyOut30 happy_x_3 of { happy_var_3 -> +	happyIn29+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_63 = happySpecReduce_1  25# happyReduction_63+happyReduction_63 happy_x_1+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> +	happyIn29+		 ([happy_var_1]+	)}++happyReduce_64 = happySpecReduce_3  26# happyReduction_64+happyReduction_64 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	case happyOut38 happy_x_3 of { happy_var_3 -> +	happyIn30+		 (BSig (reverse happy_var_1) happy_var_3+	)}}++happyReduce_65 = happySpecReduce_2  26# happyReduction_65+happyReduction_65 happy_x_2+	happy_x_1+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_2 of { happy_var_2 -> +	happyIn30+		 (BEqn happy_var_1 happy_var_2+	)}}++happyReduce_66 = happySpecReduce_3  27# happyReduction_66+happyReduction_66 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> +	case happyOut32 happy_x_3 of { happy_var_3 -> +	happyIn31+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_67 = happySpecReduce_1  27# happyReduction_67+happyReduction_67 happy_x_1+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> +	happyIn31+		 ([happy_var_1]+	)}++happyReduce_68 = happySpecReduce_3  28# happyReduction_68+happyReduction_68 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut92 happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_3 of { happy_var_3 -> +	happyIn32+		 (Field happy_var_1  happy_var_3+	)}}++happyReduce_69 = happySpecReduce_3  29# happyReduction_69+happyReduction_69 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	case happyOut92 happy_x_3 of { happy_var_3 -> +	happyIn33+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_70 = happySpecReduce_1  29# happyReduction_70+happyReduction_70 happy_x_1+	 =  case happyOut92 happy_x_1 of { happy_var_1 -> +	happyIn33+		 ([happy_var_1]+	)}++happyReduce_71 = happySpecReduce_1  30# happyReduction_71+happyReduction_71 happy_x_1+	 =  case happyOut84 happy_x_1 of { happy_var_1 -> +	happyIn34+		 (exp2lhs happy_var_1+	)}++happyReduce_72 = happySpecReduce_2  31# happyReduction_72+happyReduction_72 happy_x_2+	happy_x_1+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> +	happyIn35+		 (RExp happy_var_2+	)}++happyReduce_73 = happySpecReduce_1  31# happyReduction_73+happyReduction_73 happy_x_1+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> +	happyIn35+		 (RGrd (reverse happy_var_1)+	)}++happyReduce_74 = happySpecReduce_3  31# happyReduction_74+happyReduction_74 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut35 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn35+		 (RWhere happy_var_1 happy_var_3+	)}}++happyReduce_75 = happySpecReduce_2  32# happyReduction_75+happyReduction_75 happy_x_2+	happy_x_1+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> +	case happyOut37 happy_x_2 of { happy_var_2 -> +	happyIn36+		 (happy_var_2 : happy_var_1+	)}}++happyReduce_76 = happySpecReduce_1  32# happyReduction_76+happyReduction_76 happy_x_1+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> +	happyIn36+		 ([happy_var_1]+	)}++happyReduce_77 = happyReduce 4# 33# happyReduction_77+happyReduction_77 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut65 happy_x_2 of { happy_var_2 -> +	case happyOut49 happy_x_4 of { happy_var_4 -> +	happyIn37+		 (GExp (reverse happy_var_2) happy_var_4+	) `HappyStk` happyRest}}++happyReduce_78 = happySpecReduce_3  34# happyReduction_78+happyReduction_78 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut39 happy_x_1 of { happy_var_1 -> +	case happyOut45 happy_x_3 of { happy_var_3 -> +	happyIn38+		 (TQual happy_var_1 happy_var_3+	)}}++happyReduce_79 = happySpecReduce_1  34# happyReduction_79+happyReduction_79 happy_x_1+	 =  case happyOut39 happy_x_1 of { happy_var_1 -> +	happyIn38+		 (happy_var_1+	)}++happyReduce_80 = happySpecReduce_1  35# happyReduction_80+happyReduction_80 happy_x_1+	 =  case happyOut40 happy_x_1 of { happy_var_1 -> +	happyIn39+		 (tFun (reverse (tail happy_var_1)) (head happy_var_1)+	)}++happyReduce_81 = happySpecReduce_3  35# happyReduction_81+happyReduction_81 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	case happyOut41 happy_x_3 of { happy_var_3 -> +	happyIn39+		 (TSub happy_var_1 happy_var_3+	)}}++happyReduce_82 = happySpecReduce_3  36# happyReduction_82+happyReduction_82 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut40 happy_x_1 of { happy_var_1 -> +	case happyOut41 happy_x_3 of { happy_var_3 -> +	happyIn40+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_83 = happySpecReduce_1  36# happyReduction_83+happyReduction_83 happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	happyIn40+		 ([happy_var_1]+	)}++happyReduce_84 = happySpecReduce_2  37# happyReduction_84+happyReduction_84 happy_x_2+	happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_2 of { happy_var_2 -> +	happyIn41+		 (TAp happy_var_1 happy_var_2+	)}}++happyReduce_85 = happySpecReduce_1  37# happyReduction_85+happyReduction_85 happy_x_1+	 =  case happyOut42 happy_x_1 of { happy_var_1 -> +	happyIn41+		 (happy_var_1+	)}++happyReduce_86 = happySpecReduce_1  38# happyReduction_86+happyReduction_86 happy_x_1+	 =  case happyOut93 happy_x_1 of { happy_var_1 -> +	happyIn42+		 (TCon happy_var_1+	)}++happyReduce_87 = happySpecReduce_1  38# happyReduction_87+happyReduction_87 happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	happyIn42+		 (TVar happy_var_1+	)}++happyReduce_88 = happySpecReduce_1  38# happyReduction_88+happyReduction_88 happy_x_1+	 =  happyIn42+		 (TWild+	)++happyReduce_89 = happySpecReduce_2  38# happyReduction_89+happyReduction_89 happy_x_2+	happy_x_1+	 =  happyIn42+		 (TCon (prim LIST)+	)++happyReduce_90 = happySpecReduce_3  38# happyReduction_90+happyReduction_90 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut44 happy_x_2 of { happy_var_2 -> +	happyIn42+		 (TCon (tuple (happy_var_2+1))+	)}++happyReduce_91 = happySpecReduce_2  38# happyReduction_91+happyReduction_91 happy_x_2+	happy_x_1+	 =  happyIn42+		 (TCon (prim UNITTYPE)+	)++happyReduce_92 = happySpecReduce_3  38# happyReduction_92+happyReduction_92 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut38 happy_x_2 of { happy_var_2 -> +	happyIn42+		 (happy_var_2+	)}++happyReduce_93 = happySpecReduce_3  38# happyReduction_93+happyReduction_93 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut43 happy_x_2 of { happy_var_2 -> +	happyIn42+		 (TTup (reverse happy_var_2)+	)}++happyReduce_94 = happySpecReduce_3  38# happyReduction_94+happyReduction_94 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut38 happy_x_2 of { happy_var_2 -> +	happyIn42+		 (TList happy_var_2+	)}++happyReduce_95 = happySpecReduce_3  39# happyReduction_95+happyReduction_95 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut43 happy_x_1 of { happy_var_1 -> +	case happyOut39 happy_x_3 of { happy_var_3 -> +	happyIn43+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_96 = happySpecReduce_3  39# happyReduction_96+happyReduction_96 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut39 happy_x_1 of { happy_var_1 -> +	case happyOut39 happy_x_3 of { happy_var_3 -> +	happyIn43+		 ([happy_var_3, happy_var_1]+	)}}++happyReduce_97 = happySpecReduce_2  40# happyReduction_97+happyReduction_97 happy_x_2+	happy_x_1+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> +	happyIn44+		 (happy_var_1 + 1+	)}++happyReduce_98 = happySpecReduce_1  40# happyReduction_98+happyReduction_98 happy_x_1+	 =  happyIn44+		 (1+	)++happyReduce_99 = happySpecReduce_3  41# happyReduction_99+happyReduction_99 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut45 happy_x_1 of { happy_var_1 -> +	case happyOut46 happy_x_3 of { happy_var_3 -> +	happyIn45+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_100 = happySpecReduce_1  41# happyReduction_100+happyReduction_100 happy_x_1+	 =  case happyOut46 happy_x_1 of { happy_var_1 -> +	happyIn45+		 ([happy_var_1]+	)}++happyReduce_101 = happySpecReduce_1  42# happyReduction_101+happyReduction_101 happy_x_1+	 =  case happyOut39 happy_x_1 of { happy_var_1 -> +	happyIn46+		 (PType happy_var_1+	)}++happyReduce_102 = happySpecReduce_3  42# happyReduction_102+happyReduction_102 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	case happyOut47 happy_x_3 of { happy_var_3 -> +	happyIn46+		 (PKind happy_var_1 happy_var_3+	)}}++happyReduce_103 = happySpecReduce_3  43# happyReduction_103+happyReduction_103 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut48 happy_x_1 of { happy_var_1 -> +	case happyOut47 happy_x_3 of { happy_var_3 -> +	happyIn47+		 (KFun happy_var_1 happy_var_3+	)}}++happyReduce_104 = happySpecReduce_1  43# happyReduction_104+happyReduction_104 happy_x_1+	 =  case happyOut48 happy_x_1 of { happy_var_1 -> +	happyIn47+		 (happy_var_1+	)}++happyReduce_105 = happySpecReduce_1  44# happyReduction_105+happyReduction_105 happy_x_1+	 =  happyIn48+		 (Star+	)++happyReduce_106 = happySpecReduce_1  44# happyReduction_106+happyReduction_106 happy_x_1+	 =  happyIn48+		 (KWild+	)++happyReduce_107 = happySpecReduce_3  44# happyReduction_107+happyReduction_107 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut47 happy_x_2 of { happy_var_2 -> +	happyIn48+		 (happy_var_2+	)}++happyReduce_108 = happySpecReduce_3  45# happyReduction_108+happyReduction_108 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> +	case happyOut41 happy_x_3 of { happy_var_3 -> +	happyIn49+		 (ESig happy_var_1 happy_var_3+	)}}++happyReduce_109 = happySpecReduce_1  45# happyReduction_109+happyReduction_109 happy_x_1+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> +	happyIn49+		 (happy_var_1+	)}++happyReduce_110 = happySpecReduce_2  45# happyReduction_110+happyReduction_110 happy_x_2+	happy_x_1+	 =  case happyOut28 happy_x_2 of { happy_var_2 -> +	happyIn49+		 (EBStruct Nothing [] happy_var_2+	)}++happyReduce_111 = happySpecReduce_1  46# happyReduction_111+happyReduction_111 happy_x_1+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> +	happyIn50+		 (happy_var_1+	)}++happyReduce_112 = happySpecReduce_1  46# happyReduction_112+happyReduction_112 happy_x_1+	 =  case happyOut52 happy_x_1 of { happy_var_1 -> +	happyIn50+		 (happy_var_1+	)}++happyReduce_113 = happySpecReduce_1  47# happyReduction_113+happyReduction_113 happy_x_1+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> +	happyIn51+		 (transFix happy_var_1+	)}++happyReduce_114 = happySpecReduce_1  47# happyReduction_114+happyReduction_114 happy_x_1+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> +	happyIn51+		 (happy_var_1+	)}++happyReduce_115 = happySpecReduce_1  48# happyReduction_115+happyReduction_115 happy_x_1+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> +	happyIn52+		 (transFix happy_var_1+	)}++happyReduce_116 = happySpecReduce_1  48# happyReduction_116+happyReduction_116 happy_x_1+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> +	happyIn52+		 (happy_var_1+	)}++happyReduce_117 = happyReduce 4# 49# happyReduction_117+happyReduction_117 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut53 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut55 happy_x_4 of { happy_var_4 -> +	happyIn53+		 (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_118 = happySpecReduce_3  49# happyReduction_118+happyReduction_118 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut55 happy_x_3 of { happy_var_3 -> +	happyIn53+		 (Cons happy_var_1 happy_var_2 happy_var_3+	)}}}++happyReduce_119 = happySpecReduce_2  49# happyReduction_119+happyReduction_119 happy_x_2+	happy_x_1+	 =  case happyOut55 happy_x_2 of { happy_var_2 -> +	happyIn53+		 (Nil (ENeg happy_var_2)+	)}++happyReduce_120 = happyReduce 4# 49# happyReduction_120+happyReduction_120 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut55 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut55 happy_x_4 of { happy_var_4 -> +	happyIn53+		 (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_121 = happySpecReduce_3  49# happyReduction_121+happyReduction_121 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut55 happy_x_3 of { happy_var_3 -> +	happyIn53+		 (Cons (Nil happy_var_1) happy_var_2 happy_var_3+	)}}}++happyReduce_122 = happyReduce 4# 50# happyReduction_122+happyReduction_122 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut53 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut57 happy_x_4 of { happy_var_4 -> +	happyIn54+		 (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_123 = happySpecReduce_3  50# happyReduction_123+happyReduction_123 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut57 happy_x_3 of { happy_var_3 -> +	happyIn54+		 (Cons happy_var_1 happy_var_2 happy_var_3+	)}}}++happyReduce_124 = happySpecReduce_2  50# happyReduction_124+happyReduction_124 happy_x_2+	happy_x_1+	 =  case happyOut57 happy_x_2 of { happy_var_2 -> +	happyIn54+		 (Nil (ENeg happy_var_2)+	)}++happyReduce_125 = happyReduce 4# 50# happyReduction_125+happyReduction_125 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut55 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut57 happy_x_4 of { happy_var_4 -> +	happyIn54+		 (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_126 = happySpecReduce_3  50# happyReduction_126+happyReduction_126 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut57 happy_x_3 of { happy_var_3 -> +	happyIn54+		 (Cons (Nil happy_var_1) happy_var_2 happy_var_3+	)}}}++happyReduce_127 = happyReduce 4# 51# happyReduction_127+happyReduction_127 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut49 happy_x_2 of { happy_var_2 -> +	case happyOut67 happy_x_4 of { happy_var_4 -> +	happyIn55+		 (ECase happy_var_2 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_128 = happyReduce 4# 51# happyReduction_128+happyReduction_128 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut31 happy_x_3 of { happy_var_3 -> +	happyIn55+		 (ERec Nothing (reverse happy_var_3)+	) `HappyStk` happyRest}++happyReduce_129 = happySpecReduce_3  51# happyReduction_129+happyReduction_129 happy_x_3+	happy_x_2+	happy_x_1+	 =  happyIn55+		 (ERec Nothing []+	)++happyReduce_130 = happySpecReduce_1  51# happyReduction_130+happyReduction_130 happy_x_1+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> +	happyIn55+		 (happy_var_1+	)}++happyReduce_131 = happySpecReduce_3  52# happyReduction_131+happyReduction_131 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut79 happy_x_3 of { happy_var_3 -> +	happyIn56+		 (EDo Nothing Nothing happy_var_3+	)}++happyReduce_132 = happySpecReduce_3  52# happyReduction_132+happyReduction_132 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut79 happy_x_3 of { happy_var_3 -> +	happyIn56+		 (ETempl Nothing Nothing happy_var_3+	)}++happyReduce_133 = happySpecReduce_3  52# happyReduction_133+happyReduction_133 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut79 happy_x_3 of { happy_var_3 -> +	happyIn56+		 (EAct Nothing happy_var_3+	)}++happyReduce_134 = happySpecReduce_3  52# happyReduction_134+happyReduction_134 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut79 happy_x_3 of { happy_var_3 -> +	happyIn56+		 (EReq Nothing happy_var_3+	)}++happyReduce_135 = happyReduce 5# 52# happyReduction_135+happyReduction_135 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut93 happy_x_1 of { happy_var_1 -> +	case happyOut31 happy_x_4 of { happy_var_4 -> +	happyIn56+		 (ERec (Just (happy_var_1,True)) (reverse happy_var_4)+	) `HappyStk` happyRest}}++happyReduce_136 = happyReduce 6# 52# happyReduction_136+happyReduction_136 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut93 happy_x_1 of { happy_var_1 -> +	case happyOut31 happy_x_4 of { happy_var_4 -> +	happyIn56+		 (ERec (Just (happy_var_1,False)) (reverse happy_var_4)+	) `HappyStk` happyRest}}++happyReduce_137 = happyReduce 7# 52# happyReduction_137+happyReduction_137 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut93 happy_x_1 of { happy_var_1 -> +	case happyOut31 happy_x_4 of { happy_var_4 -> +	happyIn56+		 (ERec (Just (happy_var_1,False)) (reverse happy_var_4)+	) `HappyStk` happyRest}}++happyReduce_138 = happyReduce 5# 52# happyReduction_138+happyReduction_138 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut93 happy_x_1 of { happy_var_1 -> +	happyIn56+		 (ERec (Just (happy_var_1,False)) []+	) `HappyStk` happyRest}++happyReduce_139 = happyReduce 4# 52# happyReduction_139+happyReduction_139 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut93 happy_x_1 of { happy_var_1 -> +	happyIn56+		 (ERec (Just (happy_var_1,True)) []+	) `HappyStk` happyRest}++happyReduce_140 = happySpecReduce_1  52# happyReduction_140+happyReduction_140 happy_x_1+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> +	happyIn56+		 (happy_var_1+	)}++happyReduce_141 = happyReduce 6# 53# happyReduction_141+happyReduction_141 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut49 happy_x_2 of { happy_var_2 -> +	case happyOut49 happy_x_4 of { happy_var_4 -> +	case happyOut49 happy_x_6 of { happy_var_6 -> +	happyIn57+		 (EIf happy_var_2 happy_var_4 happy_var_6+	) `HappyStk` happyRest}}}++happyReduce_142 = happySpecReduce_1  53# happyReduction_142+happyReduction_142 happy_x_1+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> +	happyIn57+		 (happy_var_1+	)}++happyReduce_143 = happyReduce 4# 54# happyReduction_143+happyReduction_143 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut90 happy_x_2 of { happy_var_2 -> +	case happyOut49 happy_x_4 of { happy_var_4 -> +	happyIn58+		 (ELam (reverse happy_var_2) happy_var_4+	) `HappyStk` happyRest}}++happyReduce_144 = happyReduce 4# 54# happyReduction_144+happyReduction_144 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut28 happy_x_2 of { happy_var_2 -> +	case happyOut49 happy_x_4 of { happy_var_4 -> +	happyIn58+		 (ELet happy_var_2 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_145 = happySpecReduce_3  54# happyReduction_145+happyReduction_145 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut60 happy_x_2 of { happy_var_2 -> +	case happyOut49 happy_x_3 of { happy_var_3 -> +	happyIn58+		 (EAfter happy_var_2 happy_var_3+	)}}++happyReduce_146 = happySpecReduce_3  54# happyReduction_146+happyReduction_146 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut60 happy_x_2 of { happy_var_2 -> +	case happyOut49 happy_x_3 of { happy_var_3 -> +	happyIn58+		 (EBefore happy_var_2 happy_var_3+	)}}++happyReduce_147 = happySpecReduce_2  55# happyReduction_147+happyReduction_147 happy_x_2+	happy_x_1+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> +	case happyOut60 happy_x_2 of { happy_var_2 -> +	happyIn59+		 (EAp happy_var_1 happy_var_2+	)}}++happyReduce_148 = happySpecReduce_1  55# happyReduction_148+happyReduction_148 happy_x_1+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> +	happyIn59+		 (happy_var_1+	)}++happyReduce_149 = happySpecReduce_3  56# happyReduction_149+happyReduction_149 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> +	case happyOut92 happy_x_3 of { happy_var_3 -> +	happyIn60+		 (ESelect happy_var_1 happy_var_3+	)}}++happyReduce_150 = happySpecReduce_1  56# happyReduction_150+happyReduction_150 happy_x_1+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1+	)}++happyReduce_151 = happySpecReduce_1  57# happyReduction_151+happyReduction_151 happy_x_1+	 =  case happyOut92 happy_x_1 of { happy_var_1 -> +	happyIn61+		 (EVar happy_var_1+	)}++happyReduce_152 = happySpecReduce_1  57# happyReduction_152+happyReduction_152 happy_x_1+	 =  happyIn61+		 (EWild+	)++happyReduce_153 = happySpecReduce_1  57# happyReduction_153+happyReduction_153 happy_x_1+	 =  case happyOut93 happy_x_1 of { happy_var_1 -> +	happyIn61+		 (ECon happy_var_1+	)}++happyReduce_154 = happySpecReduce_1  57# happyReduction_154+happyReduction_154 happy_x_1+	 =  case happyOut62 happy_x_1 of { happy_var_1 -> +	happyIn61+		 (ELit happy_var_1+	)}++happyReduce_155 = happySpecReduce_2  57# happyReduction_155+happyReduction_155 happy_x_2+	happy_x_1+	 =  happyIn61+		 (ECon (prim UNITTERM)+	)++happyReduce_156 = happyReduce 4# 57# happyReduction_156+happyReduction_156 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut92 happy_x_3 of { happy_var_3 -> +	happyIn61+		 (ESel happy_var_3+	) `HappyStk` happyRest}++happyReduce_157 = happySpecReduce_3  57# happyReduction_157+happyReduction_157 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> +	happyIn61+		 (happy_var_2+	)}++happyReduce_158 = happySpecReduce_3  57# happyReduction_158+happyReduction_158 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut64 happy_x_2 of { happy_var_2 -> +	happyIn61+		 (ETup (reverse happy_var_2)+	)}++happyReduce_159 = happySpecReduce_3  57# happyReduction_159+happyReduction_159 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut63 happy_x_2 of { happy_var_2 -> +	happyIn61+		 (happy_var_2+	)}++happyReduce_160 = happyReduce 4# 57# happyReduction_160+happyReduction_160 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut55 happy_x_2 of { happy_var_2 -> +	case happyOut96 happy_x_3 of { happy_var_3 -> +	happyIn61+		 (ESectR happy_var_2 happy_var_3+	) `HappyStk` happyRest}}++happyReduce_161 = happyReduce 4# 57# happyReduction_161+happyReduction_161 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut98 happy_x_2 of { happy_var_2 -> +	case happyOut59 happy_x_3 of { happy_var_3 -> +	happyIn61+		 (ESectL happy_var_2 happy_var_3+	) `HappyStk` happyRest}}++happyReduce_162 = happySpecReduce_3  57# happyReduction_162+happyReduction_162 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut44 happy_x_2 of { happy_var_2 -> +	happyIn61+		 (ECon (tuple (happy_var_2+1))+	)}++happyReduce_163 = happySpecReduce_2  58# happyReduction_163+happyReduction_163 happy_x_2+	happy_x_1+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> +	case happyOutTok happy_x_2 of { (IntTok happy_var_2) -> +	happyIn62+		 (LInt (Just happy_var_1) (readInteger happy_var_2)+	)}}++happyReduce_164 = happySpecReduce_2  58# happyReduction_164+happyReduction_164 happy_x_2+	happy_x_1+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> +	case happyOutTok happy_x_2 of { (FloatTok happy_var_2) -> +	happyIn62+		 (LRat (Just happy_var_1) (readRational happy_var_2)+	)}}++happyReduce_165 = happySpecReduce_2  58# happyReduction_165+happyReduction_165 happy_x_2+	happy_x_1+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> +	case happyOutTok happy_x_2 of { (Character happy_var_2) -> +	happyIn62+		 (LChr (Just happy_var_1) happy_var_2+	)}}++happyReduce_166 = happySpecReduce_2  58# happyReduction_166+happyReduction_166 happy_x_2+	happy_x_1+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> +	case happyOutTok happy_x_2 of { (StringTok happy_var_2) -> +	happyIn62+		 (LStr (Just happy_var_1) happy_var_2+	)}}++happyReduce_167 = happySpecReduce_0  59# happyReduction_167+happyReduction_167  =  happyIn63+		 (EList []+	)++happyReduce_168 = happySpecReduce_1  59# happyReduction_168+happyReduction_168 happy_x_1+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> +	happyIn63+		 (EList [happy_var_1]+	)}++happyReduce_169 = happySpecReduce_1  59# happyReduction_169+happyReduction_169 happy_x_1+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> +	happyIn63+		 (EList (reverse happy_var_1)+	)}++happyReduce_170 = happySpecReduce_3  59# happyReduction_170+happyReduction_170 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_3 of { happy_var_3 -> +	happyIn63+		 (ESeq happy_var_1 Nothing happy_var_3+	)}}++happyReduce_171 = happyReduce 5# 59# happyReduction_171+happyReduction_171 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut49 happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_3 of { happy_var_3 -> +	case happyOut49 happy_x_5 of { happy_var_5 -> +	happyIn63+		 (ESeq happy_var_1 (Just happy_var_3) happy_var_5+	) `HappyStk` happyRest}}}++happyReduce_172 = happySpecReduce_3  59# happyReduction_172+happyReduction_172 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> +	case happyOut65 happy_x_3 of { happy_var_3 -> +	happyIn63+		 (EComp happy_var_1 (reverse happy_var_3)+	)}}++happyReduce_173 = happySpecReduce_3  60# happyReduction_173+happyReduction_173 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_3 of { happy_var_3 -> +	happyIn64+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_174 = happySpecReduce_3  60# happyReduction_174+happyReduction_174 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_3 of { happy_var_3 -> +	happyIn64+		 ([happy_var_3,happy_var_1]+	)}}++happyReduce_175 = happySpecReduce_3  61# happyReduction_175+happyReduction_175 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut65 happy_x_1 of { happy_var_1 -> +	case happyOut66 happy_x_3 of { happy_var_3 -> +	happyIn65+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_176 = happySpecReduce_1  61# happyReduction_176+happyReduction_176 happy_x_1+	 =  case happyOut66 happy_x_1 of { happy_var_1 -> +	happyIn65+		 ([happy_var_1]+	)}++happyReduce_177 = happySpecReduce_3  62# happyReduction_177+happyReduction_177 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut89 happy_x_1 of { happy_var_1 -> +	case happyOut84 happy_x_3 of { happy_var_3 -> +	happyIn66+		 (QGen happy_var_1 happy_var_3+	)}}++happyReduce_178 = happySpecReduce_1  62# happyReduction_178+happyReduction_178 happy_x_1+	 =  case happyOut84 happy_x_1 of { happy_var_1 -> +	happyIn66+		 (QExp happy_var_1+	)}++happyReduce_179 = happySpecReduce_2  62# happyReduction_179+happyReduction_179 happy_x_2+	happy_x_1+	 =  case happyOut28 happy_x_2 of { happy_var_2 -> +	happyIn66+		 (QLet happy_var_2+	)}++happyReduce_180 = happyReduce 4# 63# happyReduction_180+happyReduction_180 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut68 happy_x_3 of { happy_var_3 -> +	happyIn67+		 (reverse happy_var_3+	) `HappyStk` happyRest}++happyReduce_181 = happySpecReduce_3  63# happyReduction_181+happyReduction_181 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut68 happy_x_2 of { happy_var_2 -> +	happyIn67+		 (reverse happy_var_2+	)}++happyReduce_182 = happySpecReduce_3  64# happyReduction_182+happyReduction_182 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut68 happy_x_1 of { happy_var_1 -> +	case happyOut69 happy_x_3 of { happy_var_3 -> +	happyIn68+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_183 = happySpecReduce_1  64# happyReduction_183+happyReduction_183 happy_x_1+	 =  case happyOut69 happy_x_1 of { happy_var_1 -> +	happyIn68+		 ([happy_var_1]+	)}++happyReduce_184 = happySpecReduce_2  65# happyReduction_184+happyReduction_184 happy_x_2+	happy_x_1+	 =  case happyOut89 happy_x_1 of { happy_var_1 -> +	case happyOut70 happy_x_2 of { happy_var_2 -> +	happyIn69+		 (Alt happy_var_1 happy_var_2+	)}}++happyReduce_185 = happySpecReduce_2  66# happyReduction_185+happyReduction_185 happy_x_2+	happy_x_1+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> +	happyIn70+		 (RExp happy_var_2+	)}++happyReduce_186 = happySpecReduce_1  66# happyReduction_186+happyReduction_186 happy_x_1+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> +	happyIn70+		 (RGrd (reverse happy_var_1)+	)}++happyReduce_187 = happySpecReduce_3  66# happyReduction_187+happyReduction_187 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut70 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn70+		 (RWhere happy_var_1 happy_var_3+	)}}++happyReduce_188 = happySpecReduce_2  67# happyReduction_188+happyReduction_188 happy_x_2+	happy_x_1+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> +	case happyOut72 happy_x_2 of { happy_var_2 -> +	happyIn71+		 (happy_var_2 : happy_var_1+	)}}++happyReduce_189 = happySpecReduce_1  67# happyReduction_189+happyReduction_189 happy_x_1+	 =  case happyOut72 happy_x_1 of { happy_var_1 -> +	happyIn71+		 ([happy_var_1]+	)}++happyReduce_190 = happyReduce 4# 68# happyReduction_190+happyReduction_190 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut65 happy_x_2 of { happy_var_2 -> +	case happyOut49 happy_x_4 of { happy_var_4 -> +	happyIn72+		 (GExp (reverse happy_var_2) happy_var_4+	) `HappyStk` happyRest}}++happyReduce_191 = happyReduce 4# 69# happyReduction_191+happyReduction_191 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut74 happy_x_3 of { happy_var_3 -> +	happyIn73+		 (reverse happy_var_3+	) `HappyStk` happyRest}++happyReduce_192 = happySpecReduce_3  69# happyReduction_192+happyReduction_192 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut74 happy_x_2 of { happy_var_2 -> +	happyIn73+		 (reverse happy_var_2+	)}++happyReduce_193 = happySpecReduce_3  70# happyReduction_193+happyReduction_193 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut74 happy_x_1 of { happy_var_1 -> +	case happyOut75 happy_x_3 of { happy_var_3 -> +	happyIn74+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_194 = happySpecReduce_1  70# happyReduction_194+happyReduction_194 happy_x_1+	 =  case happyOut75 happy_x_1 of { happy_var_1 -> +	happyIn74+		 ([happy_var_1]+	)}++happyReduce_195 = happySpecReduce_2  71# happyReduction_195+happyReduction_195 happy_x_2+	happy_x_1+	 =  case happyOut89 happy_x_1 of { happy_var_1 -> +	case happyOut76 happy_x_2 of { happy_var_2 -> +	happyIn75+		 (Alt happy_var_1 happy_var_2+	)}}++happyReduce_196 = happySpecReduce_2  72# happyReduction_196+happyReduction_196 happy_x_2+	happy_x_1+	 =  case happyOut79 happy_x_2 of { happy_var_2 -> +	happyIn76+		 (RExp happy_var_2+	)}++happyReduce_197 = happySpecReduce_1  72# happyReduction_197+happyReduction_197 happy_x_1+	 =  case happyOut77 happy_x_1 of { happy_var_1 -> +	happyIn76+		 (RGrd (reverse happy_var_1)+	)}++happyReduce_198 = happySpecReduce_3  72# happyReduction_198+happyReduction_198 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn76+		 (RWhere happy_var_1 happy_var_3+	)}}++happyReduce_199 = happySpecReduce_2  73# happyReduction_199+happyReduction_199 happy_x_2+	happy_x_1+	 =  case happyOut77 happy_x_1 of { happy_var_1 -> +	case happyOut78 happy_x_2 of { happy_var_2 -> +	happyIn77+		 (happy_var_2 : happy_var_1+	)}}++happyReduce_200 = happySpecReduce_1  73# happyReduction_200+happyReduction_200 happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	happyIn77+		 ([happy_var_1]+	)}++happyReduce_201 = happyReduce 4# 74# happyReduction_201+happyReduction_201 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut65 happy_x_2 of { happy_var_2 -> +	case happyOut79 happy_x_4 of { happy_var_4 -> +	happyIn78+		 (GExp (reverse happy_var_2) happy_var_4+	) `HappyStk` happyRest}}++happyReduce_202 = happyReduce 4# 75# happyReduction_202+happyReduction_202 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut80 happy_x_3 of { happy_var_3 -> +	happyIn79+		 (reverse happy_var_3+	) `HappyStk` happyRest}++happyReduce_203 = happySpecReduce_3  75# happyReduction_203+happyReduction_203 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> +	happyIn79+		 (reverse happy_var_2+	)}++happyReduce_204 = happySpecReduce_1  76# happyReduction_204+happyReduction_204 happy_x_1+	 =  case happyOut81 happy_x_1 of { happy_var_1 -> +	happyIn80+		 (happy_var_1+	)}++happyReduce_205 = happySpecReduce_0  76# happyReduction_205+happyReduction_205  =  happyIn80+		 ([]+	)++happyReduce_206 = happySpecReduce_3  77# happyReduction_206+happyReduction_206 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut81 happy_x_1 of { happy_var_1 -> +	case happyOut82 happy_x_3 of { happy_var_3 -> +	happyIn81+		 (happy_var_3 : happy_var_1+	)}}++happyReduce_207 = happySpecReduce_1  77# happyReduction_207+happyReduction_207 happy_x_1+	 =  case happyOut82 happy_x_1 of { happy_var_1 -> +	happyIn81+		 ([happy_var_1]+	)}++happyReduce_208 = happySpecReduce_3  78# happyReduction_208+happyReduction_208 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut89 happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_3 of { happy_var_3 -> +	happyIn82+		 (SGen happy_var_1 happy_var_3+	)}}++happyReduce_209 = happySpecReduce_1  78# happyReduction_209+happyReduction_209 happy_x_1+	 =  case happyOut83 happy_x_1 of { happy_var_1 -> +	happyIn82+		 (SExp happy_var_1+	)}++happyReduce_210 = happySpecReduce_3  78# happyReduction_210+happyReduction_210 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	case happyOut38 happy_x_3 of { happy_var_3 -> +	happyIn82+		 (SBind [BSig happy_var_1 happy_var_3]+	)}}++happyReduce_211 = happySpecReduce_2  78# happyReduction_211+happyReduction_211 happy_x_2+	happy_x_1+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_2 of { happy_var_2 -> +	happyIn82+		 (SBind [BEqn happy_var_1 happy_var_2]+	)}}++happyReduce_212 = happyReduce 4# 78# happyReduction_212+happyReduction_212 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut34 happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_4 of { happy_var_4 -> +	happyIn82+		 (SBind [BEqn happy_var_1 (RExp (EAp (EVar (prim New)) happy_var_4))]+	) `HappyStk` happyRest}}++happyReduce_213 = happySpecReduce_3  78# happyReduction_213+happyReduction_213 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut89 happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_3 of { happy_var_3 -> +	happyIn82+		 (SAss happy_var_1 happy_var_3+	)}}++happyReduce_214 = happySpecReduce_2  78# happyReduction_214+happyReduction_214 happy_x_2+	happy_x_1+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> +	happyIn82+		 (SRet happy_var_2+	)}++happyReduce_215 = happyReduce 4# 78# happyReduction_215+happyReduction_215 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut65 happy_x_2 of { happy_var_2 -> +	case happyOut79 happy_x_4 of { happy_var_4 -> +	happyIn82+		 (SForall (reverse happy_var_2) happy_var_4+	) `HappyStk` happyRest}}++happyReduce_216 = happyReduce 4# 78# happyReduction_216+happyReduction_216 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut49 happy_x_2 of { happy_var_2 -> +	case happyOut79 happy_x_4 of { happy_var_4 -> +	happyIn82+		 (SIf happy_var_2 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_217 = happyReduce 4# 78# happyReduction_217+happyReduction_217 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut49 happy_x_2 of { happy_var_2 -> +	case happyOut79 happy_x_4 of { happy_var_4 -> +	happyIn82+		 (SElsif happy_var_2 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_218 = happySpecReduce_2  78# happyReduction_218+happyReduction_218 happy_x_2+	happy_x_1+	 =  case happyOut79 happy_x_2 of { happy_var_2 -> +	happyIn82+		 (SElse happy_var_2+	)}++happyReduce_219 = happyReduce 4# 78# happyReduction_219+happyReduction_219 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut49 happy_x_2 of { happy_var_2 -> +	case happyOut73 happy_x_4 of { happy_var_4 -> +	happyIn82+		 (SCase happy_var_2 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_220 = happySpecReduce_1  79# happyReduction_220+happyReduction_220 happy_x_1+	 =  case happyOut84 happy_x_1 of { happy_var_1 -> +	happyIn83+		 (happy_var_1+	)}++happyReduce_221 = happySpecReduce_1  80# happyReduction_221+happyReduction_221 happy_x_1+	 =  case happyOut85 happy_x_1 of { happy_var_1 -> +	happyIn84+		 (happy_var_1+	)}++happyReduce_222 = happySpecReduce_1  80# happyReduction_222+happyReduction_222 happy_x_1+	 =  case happyOut86 happy_x_1 of { happy_var_1 -> +	happyIn84+		 (happy_var_1+	)}++happyReduce_223 = happySpecReduce_1  81# happyReduction_223+happyReduction_223 happy_x_1+	 =  case happyOut87 happy_x_1 of { happy_var_1 -> +	happyIn85+		 (transFix happy_var_1+	)}++happyReduce_224 = happySpecReduce_1  81# happyReduction_224+happyReduction_224 happy_x_1+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> +	happyIn85+		 (happy_var_1+	)}++happyReduce_225 = happySpecReduce_1  82# happyReduction_225+happyReduction_225 happy_x_1+	 =  case happyOut88 happy_x_1 of { happy_var_1 -> +	happyIn86+		 (transFix happy_var_1+	)}++happyReduce_226 = happySpecReduce_1  82# happyReduction_226+happyReduction_226 happy_x_1+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> +	happyIn86+		 (happy_var_1+	)}++happyReduce_227 = happyReduce 4# 83# happyReduction_227+happyReduction_227 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut87 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut56 happy_x_4 of { happy_var_4 -> +	happyIn87+		 (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_228 = happySpecReduce_3  83# happyReduction_228+happyReduction_228 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut87 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut56 happy_x_3 of { happy_var_3 -> +	happyIn87+		 (Cons happy_var_1 happy_var_2 happy_var_3+	)}}}++happyReduce_229 = happySpecReduce_2  83# happyReduction_229+happyReduction_229 happy_x_2+	happy_x_1+	 =  case happyOut56 happy_x_2 of { happy_var_2 -> +	happyIn87+		 (Nil (ENeg happy_var_2)+	)}++happyReduce_230 = happyReduce 4# 83# happyReduction_230+happyReduction_230 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut56 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut56 happy_x_4 of { happy_var_4 -> +	happyIn87+		 (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_231 = happySpecReduce_3  83# happyReduction_231+happyReduction_231 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut56 happy_x_3 of { happy_var_3 -> +	happyIn87+		 (Cons (Nil happy_var_1) happy_var_2 happy_var_3+	)}}}++happyReduce_232 = happyReduce 4# 84# happyReduction_232+happyReduction_232 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut87 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut58 happy_x_4 of { happy_var_4 -> +	happyIn88+		 (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_233 = happySpecReduce_3  84# happyReduction_233+happyReduction_233 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut87 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut58 happy_x_3 of { happy_var_3 -> +	happyIn88+		 (Cons happy_var_1 happy_var_2 happy_var_3+	)}}}++happyReduce_234 = happySpecReduce_2  84# happyReduction_234+happyReduction_234 happy_x_2+	happy_x_1+	 =  case happyOut58 happy_x_2 of { happy_var_2 -> +	happyIn88+		 (Nil (ENeg happy_var_2)+	)}++happyReduce_235 = happyReduce 4# 84# happyReduction_235+happyReduction_235 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut56 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut58 happy_x_4 of { happy_var_4 -> +	happyIn88+		 (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_236 = happySpecReduce_3  84# happyReduction_236+happyReduction_236 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> +	case happyOut96 happy_x_2 of { happy_var_2 -> +	case happyOut58 happy_x_3 of { happy_var_3 -> +	happyIn88+		 (Cons (Nil happy_var_1) happy_var_2 happy_var_3+	)}}}++happyReduce_237 = happySpecReduce_1  85# happyReduction_237+happyReduction_237 happy_x_1+	 =  case happyOut84 happy_x_1 of { happy_var_1 -> +	happyIn89+		 (happy_var_1+	)}++happyReduce_238 = happySpecReduce_2  86# happyReduction_238+happyReduction_238 happy_x_2+	happy_x_1+	 =  case happyOut90 happy_x_1 of { happy_var_1 -> +	case happyOut91 happy_x_2 of { happy_var_2 -> +	happyIn90+		 (happy_var_2 : happy_var_1+	)}}++happyReduce_239 = happySpecReduce_1  86# happyReduction_239+happyReduction_239 happy_x_1+	 =  case happyOut91 happy_x_1 of { happy_var_1 -> +	happyIn90+		 ([happy_var_1]+	)}++happyReduce_240 = happySpecReduce_1  87# happyReduction_240+happyReduction_240 happy_x_1+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> +	happyIn91+		 (happy_var_1+	)}++happyReduce_241 = happySpecReduce_1  88# happyReduction_241+happyReduction_241 happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	happyIn92+		 (happy_var_1+	)}++happyReduce_242 = happySpecReduce_3  88# happyReduction_242+happyReduction_242 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut101 happy_x_2 of { happy_var_2 -> +	happyIn92+		 (happy_var_2+	)}++happyReduce_243 = happySpecReduce_1  89# happyReduction_243+happyReduction_243 happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	happyIn93+		 (happy_var_1+	)}++happyReduce_244 = happySpecReduce_3  89# happyReduction_244+happyReduction_244 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut102 happy_x_2 of { happy_var_2 -> +	happyIn93+		 (happy_var_2+	)}++happyReduce_245 = happySpecReduce_1  90# happyReduction_245+happyReduction_245 happy_x_1+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> +	happyIn94+		 (happy_var_1+	)}++happyReduce_246 = happySpecReduce_3  90# happyReduction_246+happyReduction_246 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut99 happy_x_2 of { happy_var_2 -> +	happyIn94+		 (happy_var_2+	)}++happyReduce_247 = happySpecReduce_1  91# happyReduction_247+happyReduction_247 happy_x_1+	 =  case happyOut102 happy_x_1 of { happy_var_1 -> +	happyIn95+		 (happy_var_1+	)}++happyReduce_248 = happySpecReduce_3  91# happyReduction_248+happyReduction_248 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut100 happy_x_2 of { happy_var_2 -> +	happyIn95+		 (happy_var_2+	)}++happyReduce_249 = happySpecReduce_1  92# happyReduction_249+happyReduction_249 happy_x_1+	 =  case happyOut94 happy_x_1 of { happy_var_1 -> +	happyIn96+		 (happy_var_1+	)}++happyReduce_250 = happySpecReduce_1  92# happyReduction_250+happyReduction_250 happy_x_1+	 =  case happyOut95 happy_x_1 of { happy_var_1 -> +	happyIn96+		 (happy_var_1+	)}++happyReduce_251 = happySpecReduce_1  93# happyReduction_251+happyReduction_251 happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	happyIn97+		 (happy_var_1+	)}++happyReduce_252 = happySpecReduce_1  93# happyReduction_252+happyReduction_252 happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	happyIn97+		 (happy_var_1+	)}++happyReduce_253 = happyMonadReduce 1# 94# happyReduction_253+happyReduction_253 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOut104 happy_x_1 of { happy_var_1 -> +	( do l <- getSrcLoc; return (name l happy_var_1))}+	) (\r -> happyReturn (happyIn98 r))++happyReduce_254 = happySpecReduce_3  94# happyReduction_254+happyReduction_254 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut99 happy_x_2 of { happy_var_2 -> +	happyIn98+		 (happy_var_2+	)}++happyReduce_255 = happySpecReduce_1  94# happyReduction_255+happyReduction_255 happy_x_1+	 =  case happyOut95 happy_x_1 of { happy_var_1 -> +	happyIn98+		 (happy_var_1+	)}++happyReduce_256 = happySpecReduce_2  95# happyReduction_256+happyReduction_256 happy_x_2+	happy_x_1+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> +	case happyOutTok happy_x_2 of { (VarId happy_var_2) -> +	happyIn99+		 (name happy_var_1 happy_var_2+	)}}++happyReduce_257 = happySpecReduce_2  96# happyReduction_257+happyReduction_257 happy_x_2+	happy_x_1+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> +	case happyOutTok happy_x_2 of { (ConId happy_var_2) -> +	happyIn100+		 (name happy_var_1 happy_var_2+	)}}++happyReduce_258 = happyMonadReduce 1# 97# happyReduction_258+happyReduction_258 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOut103 happy_x_1 of { happy_var_1 -> +	( do l <- getSrcLoc; return (name l happy_var_1))}+	) (\r -> happyReturn (happyIn101 r))++happyReduce_259 = happySpecReduce_2  98# happyReduction_259+happyReduction_259 happy_x_2+	happy_x_1+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> +	case happyOutTok happy_x_2 of { (ConSym happy_var_2) -> +	happyIn102+		 (name happy_var_1 happy_var_2+	)}}++happyReduce_260 = happySpecReduce_1  99# happyReduction_260+happyReduction_260 happy_x_1+	 =  case happyOut104 happy_x_1 of { happy_var_1 -> +	happyIn103+		 (happy_var_1+	)}++happyReduce_261 = happySpecReduce_1  99# happyReduction_261+happyReduction_261 happy_x_1+	 =  happyIn103+		 (("","-")+	)++happyReduce_262 = happySpecReduce_1  100# happyReduction_262+happyReduction_262 happy_x_1+	 =  case happyOutTok happy_x_1 of { (VarSym happy_var_1) -> +	happyIn104+		 (happy_var_1+	)}++happyReduce_263 = happySpecReduce_1  100# happyReduction_263+happyReduction_263 happy_x_1+	 =  happyIn104+		 (("","<")+	)++happyReduce_264 = happySpecReduce_1  100# happyReduction_264+happyReduction_264 happy_x_1+	 =  happyIn104+		 (("",">")+	)++happyReduce_265 = happySpecReduce_1  100# happyReduction_265+happyReduction_265 happy_x_1+	 =  happyIn104+		 (("","*")+	)++happyReduce_266 = happySpecReduce_1  100# happyReduction_266+happyReduction_266 happy_x_1+	 =  happyIn104+		 (("","\\\\")+	)++happyReduce_267 = happySpecReduce_1  101# happyReduction_267+happyReduction_267 happy_x_1+	 =  happyIn105+		 (()+	)++happyReduce_268 = happyMonadReduce 1# 101# happyReduction_268+happyReduction_268 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (( popContext)+	) (\r -> happyReturn (happyIn105 r))++happyReduce_269 = happyMonadReduce 0# 102# happyReduction_269+happyReduction_269 (happyRest) tk+	 = happyThen (( pushContext NoLayout)+	) (\r -> happyReturn (happyIn106 r))++happyReduce_270 = happyMonadReduce 0# 103# happyReduction_270+happyReduction_270 (happyRest) tk+	 = happyThen (( do { (r,c) <- getSrcLoc ;+                                                        pushContext (Layout c)+                                                      })+	) (\r -> happyReturn (happyIn107 r))++happyReduce_271 = happyMonadReduce 0# 104# happyReduction_271+happyReduction_271 (happyRest) tk+	 = happyThen (( getSrcLoc)+	) (\r -> happyReturn (happyIn108 r))++happyNewToken action sts stk+	= lexer(\tk -> +	let cont i = happyDoAction i tk action sts stk in+	case tk of {+	EOF -> happyDoAction 62# tk action sts stk;+	VarId happy_dollar_dollar -> cont 1#;+	ConId happy_dollar_dollar -> cont 2#;+	VarSym ("","-") -> cont 3#;+	VarSym ("","<") -> cont 4#;+	VarSym ("",">") -> cont 5#;+	VarSym ("","*") -> cont 6#;+	VarSym happy_dollar_dollar -> cont 7#;+	ConSym happy_dollar_dollar -> cont 8#;+	IntTok happy_dollar_dollar -> cont 9#;+	FloatTok happy_dollar_dollar -> cont 10#;+	Character happy_dollar_dollar -> cont 11#;+	StringTok happy_dollar_dollar -> cont 12#;+	LeftParen -> cont 13#;+	RightParen -> cont 14#;+	SemiColon -> cont 15#;+	LeftCurly -> cont 16#;+	RightCurly -> cont 17#;+	VRightCurly -> cont 18#;+	LeftSquare -> cont 19#;+	RightSquare -> cont 20#;+	Comma -> cont 21#;+	BackQuote -> cont 22#;+	Wildcard -> cont 23#;+	Dot -> cont 24#;+	DotDot -> cont 25#;+	DoubleColon -> cont 26#;+	Assign -> cont 27#;+	Equals -> cont 28#;+	Backslash -> cont 29#;+	Bar -> cont 30#;+	LeftArrow -> cont 31#;+	RightArrow -> cont 32#;+	Backslash2 -> cont 33#;+	KW_Action -> cont 34#;+	KW_After -> cont 35#;+	KW_Before -> cont 36#;+	KW_Case -> cont 37#;+	KW_Class -> cont 38#;+	KW_Data -> cont 39#;+	KW_Default -> cont 40#;+	KW_Do -> cont 41#;+	KW_Else -> cont 42#;+	KW_Elsif -> cont 43#;+	KW_Forall -> cont 44#;+	KW_If -> cont 45#;+	KW_Import -> cont 46#;+	KW_Instance -> cont 47#;+	KW_In -> cont 48#;+	KW_Let -> cont 49#;+	KW_Module -> cont 50#;+	KW_New -> cont 51#;+	KW_Of -> cont 52#;+	KW_Private -> cont 53#;+	KW_Request -> cont 54#;+	KW_Result -> cont 55#;+	KW_Struct -> cont 56#;+	KW_Then -> cont 57#;+	KW_Type -> cont 58#;+	KW_Typeclass -> cont 59#;+	KW_Use -> cont 60#;+	KW_Where -> cont 61#;+	_ -> happyError' tk+	})++happyError_ tk = happyError' tk++happyThen :: () => PM a -> (a -> PM b) -> PM b+happyThen = (thenPM)+happyReturn :: () => a -> PM a+happyReturn = (returnPM)+happyThen1 = happyThen+happyReturn1 :: () => a -> PM a+happyReturn1 = happyReturn+happyError' :: () => (Token) -> PM a+happyError' tk = (\token -> happyError) tk++parse = happySomeParser where+  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut4 x))++happySeq = happyDontSeq+++parser     :: String -> M s Module+parser str = runPM2 parse str++happyError = parseError "parse error"+{-# LINE 1 "templates/GenericTemplate.hs" #-}+{-# LINE 1 "templates/GenericTemplate.hs" #-}+{-# LINE 1 "<built-in>" #-}+{-# LINE 1 "<command line>" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-} -- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp  
examples/Makefile view
@@ -1,14 +1,13 @@-LOCALCOMP = ../dist/build/timberc/timberc --datadir .. TIMBERC=timberc -EXAMPLES = Echo Echo2 Echo3 EchoServer EchoServer2 MasterMind Primes Reflex TCPClient PingTimeServers+EXAMPLES = Echo Echo2 Echo3 EchoServer EchoServer2 MasterMind Primes Reflex TCPClient PingTimeServers SantaProblem2  examples:  	@for ex in $(EXAMPLES); do \ 		$(TIMBERC) --make  $$ex; \ 	done -local:+local:  	@for ex in $(EXAMPLES); do \-		$(LOCALCOMP) --make  $$ex; \+		../timberc --make  $$ex; \ 	done
include/arrays.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. //  // Redistribution and use in source and binary forms, with or without
include/float.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. //  // Redistribution and use in source and binary forms, with or without
include/timber.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. //  // Redistribution and use in source and binary forms, with or without@@ -73,6 +73,10 @@         HEAD(TUP4),      OFF(TUP4, a),                                                  0,0,0,0,         HEAD(TUP4),                                                                     0,0,0,0,0         };++WORD __GC__CLOS1[] = {WORDS(sizeof(struct CLOS1)),0,0};+WORD __GC__CLOS2[] = {WORDS(sizeof(struct CLOS2)),0,0};+WORD __GC__CLOS3[] = {WORDS(sizeof(struct CLOS3)),0,0};  WORD __GC__CONS[]       = {         HEAD(CONS),     OFF(CONS, a),   OFF(CONS, b),   0,
include/timber.h view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. //  // Redistribution and use in source and binary forms, with or without@@ -41,6 +41,12 @@ typedef struct TUP3 *TUP3; struct TUP4; typedef struct TUP4 *TUP4;+struct CLOS1;+typedef struct CLOS1 *CLOS1;+struct CLOS2;+typedef struct CLOS2 *CLOS2;+struct CLOS3;+typedef struct CLOS3 *CLOS3; struct LIST; typedef struct LIST *LIST; struct NIL;@@ -81,6 +87,24 @@ }; extern WORD __GC__TUP4[]; +struct CLOS1 {+    POLY GCINFO;+    POLY (*Code) (CLOS1, POLY);+};+extern WORD __GC__CLOS1[];++struct CLOS2 {+    POLY GCINFO;+    POLY (*Code) (CLOS2, POLY, POLY);+};+extern WORD __GC__CLOS2[];+ +struct CLOS3 {+    POLY GCINFO;+    POLY (*Code) (CLOS3, POLY, POLY, POLY);+};+extern WORD __GC__CLOS3[];+ struct LIST {     WORD *GCINFO; };@@ -146,8 +170,8 @@   UNITTYPE ASYNC(Msg, Time, Time);-PID      LOCK(PID);-UNITTYPE UNLOCK(PID);+OID      LOCK(OID);+UNITTYPE UNLOCK(OID); void     RAISE(Int);  POLY     Raise(BITS32, Int);
+ lib/ARM.t view
@@ -0,0 +1,26 @@+module ARM where++type RootType = Env -> TFT -> Class Prog++type Prog = Action++type Addr = Int++struct Env where+    debug       :: String -> Request ()+    portwrite   :: Addr -> BITS32 -> Request ()+    portset     :: Addr -> BITS32 -> Request ()+    portclear   :: Addr -> BITS32 -> Request ()+    portread    :: Addr -> Request BITS32+    install     :: Int -> Cmd () a -> Request () +    netmemread  :: Addr -> Int -> Request (Array BITS32)+    netmemwrite :: Array BITS32 -> Addr -> Int -> Request ()++struct TFT where+    drawchar    :: Char -> Int{-x-} -> Int{-y-} -> Request Int+    drawbox     :: Int{-color-} -> Int{-x-} -> Int{-y-} -> Int{-w-} -> Int{-h-} -> Request ()+    xsize       :: Int+    ysize       :: Int+    charwidth   :: Int+    charheight  :: Int+
lib/BitOps.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
lib/Data.Functional.List.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
lib/Data.Objects.Dictionary.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -67,7 +67,7 @@               Int -> Class (Dictionary a b)   hashDict hash dictC n = class -     ds = new seqC dictC n+     ds = new mapM (\_ ->  dictC) [1..n]      dict = array ds         insert a b = (dict!(hash a n)).insert a b@@ -96,9 +96,3 @@           | a == x             = Just y           | a < x              = look a l           | a > x              = look a r--  seqC c 0       = class result []-  seqC c n       = class-                     x  = new c-                     xs = new seqC c (n-1)-                     result (x:xs)
lib/Data.Objects.Stack.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
lib/POSIX.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
lib/Prelude.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -87,7 +87,7 @@   (==) = primTimeEQ   (/=) = primTimeNE -instance eqPID :: Eq PID where+instance eqOID :: Eq OID where   (==) = primPidEQ   (/=) = primPidNE @@ -248,10 +248,11 @@  typeclass Applicative m < Functor m where   ($*)   :: m (a -> b) -> m a -> m b-  return :: a -> m a+  pure   :: a -> m a -typeclass Monad m < Applicative m where+typeclass Monad m where   (>>=)  :: m a -> (a -> m b) -> m b+  return :: a -> m a  typeclass MPlus m where   mempty :: m a@@ -261,15 +262,17 @@   f $^ Nothing = Nothing   f $^ Just a  = Just (f a) -instance applicativeMaybe :: Applicative Maybe = Applicative {..}-  where Functor {..} = functorMaybe-        Just f $* Just a = Just (f a)-        _      $* _      = Nothing+instance applicativeMaybe :: Applicative Maybe where+--    Functor {..} = functorMaybe+    ($^) = functorMaybe.($^)+    Just f $* Just a = Just (f a)+    _      $* _      = Nothing+    pure a = Just a -instance monadMaybe :: Monad Maybe = Monad {..}-  where Applicative {..} = applicativeMaybe-        Just a  >>= f = f a-        Nothing >>= _ = Nothing+instance monadMaybe :: Monad Maybe where+    Just a  >>= f = f a+    Nothing >>= _ = Nothing+    return a = Just a  instance mPlusMaybe :: MPlus Maybe where   mempty = Nothing@@ -286,6 +289,23 @@ join :: m (m a) -> m a \\ Monad m join m = m >>= id +sequence []         = return []+sequence (x : xs)   = x >>= \y -> sequence xs >>= \ys -> return (y:ys)++mapM f []           = return []+mapM f (x : xs)     = f x >>= \y -> mapM f xs >>= \ys -> return (y:ys)++instance monadCmd :: Monad (Cmd s) where+    return a = do result a+    a >>= b  = do x <- a+                  b x++instance monadClass :: Monad Class where+    return a = class result a+    a >>= b  = class x = new a+                     y = new b x+                     result y+ -- Prelude support for forall statement --------------------  forallList f []       = do result ()@@ -332,7 +352,7 @@  -- Maybe --------------------------------------------------- -data Maybe a = Just a | Nothing+data Maybe a = Nothing | Just a  isNothing          :: Maybe a -> Bool isNothing Nothing   = True@@ -342,6 +362,10 @@ isJust Nothing      = False isJust (Just _)     = True +fromJust            :: Maybe a -> a+fromJust Nothing    = raise 2+fromJust (Just a)   = a+ -- Either --------------------------------------------------  isLeft (Left _)     = True@@ -432,7 +456,7 @@  replicate :: Int -> a -> [a] replicate n x-  | n < 0          = []+  | n <= 0          = []   | otherwise       = x : replicate (n-1) x  take, drop          :: Int -> [a] -> [a]@@ -538,16 +562,4 @@ floor               = primFloatToInt  round x             = floor (x + 0.5)---- Command sequencing ----------------------------------------sequence []         = do result []-sequence (x : xs)   = do a  <- x-                         as <- sequence xs-                         result a : as--mapM f []           = do result []-mapM f (x : xs)     = do a <- f x-                         as <- mapM f xs-                         result a : as 
lib/RandomGenerator.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
rtsPOSIX/Makefile.in view
@@ -22,7 +22,7 @@ $(OBJS): %.o: ../lib/%.t ../include/timber.h 	$(TIMBERC) --target POSIX --api -c $< -rts.o: rts.c cyclic.c gc.c env.c env.h timer.c rts.h ../include/timber.h ../include/timber.c ../include/float.c+rts.o: rts.c cyclic.c gc.c env.c timer.c rts.h ../include/timber.h ../include/timber.c ../include/float.c 	$(CC) $(CFLAGS) -Wall -O2 -fno-strict-aliasing -g -I../include -I../lib -I. -c rts.c  install: @@ -34,9 +34,7 @@ 	$(INSTALL) config.h $(DESTDIR)$(prefix)/rtsPOSIX 	$(INSTALL) gc.c $(DESTDIR)$(prefix)/rtsPOSIX 	$(INSTALL) env.c $(DESTDIR)$(prefix)/rtsPOSIX-	$(INSTALL) env.h $(DESTDIR)$(prefix)/rtsPOSIX 	$(INSTALL) timer.c $(DESTDIR)$(prefix)/rtsPOSIX 	$(INSTALL) main.c $(DESTDIR)$(prefix)/rtsPOSIX 	$(INSTALL) Makefile $(DESTDIR)$(prefix)/rtsPOSIX-	cd $(DESTDIR)$(prefix)/rtsPOSIX && make $(DEST) -+	cd $(DESTDIR)$(prefix)/rtsPOSIX && make TIMBERC=$(TIMBERC) $(DEST) 
rtsPOSIX/config.h.in view
@@ -1,6 +1,9 @@ /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY +/* Define to 1 if you have the `sysconf' function. */+#undef HAVE_SYSCONF+ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H 
rtsPOSIX/configure view
@@ -1,6122 +1,6412 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles.-# Generated by GNU Autoconf 2.61 for rtsPOSIX 0.9.9.-#-# Report bugs to <nordland@csee.ltu.se>.-#-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.-# This configure script is free software; the Free Software Foundation-# gives unlimited permission to copy, distribute and modify it.-## --------------------- ##-## M4sh Initialization.  ##-## --------------------- ##--# Be more Bourne compatible-DUALCASE=1; export DUALCASE # for MKS sh-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then-  emulate sh-  NULLCMD=:-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which-  # is contrary to our usage.  Disable this feature.-  alias -g '${1+"$@"}'='"$@"'-  setopt NO_GLOB_SUBST-else-  case `(set -o) 2>/dev/null` in-  *posix*) set -o posix ;;-esac--fi-----# PATH needs CR-# Avoid depending upon Character Ranges.-as_cr_letters='abcdefghijklmnopqrstuvwxyz'-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'-as_cr_Letters=$as_cr_letters$as_cr_LETTERS-as_cr_digits='0123456789'-as_cr_alnum=$as_cr_Letters$as_cr_digits--# The user is always right.-if test "${PATH_SEPARATOR+set}" != set; then-  echo "#! /bin/sh" >conf$$.sh-  echo  "exit 0"   >>conf$$.sh-  chmod +x conf$$.sh-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then-    PATH_SEPARATOR=';'-  else-    PATH_SEPARATOR=:-  fi-  rm -f conf$$.sh-fi--# Support unset when possible.-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then-  as_unset=unset-else-  as_unset=false-fi---# IFS-# We need space, tab and new line, in precisely that order.  Quoting is-# there to prevent editors from complaining about space-tab.-# (If _AS_PATH_WALK were called with IFS unset, it would disable word-# splitting by setting IFS to empty value.)-as_nl='-'-IFS=" ""	$as_nl"--# Find who we are.  Look in the path if we contain no directory separator.-case $0 in-  *[\\/]* ) as_myself=$0 ;;-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break-done-IFS=$as_save_IFS--     ;;-esac-# We did not find ourselves, most probably we were run as `sh COMMAND'-# in which case we are not to be found in the path.-if test "x$as_myself" = x; then-  as_myself=$0-fi-if test ! -f "$as_myself"; then-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2-  { (exit 1); exit 1; }-fi--# Work around bugs in pre-3.0 UWIN ksh.-for as_var in ENV MAIL MAILPATH-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var-done-PS1='$ '-PS2='> '-PS4='+ '--# NLS nuisances.-for as_var in \-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \-  LC_TELEPHONE LC_TIME-do-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then-    eval $as_var=C; export $as_var-  else-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var-  fi-done--# Required to use basename.-if expr a : '\(a\)' >/dev/null 2>&1 &&-   test "X`expr 00001 : '.*\(...\)'`" = X001; then-  as_expr=expr-else-  as_expr=false-fi--if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then-  as_basename=basename-else-  as_basename=false-fi---# Name of the executable.-as_me=`$as_basename -- "$0" ||-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \-	 X"$0" : 'X\(//\)$' \| \-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||-echo X/"$0" |-    sed '/^.*\/\([^/][^/]*\)\/*$/{-	    s//\1/-	    q-	  }-	  /^X\/\(\/\/\)$/{-	    s//\1/-	    q-	  }-	  /^X\/\(\/\).*/{-	    s//\1/-	    q-	  }-	  s/.*/./; q'`--# CDPATH.-$as_unset CDPATH---if test "x$CONFIG_SHELL" = x; then-  if (eval ":") 2>/dev/null; then-  as_have_required=yes-else-  as_have_required=no-fi--  if test $as_have_required = yes && 	 (eval ":-(as_func_return () {-  (exit \$1)-}-as_func_success () {-  as_func_return 0-}-as_func_failure () {-  as_func_return 1-}-as_func_ret_success () {-  return 0-}-as_func_ret_failure () {-  return 1-}--exitcode=0-if as_func_success; then-  :-else-  exitcode=1-  echo as_func_success failed.-fi--if as_func_failure; then-  exitcode=1-  echo as_func_failure succeeded.-fi--if as_func_ret_success; then-  :-else-  exitcode=1-  echo as_func_ret_success failed.-fi--if as_func_ret_failure; then-  exitcode=1-  echo as_func_ret_failure succeeded.-fi--if ( set x; as_func_ret_success y && test x = \"\$1\" ); then-  :-else-  exitcode=1-  echo positional parameters were not saved.-fi--test \$exitcode = 0) || { (exit 1); exit 1; }--(-  as_lineno_1=\$LINENO-  as_lineno_2=\$LINENO-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }-") 2> /dev/null; then-  :-else-  as_candidate_shells=-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  case $as_dir in-	 /*)-	   for as_base in sh bash ksh sh5; do-	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"-	   done;;-       esac-done-IFS=$as_save_IFS---      for as_shell in $as_candidate_shells $SHELL; do-	 # Try only shells that exist, to save several forks.-	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&-		{ ("$as_shell") 2> /dev/null <<\_ASEOF-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then-  emulate sh-  NULLCMD=:-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which-  # is contrary to our usage.  Disable this feature.-  alias -g '${1+"$@"}'='"$@"'-  setopt NO_GLOB_SUBST-else-  case `(set -o) 2>/dev/null` in-  *posix*) set -o posix ;;-esac--fi---:-_ASEOF-}; then-  CONFIG_SHELL=$as_shell-	       as_have_required=yes-	       if { "$as_shell" 2> /dev/null <<\_ASEOF-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then-  emulate sh-  NULLCMD=:-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which-  # is contrary to our usage.  Disable this feature.-  alias -g '${1+"$@"}'='"$@"'-  setopt NO_GLOB_SUBST-else-  case `(set -o) 2>/dev/null` in-  *posix*) set -o posix ;;-esac--fi---:-(as_func_return () {-  (exit $1)-}-as_func_success () {-  as_func_return 0-}-as_func_failure () {-  as_func_return 1-}-as_func_ret_success () {-  return 0-}-as_func_ret_failure () {-  return 1-}--exitcode=0-if as_func_success; then-  :-else-  exitcode=1-  echo as_func_success failed.-fi--if as_func_failure; then-  exitcode=1-  echo as_func_failure succeeded.-fi--if as_func_ret_success; then-  :-else-  exitcode=1-  echo as_func_ret_success failed.-fi--if as_func_ret_failure; then-  exitcode=1-  echo as_func_ret_failure succeeded.-fi--if ( set x; as_func_ret_success y && test x = "$1" ); then-  :-else-  exitcode=1-  echo positional parameters were not saved.-fi--test $exitcode = 0) || { (exit 1); exit 1; }--(-  as_lineno_1=$LINENO-  as_lineno_2=$LINENO-  test "x$as_lineno_1" != "x$as_lineno_2" &&-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }--_ASEOF-}; then-  break-fi--fi--      done--      if test "x$CONFIG_SHELL" != x; then-  for as_var in BASH_ENV ENV-        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var-        done-        export CONFIG_SHELL-        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}-fi---    if test $as_have_required = no; then-  echo This script requires a shell more modern than all the-      echo shells that I found on your system.  Please install a-      echo modern shell, or manually run the script under such a-      echo shell if you do have one.-      { (exit 1); exit 1; }-fi---fi--fi----(eval "as_func_return () {-  (exit \$1)-}-as_func_success () {-  as_func_return 0-}-as_func_failure () {-  as_func_return 1-}-as_func_ret_success () {-  return 0-}-as_func_ret_failure () {-  return 1-}--exitcode=0-if as_func_success; then-  :-else-  exitcode=1-  echo as_func_success failed.-fi--if as_func_failure; then-  exitcode=1-  echo as_func_failure succeeded.-fi--if as_func_ret_success; then-  :-else-  exitcode=1-  echo as_func_ret_success failed.-fi--if as_func_ret_failure; then-  exitcode=1-  echo as_func_ret_failure succeeded.-fi--if ( set x; as_func_ret_success y && test x = \"\$1\" ); then-  :-else-  exitcode=1-  echo positional parameters were not saved.-fi--test \$exitcode = 0") || {-  echo No shell found that supports shell functions.-  echo Please tell autoconf@gnu.org about your system,-  echo including any error possibly output before this-  echo message-}----  as_lineno_1=$LINENO-  as_lineno_2=$LINENO-  test "x$as_lineno_1" != "x$as_lineno_2" &&-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {--  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO-  # uniformly replaced by the line number.  The first 'sed' inserts a-  # line-number line after each line using $LINENO; the second 'sed'-  # does the real work.  The second script uses 'N' to pair each-  # line-number line with the line containing $LINENO, and appends-  # trailing '-' during substitution so that $LINENO is not a special-  # case at line end.-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the-  # scripts with optimization help from Paolo Bonzini.  Blame Lee-  # E. McMahon (1931-1989) for sed's syntax.  :-)-  sed -n '-    p-    /[$]LINENO/=-  ' <$as_myself |-    sed '-      s/[$]LINENO.*/&-/-      t lineno-      b-      :lineno-      N-      :loop-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/-      t loop-      s/-\n.*//-    ' >$as_me.lineno &&-  chmod +x "$as_me.lineno" ||-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2-   { (exit 1); exit 1; }; }--  # Don't try to exec as it changes $[0], causing all sort of problems-  # (the dirname of $[0] is not the place where we might find the-  # original and so on.  Autoconf is especially sensitive to this).-  . "./$as_me.lineno"-  # Exit status is that of the last command.-  exit-}---if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then-  as_dirname=dirname-else-  as_dirname=false-fi--ECHO_C= ECHO_N= ECHO_T=-case `echo -n x` in--n*)-  case `echo 'x\c'` in-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.-  *)   ECHO_C='\c';;-  esac;;-*)-  ECHO_N='-n';;-esac--if expr a : '\(a\)' >/dev/null 2>&1 &&-   test "X`expr 00001 : '.*\(...\)'`" = X001; then-  as_expr=expr-else-  as_expr=false-fi--rm -f conf$$ conf$$.exe conf$$.file-if test -d conf$$.dir; then-  rm -f conf$$.dir/conf$$.file-else-  rm -f conf$$.dir-  mkdir conf$$.dir-fi-echo >conf$$.file-if ln -s conf$$.file conf$$ 2>/dev/null; then-  as_ln_s='ln -s'-  # ... but there are two gotchas:-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.-  # In both cases, we have to default to `cp -p'.-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||-    as_ln_s='cp -p'-elif ln conf$$.file conf$$ 2>/dev/null; then-  as_ln_s=ln-else-  as_ln_s='cp -p'-fi-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file-rmdir conf$$.dir 2>/dev/null--if mkdir -p . 2>/dev/null; then-  as_mkdir_p=:-else-  test -d ./-p && rmdir ./-p-  as_mkdir_p=false-fi--if test -x / >/dev/null 2>&1; then-  as_test_x='test -x'-else-  if ls -dL / >/dev/null 2>&1; then-    as_ls_L_option=L-  else-    as_ls_L_option=-  fi-  as_test_x='-    eval sh -c '\''-      if test -d "$1"; then-        test -d "$1/.";-      else-	case $1 in-        -*)set "./$1";;-	esac;-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in-	???[sx]*):;;*)false;;esac;fi-    '\'' sh-  '-fi-as_executable_p=$as_test_x--# Sed expression to map a string onto a valid CPP name.-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"--# Sed expression to map a string onto a valid variable name.-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"----exec 7<&0 </dev/null 6>&1--# Name of the host.-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,-# so uname gets run too.-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`--#-# Initializations.-#-ac_default_prefix=/usr/local-ac_clean_files=-ac_config_libobj_dir=.-LIBOBJS=-cross_compiling=no-subdirs=-MFLAGS=-MAKEFLAGS=-SHELL=${CONFIG_SHELL-/bin/sh}--# Identity of this package.-PACKAGE_NAME='rtsPOSIX'-PACKAGE_TARNAME='rtsposix'-PACKAGE_VERSION='0.9.9'-PACKAGE_STRING='rtsPOSIX 0.9.9'-PACKAGE_BUGREPORT='nordland@csee.ltu.se'--ac_unique_file="main.c"-# Factoring default headers for most tests.-ac_includes_default="\-#include <stdio.h>-#ifdef HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif-#ifdef HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif-#ifdef STDC_HEADERS-# include <stdlib.h>-# include <stddef.h>-#else-# ifdef HAVE_STDLIB_H-#  include <stdlib.h>-# endif-#endif-#ifdef HAVE_STRING_H-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H-#  include <memory.h>-# endif-# include <string.h>-#endif-#ifdef HAVE_STRINGS_H-# include <strings.h>-#endif-#ifdef HAVE_INTTYPES_H-# include <inttypes.h>-#endif-#ifdef HAVE_STDINT_H-# include <stdint.h>-#endif-#ifdef HAVE_UNISTD_H-# include <unistd.h>-#endif"--ac_subst_vars='SHELL-PATH_SEPARATOR-PACKAGE_NAME-PACKAGE_TARNAME-PACKAGE_VERSION-PACKAGE_STRING-PACKAGE_BUGREPORT-exec_prefix-prefix-program_transform_name-bindir-sbindir-libexecdir-datarootdir-datadir-sysconfdir-sharedstatedir-localstatedir-includedir-oldincludedir-docdir-infodir-htmldir-dvidir-pdfdir-psdir-libdir-localedir-mandir-DEFS-ECHO_C-ECHO_N-ECHO_T-LIBS-build_alias-host_alias-target_alias-CC-CFLAGS-LDFLAGS-CPPFLAGS-ac_ct_CC-EXEEXT-OBJEXT-INSTALL_PROGRAM-INSTALL_SCRIPT-INSTALL_DATA-build-build_cpu-build_vendor-build_os-host-host_cpu-host_vendor-host_os-acx_pthread_config-PTHREAD_CC-PTHREAD_LIBS-PTHREAD_CFLAGS-TIMBERC-CPP-GREP-EGREP-LIBOBJS-SRC-DEST-LTLIBOBJS'-ac_subst_files=''-      ac_precious_vars='build_alias-host_alias-target_alias-CC-CFLAGS-LDFLAGS-LIBS-CPPFLAGS-CPP'---# Initialize some variables set by options.-ac_init_help=-ac_init_version=false-# The variables have the same names as the options, with-# dashes changed to underlines.-cache_file=/dev/null-exec_prefix=NONE-no_create=-no_recursion=-prefix=NONE-program_prefix=NONE-program_suffix=NONE-program_transform_name=s,x,x,-silent=-site=-srcdir=-verbose=-x_includes=NONE-x_libraries=NONE--# Installation directory options.-# These are left unexpanded so users can "make install exec_prefix=/foo"-# and all the variables that are supposed to be based on exec_prefix-# by default will actually change.-# Use braces instead of parens because sh, perl, etc. also accept them.-# (The list follows the same order as the GNU Coding Standards.)-bindir='${exec_prefix}/bin'-sbindir='${exec_prefix}/sbin'-libexecdir='${exec_prefix}/libexec'-datarootdir='${prefix}/share'-datadir='${datarootdir}'-sysconfdir='${prefix}/etc'-sharedstatedir='${prefix}/com'-localstatedir='${prefix}/var'-includedir='${prefix}/include'-oldincludedir='/usr/include'-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'-infodir='${datarootdir}/info'-htmldir='${docdir}'-dvidir='${docdir}'-pdfdir='${docdir}'-psdir='${docdir}'-libdir='${exec_prefix}/lib'-localedir='${datarootdir}/locale'-mandir='${datarootdir}/man'--ac_prev=-ac_dashdash=-for ac_option-do-  # If the previous option needs an argument, assign it.-  if test -n "$ac_prev"; then-    eval $ac_prev=\$ac_option-    ac_prev=-    continue-  fi--  case $ac_option in-  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;-  *)	ac_optarg=yes ;;-  esac--  # Accept the important Cygnus configure options, so we can diagnose typos.--  case $ac_dashdash$ac_option in-  --)-    ac_dashdash=yes ;;--  -bindir | --bindir | --bindi | --bind | --bin | --bi)-    ac_prev=bindir ;;-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)-    bindir=$ac_optarg ;;--  -build | --build | --buil | --bui | --bu)-    ac_prev=build_alias ;;-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)-    build_alias=$ac_optarg ;;--  -cache-file | --cache-file | --cache-fil | --cache-fi \-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)-    ac_prev=cache_file ;;-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)-    cache_file=$ac_optarg ;;--  --config-cache | -C)-    cache_file=config.cache ;;--  -datadir | --datadir | --datadi | --datad)-    ac_prev=datadir ;;-  -datadir=* | --datadir=* | --datadi=* | --datad=*)-    datadir=$ac_optarg ;;--  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \-  | --dataroo | --dataro | --datar)-    ac_prev=datarootdir ;;-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)-    datarootdir=$ac_optarg ;;--  -disable-* | --disable-*)-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`-    # Reject names that are not valid shell variable names.-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2-   { (exit 1); exit 1; }; }-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`-    eval enable_$ac_feature=no ;;--  -docdir | --docdir | --docdi | --doc | --do)-    ac_prev=docdir ;;-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)-    docdir=$ac_optarg ;;--  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)-    ac_prev=dvidir ;;-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)-    dvidir=$ac_optarg ;;--  -enable-* | --enable-*)-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`-    # Reject names that are not valid shell variable names.-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2-   { (exit 1); exit 1; }; }-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`-    eval enable_$ac_feature=\$ac_optarg ;;--  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \-  | --exec | --exe | --ex)-    ac_prev=exec_prefix ;;-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \-  | --exec=* | --exe=* | --ex=*)-    exec_prefix=$ac_optarg ;;--  -gas | --gas | --ga | --g)-    # Obsolete; use --with-gas.-    with_gas=yes ;;--  -help | --help | --hel | --he | -h)-    ac_init_help=long ;;-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)-    ac_init_help=recursive ;;-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)-    ac_init_help=short ;;--  -host | --host | --hos | --ho)-    ac_prev=host_alias ;;-  -host=* | --host=* | --hos=* | --ho=*)-    host_alias=$ac_optarg ;;--  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)-    ac_prev=htmldir ;;-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \-  | --ht=*)-    htmldir=$ac_optarg ;;--  -includedir | --includedir | --includedi | --included | --include \-  | --includ | --inclu | --incl | --inc)-    ac_prev=includedir ;;-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \-  | --includ=* | --inclu=* | --incl=* | --inc=*)-    includedir=$ac_optarg ;;--  -infodir | --infodir | --infodi | --infod | --info | --inf)-    ac_prev=infodir ;;-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)-    infodir=$ac_optarg ;;--  -libdir | --libdir | --libdi | --libd)-    ac_prev=libdir ;;-  -libdir=* | --libdir=* | --libdi=* | --libd=*)-    libdir=$ac_optarg ;;--  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \-  | --libexe | --libex | --libe)-    ac_prev=libexecdir ;;-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \-  | --libexe=* | --libex=* | --libe=*)-    libexecdir=$ac_optarg ;;--  -localedir | --localedir | --localedi | --localed | --locale)-    ac_prev=localedir ;;-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)-    localedir=$ac_optarg ;;--  -localstatedir | --localstatedir | --localstatedi | --localstated \-  | --localstate | --localstat | --localsta | --localst | --locals)-    ac_prev=localstatedir ;;-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)-    localstatedir=$ac_optarg ;;--  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)-    ac_prev=mandir ;;-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)-    mandir=$ac_optarg ;;--  -nfp | --nfp | --nf)-    # Obsolete; use --without-fp.-    with_fp=no ;;--  -no-create | --no-create | --no-creat | --no-crea | --no-cre \-  | --no-cr | --no-c | -n)-    no_create=yes ;;--  -no-recursion | --no-recursion | --no-recursio | --no-recursi \-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)-    no_recursion=yes ;;--  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \-  | --oldin | --oldi | --old | --ol | --o)-    ac_prev=oldincludedir ;;-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)-    oldincludedir=$ac_optarg ;;--  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)-    ac_prev=prefix ;;-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)-    prefix=$ac_optarg ;;--  -program-prefix | --program-prefix | --program-prefi | --program-pref \-  | --program-pre | --program-pr | --program-p)-    ac_prev=program_prefix ;;-  -program-prefix=* | --program-prefix=* | --program-prefi=* \-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)-    program_prefix=$ac_optarg ;;--  -program-suffix | --program-suffix | --program-suffi | --program-suff \-  | --program-suf | --program-su | --program-s)-    ac_prev=program_suffix ;;-  -program-suffix=* | --program-suffix=* | --program-suffi=* \-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)-    program_suffix=$ac_optarg ;;--  -program-transform-name | --program-transform-name \-  | --program-transform-nam | --program-transform-na \-  | --program-transform-n | --program-transform- \-  | --program-transform | --program-transfor \-  | --program-transfo | --program-transf \-  | --program-trans | --program-tran \-  | --progr-tra | --program-tr | --program-t)-    ac_prev=program_transform_name ;;-  -program-transform-name=* | --program-transform-name=* \-  | --program-transform-nam=* | --program-transform-na=* \-  | --program-transform-n=* | --program-transform-=* \-  | --program-transform=* | --program-transfor=* \-  | --program-transfo=* | --program-transf=* \-  | --program-trans=* | --program-tran=* \-  | --progr-tra=* | --program-tr=* | --program-t=*)-    program_transform_name=$ac_optarg ;;--  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)-    ac_prev=pdfdir ;;-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)-    pdfdir=$ac_optarg ;;--  -psdir | --psdir | --psdi | --psd | --ps)-    ac_prev=psdir ;;-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)-    psdir=$ac_optarg ;;--  -q | -quiet | --quiet | --quie | --qui | --qu | --q \-  | -silent | --silent | --silen | --sile | --sil)-    silent=yes ;;--  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)-    ac_prev=sbindir ;;-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \-  | --sbi=* | --sb=*)-    sbindir=$ac_optarg ;;--  -sharedstatedir | --sharedstatedir | --sharedstatedi \-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \-  | --sharedst | --shareds | --shared | --share | --shar \-  | --sha | --sh)-    ac_prev=sharedstatedir ;;-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \-  | --sha=* | --sh=*)-    sharedstatedir=$ac_optarg ;;--  -site | --site | --sit)-    ac_prev=site ;;-  -site=* | --site=* | --sit=*)-    site=$ac_optarg ;;--  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)-    ac_prev=srcdir ;;-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)-    srcdir=$ac_optarg ;;--  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \-  | --syscon | --sysco | --sysc | --sys | --sy)-    ac_prev=sysconfdir ;;-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)-    sysconfdir=$ac_optarg ;;--  -target | --target | --targe | --targ | --tar | --ta | --t)-    ac_prev=target_alias ;;-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)-    target_alias=$ac_optarg ;;--  -v | -verbose | --verbose | --verbos | --verbo | --verb)-    verbose=yes ;;--  -version | --version | --versio | --versi | --vers | -V)-    ac_init_version=: ;;--  -with-* | --with-*)-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`-    # Reject names that are not valid shell variable names.-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&-      { echo "$as_me: error: invalid package name: $ac_package" >&2-   { (exit 1); exit 1; }; }-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`-    eval with_$ac_package=\$ac_optarg ;;--  -without-* | --without-*)-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`-    # Reject names that are not valid shell variable names.-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&-      { echo "$as_me: error: invalid package name: $ac_package" >&2-   { (exit 1); exit 1; }; }-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`-    eval with_$ac_package=no ;;--  --x)-    # Obsolete; use --with-x.-    with_x=yes ;;--  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \-  | --x-incl | --x-inc | --x-in | --x-i)-    ac_prev=x_includes ;;-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)-    x_includes=$ac_optarg ;;--  -x-libraries | --x-libraries | --x-librarie | --x-librari \-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)-    ac_prev=x_libraries ;;-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)-    x_libraries=$ac_optarg ;;--  -*) { echo "$as_me: error: unrecognized option: $ac_option-Try \`$0 --help' for more information." >&2-   { (exit 1); exit 1; }; }-    ;;--  *=*)-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`-    # Reject names that are not valid shell variable names.-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2-   { (exit 1); exit 1; }; }-    eval $ac_envvar=\$ac_optarg-    export $ac_envvar ;;--  *)-    # FIXME: should be removed in autoconf 3.0.-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}-    ;;--  esac-done--if test -n "$ac_prev"; then-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`-  { echo "$as_me: error: missing argument to $ac_option" >&2-   { (exit 1); exit 1; }; }-fi--# Be sure to have absolute directory names.-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \-		datadir sysconfdir sharedstatedir localstatedir includedir \-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \-		libdir localedir mandir-do-  eval ac_val=\$$ac_var-  case $ac_val in-    [\\/$]* | ?:[\\/]* )  continue;;-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;-  esac-  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2-   { (exit 1); exit 1; }; }-done--# There might be people who depend on the old broken behavior: `$host'-# used to hold the argument of --host etc.-# FIXME: To remove some day.-build=$build_alias-host=$host_alias-target=$target_alias--# FIXME: To remove some day.-if test "x$host_alias" != x; then-  if test "x$build_alias" = x; then-    cross_compiling=maybe-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.-    If a cross compiler is detected then cross compile mode will be used." >&2-  elif test "x$build_alias" != "x$host_alias"; then-    cross_compiling=yes-  fi-fi--ac_tool_prefix=-test -n "$host_alias" && ac_tool_prefix=$host_alias---test "$silent" = yes && exec 6>/dev/null---ac_pwd=`pwd` && test -n "$ac_pwd" &&-ac_ls_di=`ls -di .` &&-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||-  { echo "$as_me: error: Working directory cannot be determined" >&2-   { (exit 1); exit 1; }; }-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||-  { echo "$as_me: error: pwd does not report name of working directory" >&2-   { (exit 1); exit 1; }; }---# Find the source files, if location was not specified.-if test -z "$srcdir"; then-  ac_srcdir_defaulted=yes-  # Try the directory containing this script, then the parent directory.-  ac_confdir=`$as_dirname -- "$0" ||-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \-	 X"$0" : 'X\(//\)[^/]' \| \-	 X"$0" : 'X\(//\)$' \| \-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||-echo X"$0" |-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)[^/].*/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\).*/{-	    s//\1/-	    q-	  }-	  s/.*/./; q'`-  srcdir=$ac_confdir-  if test ! -r "$srcdir/$ac_unique_file"; then-    srcdir=..-  fi-else-  ac_srcdir_defaulted=no-fi-if test ! -r "$srcdir/$ac_unique_file"; then-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."-  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2-   { (exit 1); exit 1; }; }-fi-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"-ac_abs_confdir=`(-	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2-   { (exit 1); exit 1; }; }-	pwd)`-# When building in place, set srcdir=.-if test "$ac_abs_confdir" = "$ac_pwd"; then-  srcdir=.-fi-# Remove unnecessary trailing slashes from srcdir.-# Double slashes in file names in object file debugging info-# mess up M-x gdb in Emacs.-case $srcdir in-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;-esac-for ac_var in $ac_precious_vars; do-  eval ac_env_${ac_var}_set=\${${ac_var}+set}-  eval ac_env_${ac_var}_value=\$${ac_var}-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}-  eval ac_cv_env_${ac_var}_value=\$${ac_var}-done--#-# Report the --help message.-#-if test "$ac_init_help" = "long"; then-  # Omit some internal or obsolete options to make the list less imposing.-  # This message is too long to be a string in the A/UX 3.1 sh.-  cat <<_ACEOF-\`configure' configures rtsPOSIX 0.9.9 to adapt to many kinds of systems.--Usage: $0 [OPTION]... [VAR=VALUE]...--To assign environment variables (e.g., CC, CFLAGS...), specify them as-VAR=VALUE.  See below for descriptions of some of the useful variables.--Defaults for the options are specified in brackets.--Configuration:-  -h, --help              display this help and exit-      --help=short        display options specific to this package-      --help=recursive    display the short help of all the included packages-  -V, --version           display version information and exit-  -q, --quiet, --silent   do not print \`checking...' messages-      --cache-file=FILE   cache test results in FILE [disabled]-  -C, --config-cache      alias for \`--cache-file=config.cache'-  -n, --no-create         do not create output files-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']--Installation directories:-  --prefix=PREFIX         install architecture-independent files in PREFIX-			  [$ac_default_prefix]-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX-			  [PREFIX]--By default, \`make install' will install all the files in-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify-an installation prefix other than \`$ac_default_prefix' using \`--prefix',-for instance \`--prefix=\$HOME'.--For better control, use the options below.--Fine tuning of the installation directories:-  --bindir=DIR           user executables [EPREFIX/bin]-  --sbindir=DIR          system admin executables [EPREFIX/sbin]-  --libexecdir=DIR       program executables [EPREFIX/libexec]-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]-  --libdir=DIR           object code libraries [EPREFIX/lib]-  --includedir=DIR       C header files [PREFIX/include]-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]-  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]-  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]-  --infodir=DIR          info documentation [DATAROOTDIR/info]-  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]-  --mandir=DIR           man documentation [DATAROOTDIR/man]-  --docdir=DIR           documentation root [DATAROOTDIR/doc/rtsposix]-  --htmldir=DIR          html documentation [DOCDIR]-  --dvidir=DIR           dvi documentation [DOCDIR]-  --pdfdir=DIR           pdf documentation [DOCDIR]-  --psdir=DIR            ps documentation [DOCDIR]-_ACEOF--  cat <<\_ACEOF--System types:-  --build=BUILD     configure for building on BUILD [guessed]-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]-_ACEOF-fi--if test -n "$ac_init_help"; then-  case $ac_init_help in-     short | recursive ) echo "Configuration of rtsPOSIX 0.9.9:";;-   esac-  cat <<\_ACEOF--Optional Packages:-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)-  --with-timberc=DIR      Path to timberc--Some influential environment variables:-  CC          C compiler command-  CFLAGS      C compiler flags-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a-              nonstandard directory <lib dir>-  LIBS        libraries to pass to the linker, e.g. -l<library>-  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if-              you have headers in a nonstandard directory <include dir>-  CPP         C preprocessor--Use these variables to override the choices made by `configure' or to help-it to find libraries and programs with nonstandard names/locations.--Report bugs to <nordland@csee.ltu.se>.-_ACEOF-ac_status=$?-fi--if test "$ac_init_help" = "recursive"; then-  # If there are subdirs, report their specific --help.-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue-    test -d "$ac_dir" || continue-    ac_builddir=.--case "$ac_dir" in-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;-*)-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`-  # A ".." for each directory in $ac_dir_suffix.-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`-  case $ac_top_builddir_sub in-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;-  esac ;;-esac-ac_abs_top_builddir=$ac_pwd-ac_abs_builddir=$ac_pwd$ac_dir_suffix-# for backward compatibility:-ac_top_builddir=$ac_top_build_prefix--case $srcdir in-  .)  # We are building in place.-    ac_srcdir=.-    ac_top_srcdir=$ac_top_builddir_sub-    ac_abs_top_srcdir=$ac_pwd ;;-  [\\/]* | ?:[\\/]* )  # Absolute name.-    ac_srcdir=$srcdir$ac_dir_suffix;-    ac_top_srcdir=$srcdir-    ac_abs_top_srcdir=$srcdir ;;-  *) # Relative name.-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix-    ac_top_srcdir=$ac_top_build_prefix$srcdir-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;-esac-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix--    cd "$ac_dir" || { ac_status=$?; continue; }-    # Check for guested configure.-    if test -f "$ac_srcdir/configure.gnu"; then-      echo &&-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive-    elif test -f "$ac_srcdir/configure"; then-      echo &&-      $SHELL "$ac_srcdir/configure" --help=recursive-    else-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2-    fi || ac_status=$?-    cd "$ac_pwd" || { ac_status=$?; break; }-  done-fi--test -n "$ac_init_help" && exit $ac_status-if $ac_init_version; then-  cat <<\_ACEOF-rtsPOSIX configure 0.9.9-generated by GNU Autoconf 2.61--Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.-This configure script is free software; the Free Software Foundation-gives unlimited permission to copy, distribute and modify it.-_ACEOF-  exit-fi-cat >config.log <<_ACEOF-This file contains any messages produced by compilers while-running configure, to aid debugging if configure makes a mistake.--It was created by rtsPOSIX $as_me 0.9.9, which was-generated by GNU Autoconf 2.61.  Invocation command line was--  $ $0 $@--_ACEOF-exec 5>>config.log-{-cat <<_ASUNAME-## --------- ##-## Platform. ##-## --------- ##--hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`-uname -m = `(uname -m) 2>/dev/null || echo unknown`-uname -r = `(uname -r) 2>/dev/null || echo unknown`-uname -s = `(uname -s) 2>/dev/null || echo unknown`-uname -v = `(uname -v) 2>/dev/null || echo unknown`--/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`--/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`--_ASUNAME--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  echo "PATH: $as_dir"-done-IFS=$as_save_IFS--} >&5--cat >&5 <<_ACEOF---## ----------- ##-## Core tests. ##-## ----------- ##--_ACEOF---# Keep a trace of the command line.-# Strip out --no-create and --no-recursion so they do not pile up.-# Strip out --silent because we don't want to record it for future runs.-# Also quote any args containing shell meta-characters.-# Make two passes to allow for proper duplicate-argument suppression.-ac_configure_args=-ac_configure_args0=-ac_configure_args1=-ac_must_keep_next=false-for ac_pass in 1 2-do-  for ac_arg-  do-    case $ac_arg in-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \-    | -silent | --silent | --silen | --sile | --sil)-      continue ;;-    *\'*)-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;-    esac-    case $ac_pass in-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;-    2)-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"-      if test $ac_must_keep_next = true; then-	ac_must_keep_next=false # Got value, back to normal.-      else-	case $ac_arg in-	  *=* | --config-cache | -C | -disable-* | --disable-* \-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \-	  | -with-* | --with-* | -without-* | --without-* | --x)-	    case "$ac_configure_args0 " in-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;-	    esac-	    ;;-	  -* ) ac_must_keep_next=true ;;-	esac-      fi-      ac_configure_args="$ac_configure_args '$ac_arg'"-      ;;-    esac-  done-done-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }--# When interrupted or exit'd, cleanup temporary files, and complete-# config.log.  We remove comments because anyway the quotes in there-# would cause problems or look ugly.-# WARNING: Use '\'' to represent an apostrophe within the trap.-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.-trap 'exit_status=$?-  # Save into config.log some information that might help in debugging.-  {-    echo--    cat <<\_ASBOX-## ---------------- ##-## Cache variables. ##-## ---------------- ##-_ASBOX-    echo-    # The following way of writing the cache mishandles newlines in values,-(-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do-    eval ac_val=\$$ac_var-    case $ac_val in #(-    *${as_nl}*)-      case $ac_var in #(-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;-      esac-      case $ac_var in #(-      _ | IFS | as_nl) ;; #(-      *) $as_unset $ac_var ;;-      esac ;;-    esac-  done-  (set) 2>&1 |-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(-    *${as_nl}ac_space=\ *)-      sed -n \-	"s/'\''/'\''\\\\'\'''\''/g;-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"-      ;; #(-    *)-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"-      ;;-    esac |-    sort-)-    echo--    cat <<\_ASBOX-## ----------------- ##-## Output variables. ##-## ----------------- ##-_ASBOX-    echo-    for ac_var in $ac_subst_vars-    do-      eval ac_val=\$$ac_var-      case $ac_val in-      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;-      esac-      echo "$ac_var='\''$ac_val'\''"-    done | sort-    echo--    if test -n "$ac_subst_files"; then-      cat <<\_ASBOX-## ------------------- ##-## File substitutions. ##-## ------------------- ##-_ASBOX-      echo-      for ac_var in $ac_subst_files-      do-	eval ac_val=\$$ac_var-	case $ac_val in-	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;-	esac-	echo "$ac_var='\''$ac_val'\''"-      done | sort-      echo-    fi--    if test -s confdefs.h; then-      cat <<\_ASBOX-## ----------- ##-## confdefs.h. ##-## ----------- ##-_ASBOX-      echo-      cat confdefs.h-      echo-    fi-    test "$ac_signal" != 0 &&-      echo "$as_me: caught signal $ac_signal"-    echo "$as_me: exit $exit_status"-  } >&5-  rm -f core *.core core.conftest.* &&-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&-    exit $exit_status-' 0-for ac_signal in 1 2 13 15; do-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal-done-ac_signal=0--# confdefs.h avoids OS command line length limits that DEFS can exceed.-rm -f -r conftest* confdefs.h--# Predefined preprocessor variables.--cat >>confdefs.h <<_ACEOF-#define PACKAGE_NAME "$PACKAGE_NAME"-_ACEOF---cat >>confdefs.h <<_ACEOF-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"-_ACEOF---cat >>confdefs.h <<_ACEOF-#define PACKAGE_VERSION "$PACKAGE_VERSION"-_ACEOF---cat >>confdefs.h <<_ACEOF-#define PACKAGE_STRING "$PACKAGE_STRING"-_ACEOF---cat >>confdefs.h <<_ACEOF-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"-_ACEOF---# Let the site file select an alternate cache file if it wants to.-# Prefer explicitly selected file to automatically selected ones.-if test -n "$CONFIG_SITE"; then-  set x "$CONFIG_SITE"-elif test "x$prefix" != xNONE; then-  set x "$prefix/share/config.site" "$prefix/etc/config.site"-else-  set x "$ac_default_prefix/share/config.site" \-	"$ac_default_prefix/etc/config.site"-fi-shift-for ac_site_file-do-  if test -r "$ac_site_file"; then-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5-echo "$as_me: loading site script $ac_site_file" >&6;}-    sed 's/^/| /' "$ac_site_file" >&5-    . "$ac_site_file"-  fi-done--if test -r "$cache_file"; then-  # Some versions of bash will fail to source /dev/null (special-  # files actually), so we avoid doing that.-  if test -f "$cache_file"; then-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5-echo "$as_me: loading cache $cache_file" >&6;}-    case $cache_file in-      [\\/]* | ?:[\\/]* ) . "$cache_file";;-      *)                      . "./$cache_file";;-    esac-  fi-else-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5-echo "$as_me: creating cache $cache_file" >&6;}-  >$cache_file-fi--# Check that the precious variables saved in the cache have kept the same-# value.-ac_cache_corrupted=false-for ac_var in $ac_precious_vars; do-  eval ac_old_set=\$ac_cv_env_${ac_var}_set-  eval ac_new_set=\$ac_env_${ac_var}_set-  eval ac_old_val=\$ac_cv_env_${ac_var}_value-  eval ac_new_val=\$ac_env_${ac_var}_value-  case $ac_old_set,$ac_new_set in-    set,)-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}-      ac_cache_corrupted=: ;;-    ,set)-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}-      ac_cache_corrupted=: ;;-    ,);;-    *)-      if test "x$ac_old_val" != "x$ac_new_val"; then-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5-echo "$as_me:   former value:  $ac_old_val" >&2;}-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5-echo "$as_me:   current value: $ac_new_val" >&2;}-	ac_cache_corrupted=:-      fi;;-  esac-  # Pass precious variables to config.status.-  if test "$ac_new_set" = set; then-    case $ac_new_val in-    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;-    *) ac_arg=$ac_var=$ac_new_val ;;-    esac-    case " $ac_configure_args " in-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;-    esac-  fi-done-if $ac_cache_corrupted; then-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5-echo "$as_me: error: changes in the environment can compromise the build" >&2;}-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}-   { (exit 1); exit 1; }; }-fi--------------------------ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu----ac_config_headers="$ac_config_headers config.h"---# Checks for programs.-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-if test -n "$ac_tool_prefix"; then-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.-set dummy ${ac_tool_prefix}gcc; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_CC+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if test -n "$CC"; then-  ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  for ac_exec_ext in '' $ac_executable_extensions; do-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then-    ac_cv_prog_CC="${ac_tool_prefix}gcc"-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then-  { echo "$as_me:$LINENO: result: $CC" >&5-echo "${ECHO_T}$CC" >&6; }-else-  { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi---fi-if test -z "$ac_cv_prog_CC"; then-  ac_ct_CC=$CC-  # Extract the first word of "gcc", so it can be a program name with args.-set dummy gcc; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if test -n "$ac_ct_CC"; then-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  for ac_exec_ext in '' $ac_executable_extensions; do-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then-    ac_cv_prog_ac_ct_CC="gcc"-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-done-IFS=$as_save_IFS--fi-fi-ac_ct_CC=$ac_cv_prog_ac_ct_CC-if test -n "$ac_ct_CC"; then-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5-echo "${ECHO_T}$ac_ct_CC" >&6; }-else-  { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi--  if test "x$ac_ct_CC" = x; then-    CC=""-  else-    case $cross_compiling:$ac_tool_warned in-yes:)-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools-whose name does not start with the host triplet.  If you think this-configuration is useful to you, please write to autoconf@gnu.org." >&5-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools-whose name does not start with the host triplet.  If you think this-configuration is useful to you, please write to autoconf@gnu.org." >&2;}-ac_tool_warned=yes ;;-esac-    CC=$ac_ct_CC-  fi-else-  CC="$ac_cv_prog_CC"-fi--if test -z "$CC"; then-          if test -n "$ac_tool_prefix"; then-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.-set dummy ${ac_tool_prefix}cc; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_CC+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if test -n "$CC"; then-  ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  for ac_exec_ext in '' $ac_executable_extensions; do-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then-    ac_cv_prog_CC="${ac_tool_prefix}cc"-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then-  { echo "$as_me:$LINENO: result: $CC" >&5-echo "${ECHO_T}$CC" >&6; }-else-  { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi---  fi-fi-if test -z "$CC"; then-  # Extract the first word of "cc", so it can be a program name with args.-set dummy cc; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_CC+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if test -n "$CC"; then-  ac_cv_prog_CC="$CC" # Let the user override the test.-else-  ac_prog_rejected=no-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  for ac_exec_ext in '' $ac_executable_extensions; do-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then-       ac_prog_rejected=yes-       continue-     fi-    ac_cv_prog_CC="cc"-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-done-IFS=$as_save_IFS--if test $ac_prog_rejected = yes; then-  # We found a bogon in the path, so make sure we never use it.-  set dummy $ac_cv_prog_CC-  shift-  if test $# != 0; then-    # We chose a different compiler from the bogus one.-    # However, it has the same basename, so the bogon will be chosen-    # first if we set CC to just the basename; use the full file name.-    shift-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"-  fi-fi-fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then-  { echo "$as_me:$LINENO: result: $CC" >&5-echo "${ECHO_T}$CC" >&6; }-else-  { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi---fi-if test -z "$CC"; then-  if test -n "$ac_tool_prefix"; then-  for ac_prog in cl.exe-  do-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.-set dummy $ac_tool_prefix$ac_prog; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_CC+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if test -n "$CC"; then-  ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  for ac_exec_ext in '' $ac_executable_extensions; do-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then-  { echo "$as_me:$LINENO: result: $CC" >&5-echo "${ECHO_T}$CC" >&6; }-else-  { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi---    test -n "$CC" && break-  done-fi-if test -z "$CC"; then-  ac_ct_CC=$CC-  for ac_prog in cl.exe-do-  # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if test -n "$ac_ct_CC"; then-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  for ac_exec_ext in '' $ac_executable_extensions; do-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then-    ac_cv_prog_ac_ct_CC="$ac_prog"-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-done-IFS=$as_save_IFS--fi-fi-ac_ct_CC=$ac_cv_prog_ac_ct_CC-if test -n "$ac_ct_CC"; then-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5-echo "${ECHO_T}$ac_ct_CC" >&6; }-else-  { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi---  test -n "$ac_ct_CC" && break-done--  if test "x$ac_ct_CC" = x; then-    CC=""-  else-    case $cross_compiling:$ac_tool_warned in-yes:)-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools-whose name does not start with the host triplet.  If you think this-configuration is useful to you, please write to autoconf@gnu.org." >&5-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools-whose name does not start with the host triplet.  If you think this-configuration is useful to you, please write to autoconf@gnu.org." >&2;}-ac_tool_warned=yes ;;-esac-    CC=$ac_ct_CC-  fi-fi--fi---test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH-See \`config.log' for more details." >&5-echo "$as_me: error: no acceptable C compiler found in \$PATH-See \`config.log' for more details." >&2;}-   { (exit 1); exit 1; }; }--# Provide some information about the compiler.-echo "$as_me:$LINENO: checking for C compiler version" >&5-ac_compiler=`set X $ac_compile; echo $2`-{ (ac_try="$ac_compiler --version >&5"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compiler --version >&5") 2>&5-  ac_status=$?-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); }-{ (ac_try="$ac_compiler -v >&5"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compiler -v >&5") 2>&5-  ac_status=$?-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); }-{ (ac_try="$ac_compiler -V >&5"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compiler -V >&5") 2>&5-  ac_status=$?-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); }--cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */--int-main ()-{--  ;-  return 0;-}-_ACEOF-ac_clean_files_save=$ac_clean_files-ac_clean_files="$ac_clean_files a.out a.exe b.out"-# Try to create an executable without -o first, disregard a.out.-# It will help us diagnose broken compilers, and finding out an intuition-# of exeext.-{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`-#-# List of possible output files, starting from the most likely.-# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)-# only as a last resort.  b.out is created by i960 compilers.-ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'-#-# The IRIX 6 linker writes into existing files which may not be-# executable, retaining their permissions.  Remove them first so a-# subsequent execution test works.-ac_rmfiles=-for ac_file in $ac_files-do-  case $ac_file in-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;-  esac-done-rm -f $ac_rmfiles--if { (ac_try="$ac_link_default"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_link_default") 2>&5-  ac_status=$?-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); }; then-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'-# in a Makefile.  We should not override ac_cv_exeext if it was cached,-# so that the user can short-circuit this test for compilers unknown to-# Autoconf.-for ac_file in $ac_files ''-do-  test -f "$ac_file" || continue-  case $ac_file in-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )-	;;-    [ab].out )-	# We found the default executable, but exeext='' is most-	# certainly right.-	break;;-    *.* )-        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;-	then :; else-	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`-	fi-	# We set ac_cv_exeext here because the later test for it is not-	# safe: cross compilers may not add the suffix if given an `-o'-	# argument, so we may need to know it at that point already.-	# Even if this section looks crufty: it has the advantage of-	# actually working.-	break;;-    * )-	break;;-  esac-done-test "$ac_cv_exeext" = no && ac_cv_exeext=--else-  ac_file=''-fi--{ echo "$as_me:$LINENO: result: $ac_file" >&5-echo "${ECHO_T}$ac_file" >&6; }-if test -z "$ac_file"; then-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--{ { echo "$as_me:$LINENO: error: C compiler cannot create executables-See \`config.log' for more details." >&5-echo "$as_me: error: C compiler cannot create executables-See \`config.log' for more details." >&2;}-   { (exit 77); exit 77; }; }-fi--ac_exeext=$ac_cv_exeext--# Check that the compiler produces executables we can run.  If not, either-# the compiler is broken, or we cross compile.-{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0-# If not cross compiling, check that we can run a simple program.-if test "$cross_compiling" != yes; then-  if { ac_try='./$ac_file'-  { (case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_try") 2>&5-  ac_status=$?-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); }; }; then-    cross_compiling=no-  else-    if test "$cross_compiling" = maybe; then-	cross_compiling=yes-    else-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.-If you meant to cross compile, use \`--host'.-See \`config.log' for more details." >&5-echo "$as_me: error: cannot run C compiled programs.-If you meant to cross compile, use \`--host'.-See \`config.log' for more details." >&2;}-   { (exit 1); exit 1; }; }-    fi-  fi-fi-{ echo "$as_me:$LINENO: result: yes" >&5-echo "${ECHO_T}yes" >&6; }--rm -f a.out a.exe conftest$ac_cv_exeext b.out-ac_clean_files=$ac_clean_files_save-# Check that the compiler produces executables we can run.  If not, either-# the compiler is broken, or we cross compile.-{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }-{ echo "$as_me:$LINENO: result: $cross_compiling" >&5-echo "${ECHO_T}$cross_compiling" >&6; }--{ echo "$as_me:$LINENO: checking for suffix of executables" >&5-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }-if { (ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_link") 2>&5-  ac_status=$?-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); }; then-  # If both `conftest.exe' and `conftest' are `present' (well, observable)-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will-# work properly (i.e., refer to `conftest.exe'), while it won't with-# `rm'.-for ac_file in conftest.exe conftest conftest.*; do-  test -f "$ac_file" || continue-  case $ac_file in-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`-	  break;;-    * ) break;;-  esac-done-else-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link-See \`config.log' for more details." >&5-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link-See \`config.log' for more details." >&2;}-   { (exit 1); exit 1; }; }-fi--rm -f conftest$ac_cv_exeext-{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5-echo "${ECHO_T}$ac_cv_exeext" >&6; }--rm -f conftest.$ac_ext-EXEEXT=$ac_cv_exeext-ac_exeext=$EXEEXT-{ echo "$as_me:$LINENO: checking for suffix of object files" >&5-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }-if test "${ac_cv_objext+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */--int-main ()-{--  ;-  return 0;-}-_ACEOF-rm -f conftest.o conftest.obj-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>&5-  ac_status=$?-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); }; then-  for ac_file in conftest.o conftest.obj conftest.*; do-  test -f "$ac_file" || continue;-  case $ac_file in-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`-       break;;-  esac-done-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile-See \`config.log' for more details." >&5-echo "$as_me: error: cannot compute suffix of object files: cannot compile-See \`config.log' for more details." >&2;}-   { (exit 1); exit 1; }; }-fi--rm -f conftest.$ac_cv_objext conftest.$ac_ext-fi-{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5-echo "${ECHO_T}$ac_cv_objext" >&6; }-OBJEXT=$ac_cv_objext-ac_objext=$OBJEXT-{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }-if test "${ac_cv_c_compiler_gnu+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */--int-main ()-{-#ifndef __GNUC__-       choke me-#endif--  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  ac_compiler_gnu=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	ac_compiler_gnu=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-ac_cv_c_compiler_gnu=$ac_compiler_gnu--fi-{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }-GCC=`test $ac_compiler_gnu = yes && echo yes`-ac_test_CFLAGS=${CFLAGS+set}-ac_save_CFLAGS=$CFLAGS-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }-if test "${ac_cv_prog_cc_g+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  ac_save_c_werror_flag=$ac_c_werror_flag-   ac_c_werror_flag=yes-   ac_cv_prog_cc_g=no-   CFLAGS="-g"-   cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */--int-main ()-{--  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  ac_cv_prog_cc_g=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	CFLAGS=""-      cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */--int-main ()-{--  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  :-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	ac_c_werror_flag=$ac_save_c_werror_flag-	 CFLAGS="-g"-	 cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */--int-main ()-{--  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  ac_cv_prog_cc_g=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-   ac_c_werror_flag=$ac_save_c_werror_flag-fi-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }-if test "$ac_test_CFLAGS" = set; then-  CFLAGS=$ac_save_CFLAGS-elif test $ac_cv_prog_cc_g = yes; then-  if test "$GCC" = yes; then-    CFLAGS="-g -O2"-  else-    CFLAGS="-g"-  fi-else-  if test "$GCC" = yes; then-    CFLAGS="-O2"-  else-    CFLAGS=-  fi-fi-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }-if test "${ac_cv_prog_cc_c89+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  ac_cv_prog_cc_c89=no-ac_save_CC=$CC-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <stdarg.h>-#include <stdio.h>-#include <sys/types.h>-#include <sys/stat.h>-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */-struct buf { int x; };-FILE * (*rcsopen) (struct buf *, struct stat *, int);-static char *e (p, i)-     char **p;-     int i;-{-  return p[i];-}-static char *f (char * (*g) (char **, int), char **p, ...)-{-  char *s;-  va_list v;-  va_start (v,p);-  s = g (p, va_arg (v,int));-  va_end (v);-  return s;-}--/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has-   function prototypes and stuff, but not '\xHH' hex character constants.-   These don't provoke an error unfortunately, instead are silently treated-   as 'x'.  The following induces an error, until -std is added to get-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an-   array size at least.  It's necessary to write '\x00'==0 to get something-   that's true only with -std.  */-int osf4_cc_array ['\x00' == 0 ? 1 : -1];--/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters-   inside strings and character constants.  */-#define FOO(x) 'x'-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];--int test (int i, double x);-struct s1 {int (*f) (int a);};-struct s2 {int (*f) (double a);};-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);-int argc;-char **argv;-int-main ()-{-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];-  ;-  return 0;-}-_ACEOF-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"-do-  CC="$ac_save_CC $ac_arg"-  rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  ac_cv_prog_cc_c89=$ac_arg-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---fi--rm -f core conftest.err conftest.$ac_objext-  test "x$ac_cv_prog_cc_c89" != "xno" && break-done-rm -f conftest.$ac_ext-CC=$ac_save_CC--fi-# AC_CACHE_VAL-case "x$ac_cv_prog_cc_c89" in-  x)-    { echo "$as_me:$LINENO: result: none needed" >&5-echo "${ECHO_T}none needed" >&6; } ;;-  xno)-    { echo "$as_me:$LINENO: result: unsupported" >&5-echo "${ECHO_T}unsupported" >&6; } ;;-  *)-    CC="$CC $ac_cv_prog_cc_c89"-    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;-esac---ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--ac_aux_dir=-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do-  if test -f "$ac_dir/install-sh"; then-    ac_aux_dir=$ac_dir-    ac_install_sh="$ac_aux_dir/install-sh -c"-    break-  elif test -f "$ac_dir/install.sh"; then-    ac_aux_dir=$ac_dir-    ac_install_sh="$ac_aux_dir/install.sh -c"-    break-  elif test -f "$ac_dir/shtool"; then-    ac_aux_dir=$ac_dir-    ac_install_sh="$ac_aux_dir/shtool install -c"-    break-  fi-done-if test -z "$ac_aux_dir"; then-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5-echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}-   { (exit 1); exit 1; }; }-fi--# These three variables are undocumented and unsupported,-# and are intended to be withdrawn in a future Autoconf release.-# They can cause serious problems if a builder's source tree is in a directory-# whose full name contains unusual characters.-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.---# Find a good install program.  We prefer a C program (faster),-# so one script is as good as another.  But avoid the broken or-# incompatible versions:-# SysV /etc/install, /usr/sbin/install-# SunOS /usr/etc/install-# IRIX /sbin/install-# AIX /bin/install-# AmigaOS /C/install, which installs bootblocks on floppy discs-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag-# AFS /usr/afsws/bin/install, which mishandles nonexistent args-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"-# OS/2's system install, which has a completely different semantic-# ./install, which can be erroneously created by make from ./install.sh.-{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }-if test -z "$INSTALL"; then-if test "${ac_cv_path_install+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  # Account for people who put trailing slashes in PATH elements.-case $as_dir/ in-  ./ | .// | /cC/* | \-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \-  /usr/ucb/* ) ;;-  *)-    # OSF1 and SCO ODT 3.0 have their own names for install.-    # Don't use installbsd from OSF since it installs stuff as root-    # by default.-    for ac_prog in ginstall scoinst install; do-      for ac_exec_ext in '' $ac_executable_extensions; do-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then-	  if test $ac_prog = install &&-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then-	    # AIX install.  It has an incompatible calling convention.-	    :-	  elif test $ac_prog = install &&-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then-	    # program-specific install script used by HP pwplus--don't use.-	    :-	  else-	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"-	    break 3-	  fi-	fi-      done-    done-    ;;-esac-done-IFS=$as_save_IFS---fi-  if test "${ac_cv_path_install+set}" = set; then-    INSTALL=$ac_cv_path_install-  else-    # As a last resort, use the slow shell script.  Don't cache a-    # value for INSTALL within a source directory, because that will-    # break other packages using the cache if that directory is-    # removed, or if the value is a relative name.-    INSTALL=$ac_install_sh-  fi-fi-{ echo "$as_me:$LINENO: result: $INSTALL" >&5-echo "${ECHO_T}$INSTALL" >&6; }--# Use test -z because SunOS4 sh mishandles braces in ${var-val}.-# It thinks the first close brace ends the variable substitution.-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'--test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'--test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'---# Force building 32-bit applications since we're not 64-bit clean.-#-# GCC accepts -m32 on most architectures that might have a corresponding-# 64-bit architecture, for example sparc and MIPS.--old_CFLAGS="$CFLAGS"-CFLAGS="$CFLAGS -m32"--cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */--int-main ()-{-return 1;--  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  :-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	CFLAGS="$old_CFLAGS"--fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext--# Checks for libraries.--# Look for pthreads.-# Make sure we can run config.sub.-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||-  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5-echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}-   { (exit 1); exit 1; }; }--{ echo "$as_me:$LINENO: checking build system type" >&5-echo $ECHO_N "checking build system type... $ECHO_C" >&6; }-if test "${ac_cv_build+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  ac_build_alias=$build_alias-test "x$ac_build_alias" = x &&-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`-test "x$ac_build_alias" = x &&-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}-   { (exit 1); exit 1; }; }-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||-  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}-   { (exit 1); exit 1; }; }--fi-{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5-echo "${ECHO_T}$ac_cv_build" >&6; }-case $ac_cv_build in-*-*-*) ;;-*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5-echo "$as_me: error: invalid value of canonical build" >&2;}-   { (exit 1); exit 1; }; };;-esac-build=$ac_cv_build-ac_save_IFS=$IFS; IFS='-'-set x $ac_cv_build-shift-build_cpu=$1-build_vendor=$2-shift; shift-# Remember, the first character of IFS is used to create $*,-# except with old shells:-build_os=$*-IFS=$ac_save_IFS-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac---{ echo "$as_me:$LINENO: checking host system type" >&5-echo $ECHO_N "checking host system type... $ECHO_C" >&6; }-if test "${ac_cv_host+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if test "x$host_alias" = x; then-  ac_cv_host=$ac_cv_build-else-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||-    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}-   { (exit 1); exit 1; }; }-fi--fi-{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5-echo "${ECHO_T}$ac_cv_host" >&6; }-case $ac_cv_host in-*-*-*) ;;-*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5-echo "$as_me: error: invalid value of canonical host" >&2;}-   { (exit 1); exit 1; }; };;-esac-host=$ac_cv_host-ac_save_IFS=$IFS; IFS='-'-set x $ac_cv_host-shift-host_cpu=$1-host_vendor=$2-shift; shift-# Remember, the first character of IFS is used to create $*,-# except with old shells:-host_os=$*-IFS=$ac_save_IFS-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac------ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--acx_pthread_ok=no--# We used to check for pthread.h first, but this fails if pthread.h-# requires special compiler flags (e.g. on True64 or Sequent).-# It gets checked for in the link test anyway.--# First of all, check if the user has set any of the PTHREAD_LIBS,-# etcetera environment variables, and if threads linking works using-# them:-if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then-        save_CFLAGS="$CFLAGS"-        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"-        save_LIBS="$LIBS"-        LIBS="$PTHREAD_LIBS $LIBS"-        { echo "$as_me:$LINENO: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5-echo $ECHO_N "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... $ECHO_C" >&6; }-        cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */--/* Override any GCC internal prototype to avoid an error.-   Use char because int might match the return type of a GCC-   builtin and then its argument prototype would still apply.  */-#ifdef __cplusplus-extern "C"-#endif-char pthread_join ();-int-main ()-{-return pthread_join ();-  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_link") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest$ac_exeext &&-       $as_test_x conftest$ac_exeext; then-  acx_pthread_ok=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \-      conftest$ac_exeext conftest.$ac_ext-        { echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5-echo "${ECHO_T}$acx_pthread_ok" >&6; }-        if test x"$acx_pthread_ok" = xno; then-                PTHREAD_LIBS=""-                PTHREAD_CFLAGS=""-        fi-        LIBS="$save_LIBS"-        CFLAGS="$save_CFLAGS"-fi--# We must check for the threads library under a number of different-# names; the ordering is very important because some systems-# (e.g. DEC) have both -lpthread and -lpthreads, where one of the-# libraries is broken (non-POSIX).--# Create a list of thread flags to try.  Items starting with a "-" are-# C compiler flags, and other items are library names, except for "none"-# which indicates that we try without any flags at all, and "pthread-config"-# which is a program returning the flags for the Pth emulation library.--acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"--# The ordering *is* (sometimes) important.  Some notes on the-# individual items follow:--# pthreads: AIX (must check this before -lpthread)-# none: in case threads are in libc; should be tried before -Kthread and-#       other compiler flags to prevent continual compiler warnings-# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)-# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)-# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)-# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)-# -pthreads: Solaris/gcc-# -mthreads: Mingw32/gcc, Lynx/gcc-# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it-#      doesn't hurt to check since this sometimes defines pthreads too;-#      also defines -D_REENTRANT)-#      ... -mt is also the pthreads flag for HP/aCC-# pthread: Linux, etcetera-# --thread-safe: KAI C++-# pthread-config: use pthread-config program (for GNU Pth library)--case "${host_cpu}-${host_os}" in-        *solaris*)--        # On Solaris (at least, for some versions), libc contains stubbed-        # (non-functional) versions of the pthreads routines, so link-based-        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/-        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather-        # a function called by this macro, so we could check for that, but-        # who knows whether they'll stub that too in a future libc.)  So,-        # we'll just look for -pthreads and -lpthread first:--        acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags"-        ;;-esac--if test x"$acx_pthread_ok" = xno; then-for flag in $acx_pthread_flags; do--        case $flag in-                none)-                { echo "$as_me:$LINENO: checking whether pthreads work without any flags" >&5-echo $ECHO_N "checking whether pthreads work without any flags... $ECHO_C" >&6; }-                ;;--                -*)-                { echo "$as_me:$LINENO: checking whether pthreads work with $flag" >&5-echo $ECHO_N "checking whether pthreads work with $flag... $ECHO_C" >&6; }-                PTHREAD_CFLAGS="$flag"-                ;;--		pthread-config)-		# Extract the first word of "pthread-config", so it can be a program name with args.-set dummy pthread-config; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_acx_pthread_config+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if test -n "$acx_pthread_config"; then-  ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  for ac_exec_ext in '' $ac_executable_extensions; do-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then-    ac_cv_prog_acx_pthread_config="yes"-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-done-IFS=$as_save_IFS--  test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no"-fi-fi-acx_pthread_config=$ac_cv_prog_acx_pthread_config-if test -n "$acx_pthread_config"; then-  { echo "$as_me:$LINENO: result: $acx_pthread_config" >&5-echo "${ECHO_T}$acx_pthread_config" >&6; }-else-  { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi---		if test x"$acx_pthread_config" = xno; then continue; fi-		PTHREAD_CFLAGS="`pthread-config --cflags`"-		PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"-		;;--                *)-                { echo "$as_me:$LINENO: checking for the pthreads library -l$flag" >&5-echo $ECHO_N "checking for the pthreads library -l$flag... $ECHO_C" >&6; }-                PTHREAD_LIBS="-l$flag"-                ;;-        esac--        save_LIBS="$LIBS"-        save_CFLAGS="$CFLAGS"-        LIBS="$PTHREAD_LIBS $LIBS"-        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"--        # Check for various functions.  We must include pthread.h,-        # since some functions may be macros.  (On the Sequent, we-        # need a special flag -Kthread to make this header compile.)-        # We check for pthread_join because it is in -lpthread on IRIX-        # while pthread_create is in libc.  We check for pthread_attr_init-        # due to DEC craziness with -lpthreads.  We check for-        # pthread_cleanup_push because it is one of the few pthread-        # functions on Solaris that doesn't have a non-functional libc stub.-        # We try pthread_create on general principles.-        cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <pthread.h>-int-main ()-{-pthread_t th; pthread_join(th, 0);-                     pthread_attr_init(0); pthread_cleanup_push(0, 0);-                     pthread_create(0,0,0,0); pthread_cleanup_pop(0);-  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_link") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest$ac_exeext &&-       $as_test_x conftest$ac_exeext; then-  acx_pthread_ok=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \-      conftest$ac_exeext conftest.$ac_ext--        LIBS="$save_LIBS"-        CFLAGS="$save_CFLAGS"--        { echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5-echo "${ECHO_T}$acx_pthread_ok" >&6; }-        if test "x$acx_pthread_ok" = xyes; then-                break;-        fi--        PTHREAD_LIBS=""-        PTHREAD_CFLAGS=""-done-fi--# Various other checks:-if test "x$acx_pthread_ok" = xyes; then-        save_LIBS="$LIBS"-        LIBS="$PTHREAD_LIBS $LIBS"-        save_CFLAGS="$CFLAGS"-        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"--        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.-	{ echo "$as_me:$LINENO: checking for joinable pthread attribute" >&5-echo $ECHO_N "checking for joinable pthread attribute... $ECHO_C" >&6; }-	attr_name=unknown-	for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do-	    cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <pthread.h>-int-main ()-{-int attr=$attr; return attr;-  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_link") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest$ac_exeext &&-       $as_test_x conftest$ac_exeext; then-  attr_name=$attr; break-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \-      conftest$ac_exeext conftest.$ac_ext-	done-        { echo "$as_me:$LINENO: result: $attr_name" >&5-echo "${ECHO_T}$attr_name" >&6; }-        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then--cat >>confdefs.h <<_ACEOF-#define PTHREAD_CREATE_JOINABLE $attr_name-_ACEOF--        fi--        { echo "$as_me:$LINENO: checking if more special flags are required for pthreads" >&5-echo $ECHO_N "checking if more special flags are required for pthreads... $ECHO_C" >&6; }-        flag=no-        case "${host_cpu}-${host_os}" in-            *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;-            *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;-        esac-        { echo "$as_me:$LINENO: result: ${flag}" >&5-echo "${ECHO_T}${flag}" >&6; }-        if test "x$flag" != xno; then-            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"-        fi--        LIBS="$save_LIBS"-        CFLAGS="$save_CFLAGS"--        # More AIX lossage: must compile with xlc_r or cc_r-	if test x"$GCC" != xyes; then-          for ac_prog in xlc_r cc_r-do-  # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if test -n "$PTHREAD_CC"; then-  ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  for ac_exec_ext in '' $ac_executable_extensions; do-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then-    ac_cv_prog_PTHREAD_CC="$ac_prog"-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-done-IFS=$as_save_IFS--fi-fi-PTHREAD_CC=$ac_cv_prog_PTHREAD_CC-if test -n "$PTHREAD_CC"; then-  { echo "$as_me:$LINENO: result: $PTHREAD_CC" >&5-echo "${ECHO_T}$PTHREAD_CC" >&6; }-else-  { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi---  test -n "$PTHREAD_CC" && break-done-test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}"--        else-          PTHREAD_CC=$CC-	fi-else-        PTHREAD_CC="$CC"-fi------# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:-if test x"$acx_pthread_ok" = xyes; then--cat >>confdefs.h <<\_ACEOF-#define HAVE_PTHREAD 1-_ACEOF--        :-else-        acx_pthread_ok=no--fi-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu----if test "$THREAD_SUPPORT" = "no"; then-	{ { echo "$as_me:$LINENO: error: Cannot enable threads on this platform." >&5-echo "$as_me: error: Cannot enable threads on this platform." >&2;}-   { (exit 1); exit 1; }; }-fi--CC="$PTHREAD_CC"-CFLAGS="$CFLAGS $PTHREAD_CFLAGS"-LIBS="$PTHREAD_LIBS $LIBS"--# Make sure that pthread realtime-threads extension is available. This is-# not the default behaviour on most GNU/Linux dists. If it turns out that-# the realtime-threads extension is not available we add -D_GNU_SOURCE=1-# as this should enable all extensions on most GNU/Linux dists. For more-# information please see <features.h>.-{ echo "$as_me:$LINENO: checking pthread realtime-threads extension" >&5-echo $ECHO_N "checking pthread realtime-threads extension... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <pthread.h>-int-main ()-{-pthread_mutexattr_setprotocol(NULL, PTHREAD_PRIO_INHERIT);--  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  need_gnu_source=no-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	need_gnu_source=yes--fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext--if test "x$need_gnu_source" = "xyes"; then-	CFLAGS="$CFLAGS -D_GNU_SOURCE=1"-fi--# Finalize the checking for pthread realtime-threads extension. This may-# still fail if -D_GNU_SOURCE=1 does not enable the realtime-threads-# extension. I this is the case then we are either running this on a-# system without the realtime-threads extension or we need to perform some-# other kind of black magic to enable it. If you know of any such platform-# then please feel free to send a patch.-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <pthread.h>-int-main ()-{-pthread_mutexattr_setprotocol(NULL, PTHREAD_PRIO_INHERIT);--  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  { echo "$as_me:$LINENO: result: yes" >&5-echo "${ECHO_T}yes" >&6; }-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	{ { echo "$as_me:$LINENO: error: no-See \`config.log' for more details." >&5-echo "$as_me: error: no-See \`config.log' for more details." >&2;}-   { (exit 1); exit 1; }; }--fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext---# Check whether --with-timberc was given.-if test "${with_timberc+set}" = set; then-  withval=$with_timberc; with_timberc=$withval--fi---if test "x$with_timberc" = "x"; then-	for ac_prog in timberc-do-  # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_TIMBERC+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if test -n "$TIMBERC"; then-  ac_cv_prog_TIMBERC="$TIMBERC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  for ac_exec_ext in '' $ac_executable_extensions; do-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then-    ac_cv_prog_TIMBERC="$ac_prog"-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5-    break 2-  fi-done-done-IFS=$as_save_IFS--fi-fi-TIMBERC=$ac_cv_prog_TIMBERC-if test -n "$TIMBERC"; then-  { echo "$as_me:$LINENO: result: $TIMBERC" >&5-echo "${ECHO_T}$TIMBERC" >&6; }-else-  { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi---  test -n "$TIMBERC" && break-done--else-	TIMBERC="$with_timberc"-fi--if test "x$TIMBERC" = "x"; then-	{ { echo "$as_me:$LINENO: error: Timberc not found." >&5-echo "$as_me: error: Timberc not found." >&2;}-   { (exit 1); exit 1; }; }-fi--# Checks for header files.-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }-# On Suns, sometimes $CPP names a directory.-if test -n "$CPP" && test -d "$CPP"; then-  CPP=-fi-if test -z "$CPP"; then-  if test "${ac_cv_prog_CPP+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-      # Double quotes because CPP needs to be expanded-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"-    do-      ac_preproc_ok=false-for ac_c_preproc_warn_flag in '' yes-do-  # Use a header file that comes with gcc, so configuring glibc-  # with a fresh cross-compiler works.-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since-  # <limits.h> exists even on freestanding compilers.-  # On the NeXT, cc -E runs the code through the compiler's parser,-  # not just through cpp. "Syntax error" is here to catch this case.-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#ifdef __STDC__-# include <limits.h>-#else-# include <assert.h>-#endif-		     Syntax error-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } >/dev/null && {-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||-	 test ! -s conftest.err-       }; then-  :-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--  # Broken: fails on valid input.-continue-fi--rm -f conftest.err conftest.$ac_ext--  # OK, works on sane cases.  Now check whether nonexistent headers-  # can be detected and how.-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <ac_nonexistent.h>-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } >/dev/null && {-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||-	 test ! -s conftest.err-       }; then-  # Broken: success on invalid input.-continue-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--  # Passes both tests.-ac_preproc_ok=:-break-fi--rm -f conftest.err conftest.$ac_ext--done-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.-rm -f conftest.err conftest.$ac_ext-if $ac_preproc_ok; then-  break-fi--    done-    ac_cv_prog_CPP=$CPP--fi-  CPP=$ac_cv_prog_CPP-else-  ac_cv_prog_CPP=$CPP-fi-{ echo "$as_me:$LINENO: result: $CPP" >&5-echo "${ECHO_T}$CPP" >&6; }-ac_preproc_ok=false-for ac_c_preproc_warn_flag in '' yes-do-  # Use a header file that comes with gcc, so configuring glibc-  # with a fresh cross-compiler works.-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since-  # <limits.h> exists even on freestanding compilers.-  # On the NeXT, cc -E runs the code through the compiler's parser,-  # not just through cpp. "Syntax error" is here to catch this case.-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#ifdef __STDC__-# include <limits.h>-#else-# include <assert.h>-#endif-		     Syntax error-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } >/dev/null && {-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||-	 test ! -s conftest.err-       }; then-  :-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--  # Broken: fails on valid input.-continue-fi--rm -f conftest.err conftest.$ac_ext--  # OK, works on sane cases.  Now check whether nonexistent headers-  # can be detected and how.-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <ac_nonexistent.h>-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } >/dev/null && {-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||-	 test ! -s conftest.err-       }; then-  # Broken: success on invalid input.-continue-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--  # Passes both tests.-ac_preproc_ok=:-break-fi--rm -f conftest.err conftest.$ac_ext--done-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.-rm -f conftest.err conftest.$ac_ext-if $ac_preproc_ok; then-  :-else-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check-See \`config.log' for more details." >&5-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check-See \`config.log' for more details." >&2;}-   { (exit 1); exit 1; }; }-fi--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5-echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }-if test "${ac_cv_path_GREP+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  # Extract the first word of "grep ggrep" to use in msg output-if test -z "$GREP"; then-set dummy grep ggrep; ac_prog_name=$2-if test "${ac_cv_path_GREP+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  ac_path_GREP_found=false-# Loop through the user's path and test for each of PROGNAME-LIST-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  for ac_prog in grep ggrep; do-  for ac_exec_ext in '' $ac_executable_extensions; do-    ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"-    { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue-    # Check for GNU ac_path_GREP and select it if it is found.-  # Check for GNU $ac_path_GREP-case `"$ac_path_GREP" --version 2>&1` in-*GNU*)-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;-*)-  ac_count=0-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"-  while :-  do-    cat "conftest.in" "conftest.in" >"conftest.tmp"-    mv "conftest.tmp" "conftest.in"-    cp "conftest.in" "conftest.nl"-    echo 'GREP' >> "conftest.nl"-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break-    ac_count=`expr $ac_count + 1`-    if test $ac_count -gt ${ac_path_GREP_max-0}; then-      # Best one so far, save it but keep looking for a better one-      ac_cv_path_GREP="$ac_path_GREP"-      ac_path_GREP_max=$ac_count-    fi-    # 10*(2^10) chars as input seems more than enough-    test $ac_count -gt 10 && break-  done-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac---    $ac_path_GREP_found && break 3-  done-done--done-IFS=$as_save_IFS---fi--GREP="$ac_cv_path_GREP"-if test -z "$GREP"; then-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}-   { (exit 1); exit 1; }; }-fi--else-  ac_cv_path_GREP=$GREP-fi---fi-{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5-echo "${ECHO_T}$ac_cv_path_GREP" >&6; }- GREP="$ac_cv_path_GREP"---{ echo "$as_me:$LINENO: checking for egrep" >&5-echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }-if test "${ac_cv_path_EGREP+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1-   then ac_cv_path_EGREP="$GREP -E"-   else-     # Extract the first word of "egrep" to use in msg output-if test -z "$EGREP"; then-set dummy egrep; ac_prog_name=$2-if test "${ac_cv_path_EGREP+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  ac_path_EGREP_found=false-# Loop through the user's path and test for each of PROGNAME-LIST-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  for ac_prog in egrep; do-  for ac_exec_ext in '' $ac_executable_extensions; do-    ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"-    { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue-    # Check for GNU ac_path_EGREP and select it if it is found.-  # Check for GNU $ac_path_EGREP-case `"$ac_path_EGREP" --version 2>&1` in-*GNU*)-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;-*)-  ac_count=0-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"-  while :-  do-    cat "conftest.in" "conftest.in" >"conftest.tmp"-    mv "conftest.tmp" "conftest.in"-    cp "conftest.in" "conftest.nl"-    echo 'EGREP' >> "conftest.nl"-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break-    ac_count=`expr $ac_count + 1`-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then-      # Best one so far, save it but keep looking for a better one-      ac_cv_path_EGREP="$ac_path_EGREP"-      ac_path_EGREP_max=$ac_count-    fi-    # 10*(2^10) chars as input seems more than enough-    test $ac_count -gt 10 && break-  done-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac---    $ac_path_EGREP_found && break 3-  done-done--done-IFS=$as_save_IFS---fi--EGREP="$ac_cv_path_EGREP"-if test -z "$EGREP"; then-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}-   { (exit 1); exit 1; }; }-fi--else-  ac_cv_path_EGREP=$EGREP-fi---   fi-fi-{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5-echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }- EGREP="$ac_cv_path_EGREP"---{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }-if test "${ac_cv_header_stdc+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <stdlib.h>-#include <stdarg.h>-#include <string.h>-#include <float.h>--int-main ()-{--  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  ac_cv_header_stdc=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	ac_cv_header_stdc=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext--if test $ac_cv_header_stdc = yes; then-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <string.h>--_ACEOF-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |-  $EGREP "memchr" >/dev/null 2>&1; then-  :-else-  ac_cv_header_stdc=no-fi-rm -f conftest*--fi--if test $ac_cv_header_stdc = yes; then-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <stdlib.h>--_ACEOF-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |-  $EGREP "free" >/dev/null 2>&1; then-  :-else-  ac_cv_header_stdc=no-fi-rm -f conftest*--fi--if test $ac_cv_header_stdc = yes; then-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.-  if test "$cross_compiling" = yes; then-  :-else-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <ctype.h>-#include <stdlib.h>-#if ((' ' & 0x0FF) == 0x020)-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))-#else-# define ISLOWER(c) \-		   (('a' <= (c) && (c) <= 'i') \-		     || ('j' <= (c) && (c) <= 'r') \-		     || ('s' <= (c) && (c) <= 'z'))-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))-#endif--#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))-int-main ()-{-  int i;-  for (i = 0; i < 256; i++)-    if (XOR (islower (i), ISLOWER (i))-	|| toupper (i) != TOUPPER (i))-      return 2;-  return 0;-}-_ACEOF-rm -f conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_link") 2>&5-  ac_status=$?-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'-  { (case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_try") 2>&5-  ac_status=$?-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); }; }; then-  :-else-  echo "$as_me: program exited with status $ac_status" >&5-echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--( exit $ac_status )-ac_cv_header_stdc=no-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext-fi---fi-fi-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }-if test $ac_cv_header_stdc = yes; then--cat >>confdefs.h <<\_ACEOF-#define STDC_HEADERS 1-_ACEOF--fi--# On IRIX 5.3, sys/types and inttypes.h are conflicting.----------for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \-		  inttypes.h stdint.h unistd.h-do-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`-{ echo "$as_me:$LINENO: checking for $ac_header" >&5-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-$ac_includes_default--#include <$ac_header>-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  eval "$as_ac_Header=yes"-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	eval "$as_ac_Header=no"-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-ac_res=`eval echo '${'$as_ac_Header'}'`-	       { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }-if test `eval echo '${'$as_ac_Header'}'` = yes; then-  cat >>confdefs.h <<_ACEOF-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1-_ACEOF--fi--done------for ac_header in stdlib.h sys/time.h termios.h-do-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then-  { echo "$as_me:$LINENO: checking for $ac_header" >&5-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-fi-ac_res=`eval echo '${'$as_ac_Header'}'`-	       { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }-else-  # Is the header compilable?-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-$ac_includes_default-#include <$ac_header>-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  ac_header_compiler=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	ac_header_compiler=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5-echo "${ECHO_T}$ac_header_compiler" >&6; }--# Is the header present?-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <$ac_header>-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } >/dev/null && {-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||-	 test ! -s conftest.err-       }; then-  ac_header_preproc=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--  ac_header_preproc=no-fi--rm -f conftest.err conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5-echo "${ECHO_T}$ac_header_preproc" >&6; }--# So?  What about this header?-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in-  yes:no: )-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}-    ac_header_preproc=yes-    ;;-  no:yes:* )-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}-    ( cat <<\_ASBOX-## ----------------------------------- ##-## Report this to nordland@csee.ltu.se ##-## ----------------------------------- ##-_ASBOX-     ) | sed "s/^/$as_me: WARNING:     /" >&2-    ;;-esac-{ echo "$as_me:$LINENO: checking for $ac_header" >&5-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  eval "$as_ac_Header=\$ac_header_preproc"-fi-ac_res=`eval echo '${'$as_ac_Header'}'`-	       { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }--fi-if test `eval echo '${'$as_ac_Header'}'` = yes; then-  cat >>confdefs.h <<_ACEOF-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1-_ACEOF--fi--done---if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then-  { echo "$as_me:$LINENO: checking for libkern/OSAtomic.h" >&5-echo $ECHO_N "checking for libkern/OSAtomic.h... $ECHO_C" >&6; }-if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-fi-{ echo "$as_me:$LINENO: result: $ac_cv_header_libkern_OSAtomic_h" >&5-echo "${ECHO_T}$ac_cv_header_libkern_OSAtomic_h" >&6; }-else-  # Is the header compilable?-{ echo "$as_me:$LINENO: checking libkern/OSAtomic.h usability" >&5-echo $ECHO_N "checking libkern/OSAtomic.h usability... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-$ac_includes_default-#include <libkern/OSAtomic.h>-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  ac_header_compiler=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	ac_header_compiler=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5-echo "${ECHO_T}$ac_header_compiler" >&6; }--# Is the header present?-{ echo "$as_me:$LINENO: checking libkern/OSAtomic.h presence" >&5-echo $ECHO_N "checking libkern/OSAtomic.h presence... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <libkern/OSAtomic.h>-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } >/dev/null && {-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||-	 test ! -s conftest.err-       }; then-  ac_header_preproc=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--  ac_header_preproc=no-fi--rm -f conftest.err conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5-echo "${ECHO_T}$ac_header_preproc" >&6; }--# So?  What about this header?-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in-  yes:no: )-    { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: accepted by the compiler, rejected by the preprocessor!" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: accepted by the compiler, rejected by the preprocessor!" >&2;}-    { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: proceeding with the compiler's result" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: proceeding with the compiler's result" >&2;}-    ac_header_preproc=yes-    ;;-  no:yes:* )-    { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: present but cannot be compiled" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: present but cannot be compiled" >&2;}-    { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h:     check for missing prerequisite headers?" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h:     check for missing prerequisite headers?" >&2;}-    { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: see the Autoconf documentation" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: see the Autoconf documentation" >&2;}-    { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h:     section \"Present But Cannot Be Compiled\"" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h:     section \"Present But Cannot Be Compiled\"" >&2;}-    { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: proceeding with the preprocessor's result" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: proceeding with the preprocessor's result" >&2;}-    { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: in the future, the compiler will take precedence" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: in the future, the compiler will take precedence" >&2;}-    ( cat <<\_ASBOX-## ----------------------------------- ##-## Report this to nordland@csee.ltu.se ##-## ----------------------------------- ##-_ASBOX-     ) | sed "s/^/$as_me: WARNING:     /" >&2-    ;;-esac-{ echo "$as_me:$LINENO: checking for libkern/OSAtomic.h" >&5-echo $ECHO_N "checking for libkern/OSAtomic.h... $ECHO_C" >&6; }-if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  ac_cv_header_libkern_OSAtomic_h=$ac_header_preproc-fi-{ echo "$as_me:$LINENO: result: $ac_cv_header_libkern_OSAtomic_h" >&5-echo "${ECHO_T}$ac_cv_header_libkern_OSAtomic_h" >&6; }--fi-if test $ac_cv_header_libkern_OSAtomic_h = yes; then--cat >>confdefs.h <<_ACEOF-#define HAVE_OSX_ATOMICS 1-_ACEOF--fi----# Check the <sys/stat.h> header for XSI extensions. This should already be-# enable by -D_GNU_SOURCE=1, if it's supported.-# NOTE:-#   While it might be possible for the compiler to optimize away the int xsi-#   statement I'm not up for the challenge of writing something that is-#   _impossible_ for the compiler to optimize away.-{ echo "$as_me:$LINENO: checking sys/stat.h header for XSI extensions" >&5-echo $ECHO_N "checking sys/stat.h header for XSI extensions... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <sys/stat.h>-int-main ()-{-mode_t mode_xsi = S_IWUSR|S_IRUSR|S_IRGRP|S_IROTH;--  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  { echo "$as_me:$LINENO: result: yes" >&5-echo "${ECHO_T}yes" >&6; }-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	{ { echo "$as_me:$LINENO: error: no-See \`config.log' for more details." >&5-echo "$as_me: error: no-See \`config.log' for more details." >&2;}-   { (exit 1); exit 1; }; }--fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext--# Does this compiler have built-in functions for atomic memory access?-{ echo "$as_me:$LINENO: checking if gcc supports __sync_bool_compare_and_swap" >&5-echo $ECHO_N "checking if gcc supports __sync_bool_compare_and_swap... $ECHO_C" >&6; }--cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */--int-main ()-{--  int variable = 1;-  return (__sync_bool_compare_and_swap(&variable, 1, 2)-         && __sync_add_and_fetch(&variable, 1)) ? 1 : 0;--  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_link") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest$ac_exeext &&-       $as_test_x conftest$ac_exeext; then--  { echo "$as_me:$LINENO: result: yes" >&5-echo "${ECHO_T}yes" >&6; }--cat >>confdefs.h <<\_ACEOF-#define HAVE_BUILTIN_ATOMIC 1-_ACEOF---else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---  # Retry with -march set for x86.-  old_CFLAGS="$CFLAGS"-  CFLAGS="$CFLAGS -march=i686"-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */--int-main ()-{--    int variable = 1;-    return (__sync_bool_compare_and_swap(&variable, 1, 2)-           && __sync_add_and_fetch(&variable, 1)) ? 1 : 0;--  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_link") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest$ac_exeext &&-       $as_test_x conftest$ac_exeext; then--    { echo "$as_me:$LINENO: result: yes" >&5-echo "${ECHO_T}yes" >&6; }--cat >>confdefs.h <<\_ACEOF-#define HAVE_BUILTIN_ATOMIC 1-_ACEOF---else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---    { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-    CFLAGS="$old_CFLAGS"--fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \-      conftest$ac_exeext conftest.$ac_ext--fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \-      conftest$ac_exeext conftest.$ac_ext--# Checks for typedefs, structures, and compiler characteristics.-{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5-echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; }-if test "${ac_cv_header_time+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <sys/types.h>-#include <sys/time.h>-#include <time.h>--int-main ()-{-if ((struct tm *) 0)-return 0;-  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  ac_cv_header_time=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	ac_cv_header_time=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5-echo "${ECHO_T}$ac_cv_header_time" >&6; }-if test $ac_cv_header_time = yes; then--cat >>confdefs.h <<\_ACEOF-#define TIME_WITH_SYS_TIME 1-_ACEOF--fi---# Look for the timber compiler--# Checks for library functions.--for ac_header in stdlib.h-do-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then-  { echo "$as_me:$LINENO: checking for $ac_header" >&5-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-fi-ac_res=`eval echo '${'$as_ac_Header'}'`-	       { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }-else-  # Is the header compilable?-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-$ac_includes_default-#include <$ac_header>-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_compile") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest.$ac_objext; then-  ac_header_compiler=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	ac_header_compiler=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5-echo "${ECHO_T}$ac_header_compiler" >&6; }--# Is the header present?-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#include <$ac_header>-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } >/dev/null && {-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||-	 test ! -s conftest.err-       }; then-  ac_header_preproc=yes-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--  ac_header_preproc=no-fi--rm -f conftest.err conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5-echo "${ECHO_T}$ac_header_preproc" >&6; }--# So?  What about this header?-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in-  yes:no: )-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}-    ac_header_preproc=yes-    ;;-  no:yes:* )-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}-    ( cat <<\_ASBOX-## ----------------------------------- ##-## Report this to nordland@csee.ltu.se ##-## ----------------------------------- ##-_ASBOX-     ) | sed "s/^/$as_me: WARNING:     /" >&2-    ;;-esac-{ echo "$as_me:$LINENO: checking for $ac_header" >&5-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  eval "$as_ac_Header=\$ac_header_preproc"-fi-ac_res=`eval echo '${'$as_ac_Header'}'`-	       { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }--fi-if test `eval echo '${'$as_ac_Header'}'` = yes; then-  cat >>confdefs.h <<_ACEOF-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1-_ACEOF--fi--done--{ echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5-echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; }-if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  if test "$cross_compiling" = yes; then-  ac_cv_func_malloc_0_nonnull=no-else-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-#if defined STDC_HEADERS || defined HAVE_STDLIB_H-# include <stdlib.h>-#else-char *malloc ();-#endif--int-main ()-{-return ! malloc (0);-  ;-  return 0;-}-_ACEOF-rm -f conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_link") 2>&5-  ac_status=$?-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'-  { (case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_try") 2>&5-  ac_status=$?-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); }; }; then-  ac_cv_func_malloc_0_nonnull=yes-else-  echo "$as_me: program exited with status $ac_status" >&5-echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--( exit $ac_status )-ac_cv_func_malloc_0_nonnull=no-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext-fi---fi-{ echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5-echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; }-if test $ac_cv_func_malloc_0_nonnull = yes; then--cat >>confdefs.h <<\_ACEOF-#define HAVE_MALLOC 1-_ACEOF--else-  cat >>confdefs.h <<\_ACEOF-#define HAVE_MALLOC 0-_ACEOF--   case " $LIBOBJS " in-  *" malloc.$ac_objext "* ) ;;-  *) LIBOBJS="$LIBOBJS malloc.$ac_objext"- ;;-esac---cat >>confdefs.h <<\_ACEOF-#define malloc rpl_malloc-_ACEOF--fi-----for ac_func in gettimeofday-do-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`-{ echo "$as_me:$LINENO: checking for $ac_func" >&5-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then-  echo $ECHO_N "(cached) $ECHO_C" >&6-else-  cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h.  */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h.  */-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */-#define $ac_func innocuous_$ac_func--/* System header to define __stub macros and hopefully few prototypes,-    which can conflict with char $ac_func (); below.-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since-    <limits.h> exists even on freestanding compilers.  */--#ifdef __STDC__-# include <limits.h>-#else-# include <assert.h>-#endif--#undef $ac_func--/* Override any GCC internal prototype to avoid an error.-   Use char because int might match the return type of a GCC-   builtin and then its argument prototype would still apply.  */-#ifdef __cplusplus-extern "C"-#endif-char $ac_func ();-/* The GNU C library defines this for functions which it implements-    to always fail with ENOSYS.  Some functions are actually named-    something starting with __ and the normal name is an alias.  */-#if defined __stub_$ac_func || defined __stub___$ac_func-choke me-#endif--int-main ()-{-return $ac_func ();-  ;-  return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;-  *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5-  (eval "$ac_link") 2>conftest.er1-  ac_status=$?-  grep -v '^ *+' conftest.er1 >conftest.err-  rm -f conftest.er1-  cat conftest.err >&5-  echo "$as_me:$LINENO: \$? = $ac_status" >&5-  (exit $ac_status); } && {-	 test -z "$ac_c_werror_flag" ||-	 test ! -s conftest.err-       } && test -s conftest$ac_exeext &&-       $as_test_x conftest$ac_exeext; then-  eval "$as_ac_var=yes"-else-  echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--	eval "$as_ac_var=no"-fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \-      conftest$ac_exeext conftest.$ac_ext-fi-ac_res=`eval echo '${'$as_ac_var'}'`-	       { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }-if test `eval echo '${'$as_ac_var'}'` = yes; then-  cat >>confdefs.h <<_ACEOF-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1-_ACEOF--fi-done-----------ac_config_files="$ac_config_files Makefile timberc.cfg"--cat >confcache <<\_ACEOF-# This file is a shell script that caches the results of configure-# tests run on this system so they can be shared between configure-# scripts and configure runs, see configure's option --config-cache.-# It is not useful on other systems.  If it contains results you don't-# want to keep, you may remove or edit it.-#-# config.status only pays attention to the cache file if you give it-# the --recheck option to rerun configure.-#-# `ac_cv_env_foo' variables (set or unset) will be overridden when-# loading this file, other *unset* `ac_cv_foo' will be assigned the-# following values.--_ACEOF--# The following way of writing the cache mishandles newlines in values,-# but we know of no workaround that is simple, portable, and efficient.-# So, we kill variables containing newlines.-# Ultrix sh set writes to stderr and can't be redirected directly,-# and sets the high bit in the cache file unless we assign to the vars.-(-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do-    eval ac_val=\$$ac_var-    case $ac_val in #(-    *${as_nl}*)-      case $ac_var in #(-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;-      esac-      case $ac_var in #(-      _ | IFS | as_nl) ;; #(-      *) $as_unset $ac_var ;;-      esac ;;-    esac-  done--  (set) 2>&1 |-    case $as_nl`(ac_space=' '; set) 2>&1` in #(-    *${as_nl}ac_space=\ *)-      # `set' does not quote correctly, so add quotes (double-quote-      # substitution turns \\\\ into \\, and sed turns \\ into \).-      sed -n \-	"s/'/'\\\\''/g;-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"-      ;; #(-    *)-      # `set' quotes correctly as required by POSIX, so do not add quotes.-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"-      ;;-    esac |-    sort-) |-  sed '-     /^ac_cv_env_/b end-     t clear-     :clear-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/-     t end-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/-     :end' >>confcache-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else-  if test -w "$cache_file"; then-    test "x$cache_file" != "x/dev/null" &&-      { echo "$as_me:$LINENO: updating cache $cache_file" >&5-echo "$as_me: updating cache $cache_file" >&6;}-    cat confcache >$cache_file-  else-    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5-echo "$as_me: not updating unwritable cache $cache_file" >&6;}-  fi-fi-rm -f confcache--test "x$prefix" = xNONE && prefix=$ac_default_prefix-# Let make expand exec_prefix.-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'--DEFS=-DHAVE_CONFIG_H--ac_libobjs=-ac_ltlibobjs=-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue-  # 1. Remove the extension, and $U if already installed.-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'-  ac_i=`echo "$ac_i" | sed "$ac_script"`-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR-  #    will be set to the directory where LIBOBJS objects are built.-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'-done-LIBOBJS=$ac_libobjs--LTLIBOBJS=$ac_ltlibobjs----: ${CONFIG_STATUS=./config.status}-ac_clean_files_save=$ac_clean_files-ac_clean_files="$ac_clean_files $CONFIG_STATUS"-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5-echo "$as_me: creating $CONFIG_STATUS" >&6;}-cat >$CONFIG_STATUS <<_ACEOF-#! $SHELL-# Generated by $as_me.-# Run this file to recreate the current configuration.-# Compiler output produced by configure, useful for debugging-# configure, is in config.log if it exists.--debug=false-ac_cs_recheck=false-ac_cs_silent=false-SHELL=\${CONFIG_SHELL-$SHELL}-_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF-## --------------------- ##-## M4sh Initialization.  ##-## --------------------- ##--# Be more Bourne compatible-DUALCASE=1; export DUALCASE # for MKS sh-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then-  emulate sh-  NULLCMD=:-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which-  # is contrary to our usage.  Disable this feature.-  alias -g '${1+"$@"}'='"$@"'-  setopt NO_GLOB_SUBST-else-  case `(set -o) 2>/dev/null` in-  *posix*) set -o posix ;;-esac--fi-----# PATH needs CR-# Avoid depending upon Character Ranges.-as_cr_letters='abcdefghijklmnopqrstuvwxyz'-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'-as_cr_Letters=$as_cr_letters$as_cr_LETTERS-as_cr_digits='0123456789'-as_cr_alnum=$as_cr_Letters$as_cr_digits--# The user is always right.-if test "${PATH_SEPARATOR+set}" != set; then-  echo "#! /bin/sh" >conf$$.sh-  echo  "exit 0"   >>conf$$.sh-  chmod +x conf$$.sh-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then-    PATH_SEPARATOR=';'-  else-    PATH_SEPARATOR=:-  fi-  rm -f conf$$.sh-fi--# Support unset when possible.-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then-  as_unset=unset-else-  as_unset=false-fi---# IFS-# We need space, tab and new line, in precisely that order.  Quoting is-# there to prevent editors from complaining about space-tab.-# (If _AS_PATH_WALK were called with IFS unset, it would disable word-# splitting by setting IFS to empty value.)-as_nl='-'-IFS=" ""	$as_nl"--# Find who we are.  Look in the path if we contain no directory separator.-case $0 in-  *[\\/]* ) as_myself=$0 ;;-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do-  IFS=$as_save_IFS-  test -z "$as_dir" && as_dir=.-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break-done-IFS=$as_save_IFS--     ;;-esac-# We did not find ourselves, most probably we were run as `sh COMMAND'-# in which case we are not to be found in the path.-if test "x$as_myself" = x; then-  as_myself=$0-fi-if test ! -f "$as_myself"; then-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2-  { (exit 1); exit 1; }-fi--# Work around bugs in pre-3.0 UWIN ksh.-for as_var in ENV MAIL MAILPATH-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var-done-PS1='$ '-PS2='> '-PS4='+ '--# NLS nuisances.-for as_var in \-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \-  LC_TELEPHONE LC_TIME-do-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then-    eval $as_var=C; export $as_var-  else-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var-  fi-done--# Required to use basename.-if expr a : '\(a\)' >/dev/null 2>&1 &&-   test "X`expr 00001 : '.*\(...\)'`" = X001; then-  as_expr=expr-else-  as_expr=false-fi--if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then-  as_basename=basename-else-  as_basename=false-fi---# Name of the executable.-as_me=`$as_basename -- "$0" ||-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \-	 X"$0" : 'X\(//\)$' \| \-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||-echo X/"$0" |-    sed '/^.*\/\([^/][^/]*\)\/*$/{-	    s//\1/-	    q-	  }-	  /^X\/\(\/\/\)$/{-	    s//\1/-	    q-	  }-	  /^X\/\(\/\).*/{-	    s//\1/-	    q-	  }-	  s/.*/./; q'`--# CDPATH.-$as_unset CDPATH----  as_lineno_1=$LINENO-  as_lineno_2=$LINENO-  test "x$as_lineno_1" != "x$as_lineno_2" &&-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {--  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO-  # uniformly replaced by the line number.  The first 'sed' inserts a-  # line-number line after each line using $LINENO; the second 'sed'-  # does the real work.  The second script uses 'N' to pair each-  # line-number line with the line containing $LINENO, and appends-  # trailing '-' during substitution so that $LINENO is not a special-  # case at line end.-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the-  # scripts with optimization help from Paolo Bonzini.  Blame Lee-  # E. McMahon (1931-1989) for sed's syntax.  :-)-  sed -n '-    p-    /[$]LINENO/=-  ' <$as_myself |-    sed '-      s/[$]LINENO.*/&-/-      t lineno-      b-      :lineno-      N-      :loop-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/-      t loop-      s/-\n.*//-    ' >$as_me.lineno &&-  chmod +x "$as_me.lineno" ||-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2-   { (exit 1); exit 1; }; }--  # Don't try to exec as it changes $[0], causing all sort of problems-  # (the dirname of $[0] is not the place where we might find the-  # original and so on.  Autoconf is especially sensitive to this).-  . "./$as_me.lineno"-  # Exit status is that of the last command.-  exit-}---if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then-  as_dirname=dirname-else-  as_dirname=false-fi--ECHO_C= ECHO_N= ECHO_T=-case `echo -n x` in--n*)-  case `echo 'x\c'` in-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.-  *)   ECHO_C='\c';;-  esac;;-*)-  ECHO_N='-n';;-esac--if expr a : '\(a\)' >/dev/null 2>&1 &&-   test "X`expr 00001 : '.*\(...\)'`" = X001; then-  as_expr=expr-else-  as_expr=false-fi--rm -f conf$$ conf$$.exe conf$$.file-if test -d conf$$.dir; then-  rm -f conf$$.dir/conf$$.file-else-  rm -f conf$$.dir-  mkdir conf$$.dir-fi-echo >conf$$.file-if ln -s conf$$.file conf$$ 2>/dev/null; then-  as_ln_s='ln -s'-  # ... but there are two gotchas:-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.-  # In both cases, we have to default to `cp -p'.-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||-    as_ln_s='cp -p'-elif ln conf$$.file conf$$ 2>/dev/null; then-  as_ln_s=ln-else-  as_ln_s='cp -p'-fi-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file-rmdir conf$$.dir 2>/dev/null--if mkdir -p . 2>/dev/null; then-  as_mkdir_p=:-else-  test -d ./-p && rmdir ./-p-  as_mkdir_p=false-fi--if test -x / >/dev/null 2>&1; then-  as_test_x='test -x'-else-  if ls -dL / >/dev/null 2>&1; then-    as_ls_L_option=L-  else-    as_ls_L_option=-  fi-  as_test_x='-    eval sh -c '\''-      if test -d "$1"; then-        test -d "$1/.";-      else-	case $1 in-        -*)set "./$1";;-	esac;-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in-	???[sx]*):;;*)false;;esac;fi-    '\'' sh-  '-fi-as_executable_p=$as_test_x--# Sed expression to map a string onto a valid CPP name.-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"--# Sed expression to map a string onto a valid variable name.-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"---exec 6>&1--# Save the log message, to keep $[0] and so on meaningful, and to-# report actual input values of CONFIG_FILES etc. instead of their-# values after options handling.-ac_log="-This file was extended by rtsPOSIX $as_me 0.9.9, which was-generated by GNU Autoconf 2.61.  Invocation command line was--  CONFIG_FILES    = $CONFIG_FILES-  CONFIG_HEADERS  = $CONFIG_HEADERS-  CONFIG_LINKS    = $CONFIG_LINKS-  CONFIG_COMMANDS = $CONFIG_COMMANDS-  $ $0 $@--on `(hostname || uname -n) 2>/dev/null | sed 1q`-"--_ACEOF--cat >>$CONFIG_STATUS <<_ACEOF-# Files that config.status was made for.-config_files="$ac_config_files"-config_headers="$ac_config_headers"--_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF-ac_cs_usage="\-\`$as_me' instantiates files from templates according to the-current configuration.--Usage: $0 [OPTIONS] [FILE]...--  -h, --help       print this help, then exit-  -V, --version    print version number and configuration settings, then exit-  -q, --quiet      do not print progress messages-  -d, --debug      don't remove temporary files-      --recheck    update $as_me by reconfiguring in the same conditions-  --file=FILE[:TEMPLATE]-		   instantiate the configuration file FILE-  --header=FILE[:TEMPLATE]-		   instantiate the configuration header FILE--Configuration files:-$config_files--Configuration headers:-$config_headers--Report bugs to <bug-autoconf@gnu.org>."--_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF-ac_cs_version="\\-rtsPOSIX config.status 0.9.9-configured by $0, generated by GNU Autoconf 2.61,-  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"--Copyright (C) 2006 Free Software Foundation, Inc.-This config.status script is free software; the Free Software Foundation-gives unlimited permission to copy, distribute and modify it."--ac_pwd='$ac_pwd'-srcdir='$srcdir'-INSTALL='$INSTALL'-_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF-# If no file are specified by the user, then we need to provide default-# value.  By we need to know if files were specified by the user.-ac_need_defaults=:-while test $# != 0-do-  case $1 in-  --*=*)-    ac_option=`expr "X$1" : 'X\([^=]*\)='`-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`-    ac_shift=:-    ;;-  *)-    ac_option=$1-    ac_optarg=$2-    ac_shift=shift-    ;;-  esac--  case $ac_option in-  # Handling of the options.-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)-    ac_cs_recheck=: ;;-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )-    echo "$ac_cs_version"; exit ;;-  --debug | --debu | --deb | --de | --d | -d )-    debug=: ;;-  --file | --fil | --fi | --f )-    $ac_shift-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"-    ac_need_defaults=false;;-  --header | --heade | --head | --hea )-    $ac_shift-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"-    ac_need_defaults=false;;-  --he | --h)-    # Conflict between --help and --header-    { echo "$as_me: error: ambiguous option: $1-Try \`$0 --help' for more information." >&2-   { (exit 1); exit 1; }; };;-  --help | --hel | -h )-    echo "$ac_cs_usage"; exit ;;-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \-  | -silent | --silent | --silen | --sile | --sil | --si | --s)-    ac_cs_silent=: ;;--  # This is an error.-  -*) { echo "$as_me: error: unrecognized option: $1-Try \`$0 --help' for more information." >&2-   { (exit 1); exit 1; }; } ;;--  *) ac_config_targets="$ac_config_targets $1"-     ac_need_defaults=false ;;--  esac-  shift-done--ac_configure_extra_args=--if $ac_cs_silent; then-  exec 6>/dev/null-  ac_configure_extra_args="$ac_configure_extra_args --silent"-fi--_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF-if \$ac_cs_recheck; then-  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6-  CONFIG_SHELL=$SHELL-  export CONFIG_SHELL-  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion-fi--_ACEOF-cat >>$CONFIG_STATUS <<\_ACEOF-exec 5>>config.log-{-  echo-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX-## Running $as_me. ##-_ASBOX-  echo "$ac_log"-} >&5--_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF-_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF--# Handling of arguments.-for ac_config_target in $ac_config_targets-do-  case $ac_config_target in-    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;-    "timberc.cfg") CONFIG_FILES="$CONFIG_FILES timberc.cfg" ;;--  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}-   { (exit 1); exit 1; }; };;-  esac-done---# If the user did not use the arguments to specify the items to instantiate,-# then the envvar interface is used.  Set only those that are not.-# We use the long form for the default assignment because of an extremely-# bizarre bug on SunOS 4.1.3.-if $ac_need_defaults; then-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers-fi--# Have a temporary directory for convenience.  Make it in the build tree-# simply because there is no reason against having it here, and in addition,-# creating and moving files from /tmp can sometimes cause problems.-# Hook for its removal unless debugging.-# Note that there is a small window in which the directory will not be cleaned:-# after its creation but before its name has been assigned to `$tmp'.-$debug ||-{-  tmp=-  trap 'exit_status=$?-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status-' 0-  trap '{ (exit 1); exit 1; }' 1 2 13 15-}-# Create a (secure) tmp directory for tmp files.--{-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&-  test -n "$tmp" && test -d "$tmp"-}  ||-{-  tmp=./conf$$-$RANDOM-  (umask 077 && mkdir "$tmp")-} ||-{-   echo "$me: cannot create a temporary directory in ." >&2-   { (exit 1); exit 1; }-}--#-# Set up the sed scripts for CONFIG_FILES section.-#--# No need to generate the scripts if there are no CONFIG_FILES.-# This happens for instance when ./config.status config.h-if test -n "$CONFIG_FILES"; then--_ACEOF----ac_delim='%!_!# '-for ac_last_try in false false false false false :; do-  cat >conf$$subs.sed <<_ACEOF-SHELL!$SHELL$ac_delim-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim-PACKAGE_NAME!$PACKAGE_NAME$ac_delim-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim-PACKAGE_STRING!$PACKAGE_STRING$ac_delim-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim-exec_prefix!$exec_prefix$ac_delim-prefix!$prefix$ac_delim-program_transform_name!$program_transform_name$ac_delim-bindir!$bindir$ac_delim-sbindir!$sbindir$ac_delim-libexecdir!$libexecdir$ac_delim-datarootdir!$datarootdir$ac_delim-datadir!$datadir$ac_delim-sysconfdir!$sysconfdir$ac_delim-sharedstatedir!$sharedstatedir$ac_delim-localstatedir!$localstatedir$ac_delim-includedir!$includedir$ac_delim-oldincludedir!$oldincludedir$ac_delim-docdir!$docdir$ac_delim-infodir!$infodir$ac_delim-htmldir!$htmldir$ac_delim-dvidir!$dvidir$ac_delim-pdfdir!$pdfdir$ac_delim-psdir!$psdir$ac_delim-libdir!$libdir$ac_delim-localedir!$localedir$ac_delim-mandir!$mandir$ac_delim-DEFS!$DEFS$ac_delim-ECHO_C!$ECHO_C$ac_delim-ECHO_N!$ECHO_N$ac_delim-ECHO_T!$ECHO_T$ac_delim-LIBS!$LIBS$ac_delim-build_alias!$build_alias$ac_delim-host_alias!$host_alias$ac_delim-target_alias!$target_alias$ac_delim-CC!$CC$ac_delim-CFLAGS!$CFLAGS$ac_delim-LDFLAGS!$LDFLAGS$ac_delim-CPPFLAGS!$CPPFLAGS$ac_delim-ac_ct_CC!$ac_ct_CC$ac_delim-EXEEXT!$EXEEXT$ac_delim-OBJEXT!$OBJEXT$ac_delim-INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim-INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim-INSTALL_DATA!$INSTALL_DATA$ac_delim-build!$build$ac_delim-build_cpu!$build_cpu$ac_delim-build_vendor!$build_vendor$ac_delim-build_os!$build_os$ac_delim-host!$host$ac_delim-host_cpu!$host_cpu$ac_delim-host_vendor!$host_vendor$ac_delim-host_os!$host_os$ac_delim-acx_pthread_config!$acx_pthread_config$ac_delim-PTHREAD_CC!$PTHREAD_CC$ac_delim-PTHREAD_LIBS!$PTHREAD_LIBS$ac_delim-PTHREAD_CFLAGS!$PTHREAD_CFLAGS$ac_delim-TIMBERC!$TIMBERC$ac_delim-CPP!$CPP$ac_delim-GREP!$GREP$ac_delim-EGREP!$EGREP$ac_delim-LIBOBJS!$LIBOBJS$ac_delim-SRC!$SRC$ac_delim-DEST!$DEST$ac_delim-LTLIBOBJS!$LTLIBOBJS$ac_delim-_ACEOF--  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 67; then-    break-  elif $ac_last_try; then-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}-   { (exit 1); exit 1; }; }-  else-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "-  fi-done--ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`-if test -n "$ac_eof"; then-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`-  ac_eof=`expr $ac_eof + 1`-fi--cat >>$CONFIG_STATUS <<_ACEOF-cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end-_ACEOF-sed '-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g-s/^/s,@/; s/!/@,|#_!!_#|/-:n-t n-s/'"$ac_delim"'$/,g/; t-s/$/\\/; p-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n-' >>$CONFIG_STATUS <conf$$subs.sed-rm -f conf$$subs.sed-cat >>$CONFIG_STATUS <<_ACEOF-:end-s/|#_!!_#|//g-CEOF$ac_eof-_ACEOF---# VPATH may cause trouble with some makes, so we remove $(srcdir),-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and-# trailing colons and then remove the whole line if VPATH becomes empty-# (actually we leave an empty line to preserve line numbers).-if test "x$srcdir" = x.; then-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{-s/:*\$(srcdir):*/:/-s/:*\${srcdir}:*/:/-s/:*@srcdir@:*/:/-s/^\([^=]*=[	 ]*\):*/\1/-s/:*$//-s/^[^=]*=[	 ]*$//-}'-fi--cat >>$CONFIG_STATUS <<\_ACEOF-fi # test -n "$CONFIG_FILES"---for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS-do-  case $ac_tag in-  :[FHLC]) ac_mode=$ac_tag; continue;;-  esac-  case $ac_mode$ac_tag in-  :[FHL]*:*);;-  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5-echo "$as_me: error: Invalid tag $ac_tag." >&2;}-   { (exit 1); exit 1; }; };;-  :[FH]-) ac_tag=-:-;;-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;-  esac-  ac_save_IFS=$IFS-  IFS=:-  set x $ac_tag-  IFS=$ac_save_IFS-  shift-  ac_file=$1-  shift--  case $ac_mode in-  :L) ac_source=$1;;-  :[FH])-    ac_file_inputs=-    for ac_f-    do-      case $ac_f in-      -) ac_f="$tmp/stdin";;-      *) # Look for the file first in the build tree, then in the source tree-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,-	 # because $ac_f cannot contain `:'.-	 test -f "$ac_f" ||-	   case $ac_f in-	   [\\/$]*) false;;-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;-	   esac ||-	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5-echo "$as_me: error: cannot find input file: $ac_f" >&2;}-   { (exit 1); exit 1; }; };;-      esac-      ac_file_inputs="$ac_file_inputs $ac_f"-    done--    # Let's still pretend it is `configure' which instantiates (i.e., don't-    # use $as_me), people would be surprised to read:-    #    /* config.h.  Generated by config.status.  */-    configure_input="Generated from "`IFS=:-	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."-    if test x"$ac_file" != x-; then-      configure_input="$ac_file.  $configure_input"-      { echo "$as_me:$LINENO: creating $ac_file" >&5-echo "$as_me: creating $ac_file" >&6;}-    fi--    case $ac_tag in-    *:-:* | *:-) cat >"$tmp/stdin";;-    esac-    ;;-  esac--  ac_dir=`$as_dirname -- "$ac_file" ||-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \-	 X"$ac_file" : 'X\(//\)[^/]' \| \-	 X"$ac_file" : 'X\(//\)$' \| \-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||-echo X"$ac_file" |-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)[^/].*/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\).*/{-	    s//\1/-	    q-	  }-	  s/.*/./; q'`-  { as_dir="$ac_dir"-  case $as_dir in #(-  -*) as_dir=./$as_dir;;-  esac-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {-    as_dirs=-    while :; do-      case $as_dir in #(-      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(-      *) as_qdir=$as_dir;;-      esac-      as_dirs="'$as_qdir' $as_dirs"-      as_dir=`$as_dirname -- "$as_dir" ||-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \-	 X"$as_dir" : 'X\(//\)[^/]' \| \-	 X"$as_dir" : 'X\(//\)$' \| \-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||-echo X"$as_dir" |-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)[^/].*/{-	    s//\1/-	    q-	  }-	  /^X\(\/\/\)$/{-	    s//\1/-	    q-	  }-	  /^X\(\/\).*/{-	    s//\1/-	    q-	  }-	  s/.*/./; q'`-      test -d "$as_dir" && break-    done-    test -z "$as_dirs" || eval "mkdir $as_dirs"-  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5-echo "$as_me: error: cannot create directory $as_dir" >&2;}-   { (exit 1); exit 1; }; }; }-  ac_builddir=.--case "$ac_dir" in-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;-*)-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`-  # A ".." for each directory in $ac_dir_suffix.-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`-  case $ac_top_builddir_sub in-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;-  esac ;;-esac-ac_abs_top_builddir=$ac_pwd-ac_abs_builddir=$ac_pwd$ac_dir_suffix-# for backward compatibility:-ac_top_builddir=$ac_top_build_prefix--case $srcdir in-  .)  # We are building in place.-    ac_srcdir=.-    ac_top_srcdir=$ac_top_builddir_sub-    ac_abs_top_srcdir=$ac_pwd ;;-  [\\/]* | ?:[\\/]* )  # Absolute name.-    ac_srcdir=$srcdir$ac_dir_suffix;-    ac_top_srcdir=$srcdir-    ac_abs_top_srcdir=$srcdir ;;-  *) # Relative name.-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix-    ac_top_srcdir=$ac_top_build_prefix$srcdir-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;-esac-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix---  case $ac_mode in-  :F)-  #-  # CONFIG_FILE-  #--  case $INSTALL in-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;-  esac-_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF-# If the template does not know about datarootdir, expand it.-# FIXME: This hack should be removed a few years after 2.60.-ac_datarootdir_hack=; ac_datarootdir_seen=--case `sed -n '/datarootdir/ {-  p-  q-}-/@datadir@/p-/@docdir@/p-/@infodir@/p-/@localedir@/p-/@mandir@/p-' $ac_file_inputs` in-*datarootdir*) ac_datarootdir_seen=yes;;-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)-  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}-_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF-  ac_datarootdir_hack='-  s&@datadir@&$datadir&g-  s&@docdir@&$docdir&g-  s&@infodir@&$infodir&g-  s&@localedir@&$localedir&g-  s&@mandir@&$mandir&g-    s&\\\${datarootdir}&$datarootdir&g' ;;-esac-_ACEOF--# Neutralize VPATH when `$srcdir' = `.'.-# Shell code in configure.ac might set extrasub.-# FIXME: do we really want to maintain this feature?-cat >>$CONFIG_STATUS <<_ACEOF-  sed "$ac_vpsub-$extrasub-_ACEOF-cat >>$CONFIG_STATUS <<\_ACEOF-:t-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b-s&@configure_input@&$configure_input&;t t-s&@top_builddir@&$ac_top_builddir_sub&;t t-s&@srcdir@&$ac_srcdir&;t t-s&@abs_srcdir@&$ac_abs_srcdir&;t t-s&@top_srcdir@&$ac_top_srcdir&;t t-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t-s&@builddir@&$ac_builddir&;t t-s&@abs_builddir@&$ac_abs_builddir&;t t-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t-s&@INSTALL@&$ac_INSTALL&;t t-$ac_datarootdir_hack-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out--test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&-  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'-which seems to be undefined.  Please make sure it is defined." >&5-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'-which seems to be undefined.  Please make sure it is defined." >&2;}--  rm -f "$tmp/stdin"-  case $ac_file in-  -) cat "$tmp/out"; rm -f "$tmp/out";;-  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;-  esac- ;;-  :H)-  #-  # CONFIG_HEADER-  #-_ACEOF--# Transform confdefs.h into a sed script `conftest.defines', that-# substitutes the proper values into config.h.in to produce config.h.-rm -f conftest.defines conftest.tail-# First, append a space to every undef/define line, to ease matching.-echo 's/$/ /' >conftest.defines-# Then, protect against being on the right side of a sed subst, or in-# an unquoted here document, in config.status.  If some macros were-# called several times there might be several #defines for the same-# symbol, which is useless.  But do not sort them, since the last-# AC_DEFINE must be honored.-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*-# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where-# NAME is the cpp macro being defined, VALUE is the value it is being given.-# PARAMS is the parameter list in the macro definition--in most cases, it's-# just an empty string.-ac_dA='s,^\\([	 #]*\\)[^	 ]*\\([	 ]*'-ac_dB='\\)[	 (].*,\\1define\\2'-ac_dC=' '-ac_dD=' ,'--uniq confdefs.h |-  sed -n '-	t rset-	:rset-	s/^[	 ]*#[	 ]*define[	 ][	 ]*//-	t ok-	d-	:ok-	s/[\\&,]/\\&/g-	s/^\('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p-	s/^\('"$ac_word_re"'\)[	 ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p-  ' >>conftest.defines--# Remove the space that was appended to ease matching.-# Then replace #undef with comments.  This is necessary, for-# example, in the case of _POSIX_SOURCE, which is predefined and required-# on some systems where configure will not decide to define it.-# (The regexp can be short, since the line contains either #define or #undef.)-echo 's/ $//-s,^[	 #]*u.*,/* & */,' >>conftest.defines--# Break up conftest.defines:-ac_max_sed_lines=50--# First sed command is:	 sed -f defines.sed $ac_file_inputs >"$tmp/out1"-# Second one is:	 sed -f defines.sed "$tmp/out1" >"$tmp/out2"-# Third one will be:	 sed -f defines.sed "$tmp/out2" >"$tmp/out1"-# et cetera.-ac_in='$ac_file_inputs'-ac_out='"$tmp/out1"'-ac_nxt='"$tmp/out2"'--while :-do-  # Write a here document:-    cat >>$CONFIG_STATUS <<_ACEOF-    # First, check the format of the line:-    cat >"\$tmp/defines.sed" <<\\CEOF-/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*\$/b def-/^[	 ]*#[	 ]*define[	 ][	 ]*$ac_word_re[(	 ]/b def-b-:def-_ACEOF-  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS-  echo 'CEOF-    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS-  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in-  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail-  grep . conftest.tail >/dev/null || break-  rm -f conftest.defines-  mv conftest.tail conftest.defines-done-rm -f conftest.defines conftest.tail--echo "ac_result=$ac_in" >>$CONFIG_STATUS-cat >>$CONFIG_STATUS <<\_ACEOF-  if test x"$ac_file" != x-; then-    echo "/* $configure_input  */" >"$tmp/config.h"-    cat "$ac_result" >>"$tmp/config.h"-    if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5-echo "$as_me: $ac_file is unchanged" >&6;}-    else-      rm -f $ac_file-      mv "$tmp/config.h" $ac_file-    fi-  else-    echo "/* $configure_input  */"-    cat "$ac_result"-  fi-  rm -f "$tmp/out12"- ;;---  esac--done # for ac_tag---{ (exit 0); exit 0; }-_ACEOF-chmod +x $CONFIG_STATUS-ac_clean_files=$ac_clean_files_save---# configure is writing to config.log, and then calls config.status.-# config.status does its own redirection, appending to config.log.-# Unfortunately, on DOS this fails, as config.log is still kept open-# by configure, so config.status won't be able to write to it; its-# output is simply discarded.  So we exec the FD to /dev/null,-# effectively closing config.log, so it can be properly (re)opened and-# appended to by config.status.  When coming back to configure, we-# need to make the FD available again.-if test "$no_create" != yes; then-  ac_cs_success=:-  ac_config_status_args=-  test "$silent" = yes &&-    ac_config_status_args="$ac_config_status_args --quiet"-  exec 5>/dev/null-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false-  exec 5>>config.log-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which-  # would make configure fail if this is the last instruction.-  $ac_cs_success || { (exit 1); exit 1; }+# Generated by GNU Autoconf 2.63 for rtsPOSIX 0.9.9.+#+# Report bugs to <nordland@csee.ltu.se>.+#+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,+# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.+# This configure script is free software; the Free Software Foundation+# gives unlimited permission to copy, distribute and modify it.+## --------------------- ##+## M4sh Initialization.  ##+## --------------------- ##++# Be more Bourne compatible+DUALCASE=1; export DUALCASE # for MKS sh+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then+  emulate sh+  NULLCMD=:+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which+  # is contrary to our usage.  Disable this feature.+  alias -g '${1+"$@"}'='"$@"'+  setopt NO_GLOB_SUBST+else+  case `(set -o) 2>/dev/null` in+  *posix*) set -o posix ;;+esac++fi+++++# PATH needs CR+# Avoid depending upon Character Ranges.+as_cr_letters='abcdefghijklmnopqrstuvwxyz'+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'+as_cr_Letters=$as_cr_letters$as_cr_LETTERS+as_cr_digits='0123456789'+as_cr_alnum=$as_cr_Letters$as_cr_digits++as_nl='+'+export as_nl+# Printing a long string crashes Solaris 7 /usr/bin/printf.+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then+  as_echo='printf %s\n'+  as_echo_n='printf %s'+else+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'+    as_echo_n='/usr/ucb/echo -n'+  else+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'+    as_echo_n_body='eval+      arg=$1;+      case $arg in+      *"$as_nl"*)+	expr "X$arg" : "X\\(.*\\)$as_nl";+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;+      esac;+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"+    '+    export as_echo_n_body+    as_echo_n='sh -c $as_echo_n_body as_echo'+  fi+  export as_echo_body+  as_echo='sh -c $as_echo_body as_echo'+fi++# The user is always right.+if test "${PATH_SEPARATOR+set}" != set; then+  PATH_SEPARATOR=:+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||+      PATH_SEPARATOR=';'+  }+fi++# Support unset when possible.+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then+  as_unset=unset+else+  as_unset=false+fi+++# IFS+# We need space, tab and new line, in precisely that order.  Quoting is+# there to prevent editors from complaining about space-tab.+# (If _AS_PATH_WALK were called with IFS unset, it would disable word+# splitting by setting IFS to empty value.)+IFS=" ""	$as_nl"++# Find who we are.  Look in the path if we contain no directory separator.+case $0 in+  *[\\/]* ) as_myself=$0 ;;+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break+done+IFS=$as_save_IFS++     ;;+esac+# We did not find ourselves, most probably we were run as `sh COMMAND'+# in which case we are not to be found in the path.+if test "x$as_myself" = x; then+  as_myself=$0+fi+if test ! -f "$as_myself"; then+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2+  { (exit 1); exit 1; }+fi++# Work around bugs in pre-3.0 UWIN ksh.+for as_var in ENV MAIL MAILPATH+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var+done+PS1='$ '+PS2='> '+PS4='+ '++# NLS nuisances.+LC_ALL=C+export LC_ALL+LANGUAGE=C+export LANGUAGE++# Required to use basename.+if expr a : '\(a\)' >/dev/null 2>&1 &&+   test "X`expr 00001 : '.*\(...\)'`" = X001; then+  as_expr=expr+else+  as_expr=false+fi++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then+  as_basename=basename+else+  as_basename=false+fi+++# Name of the executable.+as_me=`$as_basename -- "$0" ||+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \+	 X"$0" : 'X\(//\)$' \| \+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X/"$0" |+    sed '/^.*\/\([^/][^/]*\)\/*$/{+	    s//\1/+	    q+	  }+	  /^X\/\(\/\/\)$/{+	    s//\1/+	    q+	  }+	  /^X\/\(\/\).*/{+	    s//\1/+	    q+	  }+	  s/.*/./; q'`++# CDPATH.+$as_unset CDPATH+++if test "x$CONFIG_SHELL" = x; then+  if (eval ":") 2>/dev/null; then+  as_have_required=yes+else+  as_have_required=no+fi++  if test $as_have_required = yes &&	 (eval ":+(as_func_return () {+  (exit \$1)+}+as_func_success () {+  as_func_return 0+}+as_func_failure () {+  as_func_return 1+}+as_func_ret_success () {+  return 0+}+as_func_ret_failure () {+  return 1+}++exitcode=0+if as_func_success; then+  :+else+  exitcode=1+  echo as_func_success failed.+fi++if as_func_failure; then+  exitcode=1+  echo as_func_failure succeeded.+fi++if as_func_ret_success; then+  :+else+  exitcode=1+  echo as_func_ret_success failed.+fi++if as_func_ret_failure; then+  exitcode=1+  echo as_func_ret_failure succeeded.+fi++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then+  :+else+  exitcode=1+  echo positional parameters were not saved.+fi++test \$exitcode = 0) || { (exit 1); exit 1; }++(+  as_lineno_1=\$LINENO+  as_lineno_2=\$LINENO+  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&+  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }+") 2> /dev/null; then+  :+else+  as_candidate_shells=+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  case $as_dir in+	 /*)+	   for as_base in sh bash ksh sh5; do+	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"+	   done;;+       esac+done+IFS=$as_save_IFS+++      for as_shell in $as_candidate_shells $SHELL; do+	 # Try only shells that exist, to save several forks.+	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&+		{ ("$as_shell") 2> /dev/null <<\_ASEOF+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then+  emulate sh+  NULLCMD=:+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which+  # is contrary to our usage.  Disable this feature.+  alias -g '${1+"$@"}'='"$@"'+  setopt NO_GLOB_SUBST+else+  case `(set -o) 2>/dev/null` in+  *posix*) set -o posix ;;+esac++fi+++:+_ASEOF+}; then+  CONFIG_SHELL=$as_shell+	       as_have_required=yes+	       if { "$as_shell" 2> /dev/null <<\_ASEOF+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then+  emulate sh+  NULLCMD=:+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which+  # is contrary to our usage.  Disable this feature.+  alias -g '${1+"$@"}'='"$@"'+  setopt NO_GLOB_SUBST+else+  case `(set -o) 2>/dev/null` in+  *posix*) set -o posix ;;+esac++fi+++:+(as_func_return () {+  (exit $1)+}+as_func_success () {+  as_func_return 0+}+as_func_failure () {+  as_func_return 1+}+as_func_ret_success () {+  return 0+}+as_func_ret_failure () {+  return 1+}++exitcode=0+if as_func_success; then+  :+else+  exitcode=1+  echo as_func_success failed.+fi++if as_func_failure; then+  exitcode=1+  echo as_func_failure succeeded.+fi++if as_func_ret_success; then+  :+else+  exitcode=1+  echo as_func_ret_success failed.+fi++if as_func_ret_failure; then+  exitcode=1+  echo as_func_ret_failure succeeded.+fi++if ( set x; as_func_ret_success y && test x = "$1" ); then+  :+else+  exitcode=1+  echo positional parameters were not saved.+fi++test $exitcode = 0) || { (exit 1); exit 1; }++(+  as_lineno_1=$LINENO+  as_lineno_2=$LINENO+  test "x$as_lineno_1" != "x$as_lineno_2" &&+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }++_ASEOF+}; then+  break+fi++fi++      done++      if test "x$CONFIG_SHELL" != x; then+  for as_var in BASH_ENV ENV+	do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var+	done+	export CONFIG_SHELL+	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}+fi+++    if test $as_have_required = no; then+  echo This script requires a shell more modern than all the+      echo shells that I found on your system.  Please install a+      echo modern shell, or manually run the script under such a+      echo shell if you do have one.+      { (exit 1); exit 1; }+fi+++fi++fi++++(eval "as_func_return () {+  (exit \$1)+}+as_func_success () {+  as_func_return 0+}+as_func_failure () {+  as_func_return 1+}+as_func_ret_success () {+  return 0+}+as_func_ret_failure () {+  return 1+}++exitcode=0+if as_func_success; then+  :+else+  exitcode=1+  echo as_func_success failed.+fi++if as_func_failure; then+  exitcode=1+  echo as_func_failure succeeded.+fi++if as_func_ret_success; then+  :+else+  exitcode=1+  echo as_func_ret_success failed.+fi++if as_func_ret_failure; then+  exitcode=1+  echo as_func_ret_failure succeeded.+fi++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then+  :+else+  exitcode=1+  echo positional parameters were not saved.+fi++test \$exitcode = 0") || {+  echo No shell found that supports shell functions.+  echo Please tell bug-autoconf@gnu.org about your system,+  echo including any error possibly output before this message.+  echo This can help us improve future autoconf versions.+  echo Configuration will now proceed without shell functions.+}++++  as_lineno_1=$LINENO+  as_lineno_2=$LINENO+  test "x$as_lineno_1" != "x$as_lineno_2" &&+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {++  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO+  # uniformly replaced by the line number.  The first 'sed' inserts a+  # line-number line after each line using $LINENO; the second 'sed'+  # does the real work.  The second script uses 'N' to pair each+  # line-number line with the line containing $LINENO, and appends+  # trailing '-' during substitution so that $LINENO is not a special+  # case at line end.+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the+  # scripts with optimization help from Paolo Bonzini.  Blame Lee+  # E. McMahon (1931-1989) for sed's syntax.  :-)+  sed -n '+    p+    /[$]LINENO/=+  ' <$as_myself |+    sed '+      s/[$]LINENO.*/&-/+      t lineno+      b+      :lineno+      N+      :loop+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/+      t loop+      s/-\n.*//+    ' >$as_me.lineno &&+  chmod +x "$as_me.lineno" ||+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2+   { (exit 1); exit 1; }; }++  # Don't try to exec as it changes $[0], causing all sort of problems+  # (the dirname of $[0] is not the place where we might find the+  # original and so on.  Autoconf is especially sensitive to this).+  . "./$as_me.lineno"+  # Exit status is that of the last command.+  exit+}+++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then+  as_dirname=dirname+else+  as_dirname=false+fi++ECHO_C= ECHO_N= ECHO_T=+case `echo -n x` in+-n*)+  case `echo 'x\c'` in+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.+  *)   ECHO_C='\c';;+  esac;;+*)+  ECHO_N='-n';;+esac+if expr a : '\(a\)' >/dev/null 2>&1 &&+   test "X`expr 00001 : '.*\(...\)'`" = X001; then+  as_expr=expr+else+  as_expr=false+fi++rm -f conf$$ conf$$.exe conf$$.file+if test -d conf$$.dir; then+  rm -f conf$$.dir/conf$$.file+else+  rm -f conf$$.dir+  mkdir conf$$.dir 2>/dev/null+fi+if (echo >conf$$.file) 2>/dev/null; then+  if ln -s conf$$.file conf$$ 2>/dev/null; then+    as_ln_s='ln -s'+    # ... but there are two gotchas:+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.+    # In both cases, we have to default to `cp -p'.+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||+      as_ln_s='cp -p'+  elif ln conf$$.file conf$$ 2>/dev/null; then+    as_ln_s=ln+  else+    as_ln_s='cp -p'+  fi+else+  as_ln_s='cp -p'+fi+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file+rmdir conf$$.dir 2>/dev/null++if mkdir -p . 2>/dev/null; then+  as_mkdir_p=:+else+  test -d ./-p && rmdir ./-p+  as_mkdir_p=false+fi++if test -x / >/dev/null 2>&1; then+  as_test_x='test -x'+else+  if ls -dL / >/dev/null 2>&1; then+    as_ls_L_option=L+  else+    as_ls_L_option=+  fi+  as_test_x='+    eval sh -c '\''+      if test -d "$1"; then+	test -d "$1/.";+      else+	case $1 in+	-*)set "./$1";;+	esac;+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in+	???[sx]*):;;*)false;;esac;fi+    '\'' sh+  '+fi+as_executable_p=$as_test_x++# Sed expression to map a string onto a valid CPP name.+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"++# Sed expression to map a string onto a valid variable name.+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"++++exec 7<&0 </dev/null 6>&1++# Name of the host.+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,+# so uname gets run too.+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`++#+# Initializations.+#+ac_default_prefix=/usr/local+ac_clean_files=+ac_config_libobj_dir=.+LIBOBJS=+cross_compiling=no+subdirs=+MFLAGS=+MAKEFLAGS=+SHELL=${CONFIG_SHELL-/bin/sh}++# Identity of this package.+PACKAGE_NAME='rtsPOSIX'+PACKAGE_TARNAME='rtsposix'+PACKAGE_VERSION='0.9.9'+PACKAGE_STRING='rtsPOSIX 0.9.9'+PACKAGE_BUGREPORT='nordland@csee.ltu.se'++ac_unique_file="main.c"+# Factoring default headers for most tests.+ac_includes_default="\+#include <stdio.h>+#ifdef HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif+#ifdef HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif+#ifdef STDC_HEADERS+# include <stdlib.h>+# include <stddef.h>+#else+# ifdef HAVE_STDLIB_H+#  include <stdlib.h>+# endif+#endif+#ifdef HAVE_STRING_H+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H+#  include <memory.h>+# endif+# include <string.h>+#endif+#ifdef HAVE_STRINGS_H+# include <strings.h>+#endif+#ifdef HAVE_INTTYPES_H+# include <inttypes.h>+#endif+#ifdef HAVE_STDINT_H+# include <stdint.h>+#endif+#ifdef HAVE_UNISTD_H+# include <unistd.h>+#endif"++ac_subst_vars='LTLIBOBJS+DEST+SRC+LIBOBJS+EGREP+GREP+CPP+TIMBERC+PTHREAD_CFLAGS+PTHREAD_LIBS+PTHREAD_CC+acx_pthread_config+host_os+host_vendor+host_cpu+host+build_os+build_vendor+build_cpu+build+INSTALL_DATA+INSTALL_SCRIPT+INSTALL_PROGRAM+OBJEXT+EXEEXT+ac_ct_CC+CPPFLAGS+LDFLAGS+CFLAGS+CC+target_alias+host_alias+build_alias+LIBS+ECHO_T+ECHO_N+ECHO_C+DEFS+mandir+localedir+libdir+psdir+pdfdir+dvidir+htmldir+infodir+docdir+oldincludedir+includedir+localstatedir+sharedstatedir+sysconfdir+datadir+datarootdir+libexecdir+sbindir+bindir+program_transform_name+prefix+exec_prefix+PACKAGE_BUGREPORT+PACKAGE_STRING+PACKAGE_VERSION+PACKAGE_TARNAME+PACKAGE_NAME+PATH_SEPARATOR+SHELL'+ac_subst_files=''+ac_user_opts='+enable_option_checking+with_timberc+'+      ac_precious_vars='build_alias+host_alias+target_alias+CC+CFLAGS+LDFLAGS+LIBS+CPPFLAGS+CPP'+++# Initialize some variables set by options.+ac_init_help=+ac_init_version=false+ac_unrecognized_opts=+ac_unrecognized_sep=+# The variables have the same names as the options, with+# dashes changed to underlines.+cache_file=/dev/null+exec_prefix=NONE+no_create=+no_recursion=+prefix=NONE+program_prefix=NONE+program_suffix=NONE+program_transform_name=s,x,x,+silent=+site=+srcdir=+verbose=+x_includes=NONE+x_libraries=NONE++# Installation directory options.+# These are left unexpanded so users can "make install exec_prefix=/foo"+# and all the variables that are supposed to be based on exec_prefix+# by default will actually change.+# Use braces instead of parens because sh, perl, etc. also accept them.+# (The list follows the same order as the GNU Coding Standards.)+bindir='${exec_prefix}/bin'+sbindir='${exec_prefix}/sbin'+libexecdir='${exec_prefix}/libexec'+datarootdir='${prefix}/share'+datadir='${datarootdir}'+sysconfdir='${prefix}/etc'+sharedstatedir='${prefix}/com'+localstatedir='${prefix}/var'+includedir='${prefix}/include'+oldincludedir='/usr/include'+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'+infodir='${datarootdir}/info'+htmldir='${docdir}'+dvidir='${docdir}'+pdfdir='${docdir}'+psdir='${docdir}'+libdir='${exec_prefix}/lib'+localedir='${datarootdir}/locale'+mandir='${datarootdir}/man'++ac_prev=+ac_dashdash=+for ac_option+do+  # If the previous option needs an argument, assign it.+  if test -n "$ac_prev"; then+    eval $ac_prev=\$ac_option+    ac_prev=+    continue+  fi++  case $ac_option in+  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;+  *)	ac_optarg=yes ;;+  esac++  # Accept the important Cygnus configure options, so we can diagnose typos.++  case $ac_dashdash$ac_option in+  --)+    ac_dashdash=yes ;;++  -bindir | --bindir | --bindi | --bind | --bin | --bi)+    ac_prev=bindir ;;+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)+    bindir=$ac_optarg ;;++  -build | --build | --buil | --bui | --bu)+    ac_prev=build_alias ;;+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)+    build_alias=$ac_optarg ;;++  -cache-file | --cache-file | --cache-fil | --cache-fi \+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)+    ac_prev=cache_file ;;+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)+    cache_file=$ac_optarg ;;++  --config-cache | -C)+    cache_file=config.cache ;;++  -datadir | --datadir | --datadi | --datad)+    ac_prev=datadir ;;+  -datadir=* | --datadir=* | --datadi=* | --datad=*)+    datadir=$ac_optarg ;;++  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \+  | --dataroo | --dataro | --datar)+    ac_prev=datarootdir ;;+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)+    datarootdir=$ac_optarg ;;++  -disable-* | --disable-*)+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`+    # Reject names that are not valid shell variable names.+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2+   { (exit 1); exit 1; }; }+    ac_useropt_orig=$ac_useropt+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+    case $ac_user_opts in+      *"+"enable_$ac_useropt"+"*) ;;+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"+	 ac_unrecognized_sep=', ';;+    esac+    eval enable_$ac_useropt=no ;;++  -docdir | --docdir | --docdi | --doc | --do)+    ac_prev=docdir ;;+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)+    docdir=$ac_optarg ;;++  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)+    ac_prev=dvidir ;;+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)+    dvidir=$ac_optarg ;;++  -enable-* | --enable-*)+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`+    # Reject names that are not valid shell variable names.+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2+   { (exit 1); exit 1; }; }+    ac_useropt_orig=$ac_useropt+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+    case $ac_user_opts in+      *"+"enable_$ac_useropt"+"*) ;;+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"+	 ac_unrecognized_sep=', ';;+    esac+    eval enable_$ac_useropt=\$ac_optarg ;;++  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \+  | --exec | --exe | --ex)+    ac_prev=exec_prefix ;;+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \+  | --exec=* | --exe=* | --ex=*)+    exec_prefix=$ac_optarg ;;++  -gas | --gas | --ga | --g)+    # Obsolete; use --with-gas.+    with_gas=yes ;;++  -help | --help | --hel | --he | -h)+    ac_init_help=long ;;+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)+    ac_init_help=recursive ;;+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)+    ac_init_help=short ;;++  -host | --host | --hos | --ho)+    ac_prev=host_alias ;;+  -host=* | --host=* | --hos=* | --ho=*)+    host_alias=$ac_optarg ;;++  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)+    ac_prev=htmldir ;;+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \+  | --ht=*)+    htmldir=$ac_optarg ;;++  -includedir | --includedir | --includedi | --included | --include \+  | --includ | --inclu | --incl | --inc)+    ac_prev=includedir ;;+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \+  | --includ=* | --inclu=* | --incl=* | --inc=*)+    includedir=$ac_optarg ;;++  -infodir | --infodir | --infodi | --infod | --info | --inf)+    ac_prev=infodir ;;+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)+    infodir=$ac_optarg ;;++  -libdir | --libdir | --libdi | --libd)+    ac_prev=libdir ;;+  -libdir=* | --libdir=* | --libdi=* | --libd=*)+    libdir=$ac_optarg ;;++  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \+  | --libexe | --libex | --libe)+    ac_prev=libexecdir ;;+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \+  | --libexe=* | --libex=* | --libe=*)+    libexecdir=$ac_optarg ;;++  -localedir | --localedir | --localedi | --localed | --locale)+    ac_prev=localedir ;;+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)+    localedir=$ac_optarg ;;++  -localstatedir | --localstatedir | --localstatedi | --localstated \+  | --localstate | --localstat | --localsta | --localst | --locals)+    ac_prev=localstatedir ;;+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)+    localstatedir=$ac_optarg ;;++  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)+    ac_prev=mandir ;;+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)+    mandir=$ac_optarg ;;++  -nfp | --nfp | --nf)+    # Obsolete; use --without-fp.+    with_fp=no ;;++  -no-create | --no-create | --no-creat | --no-crea | --no-cre \+  | --no-cr | --no-c | -n)+    no_create=yes ;;++  -no-recursion | --no-recursion | --no-recursio | --no-recursi \+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)+    no_recursion=yes ;;++  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \+  | --oldin | --oldi | --old | --ol | --o)+    ac_prev=oldincludedir ;;+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)+    oldincludedir=$ac_optarg ;;++  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)+    ac_prev=prefix ;;+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)+    prefix=$ac_optarg ;;++  -program-prefix | --program-prefix | --program-prefi | --program-pref \+  | --program-pre | --program-pr | --program-p)+    ac_prev=program_prefix ;;+  -program-prefix=* | --program-prefix=* | --program-prefi=* \+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)+    program_prefix=$ac_optarg ;;++  -program-suffix | --program-suffix | --program-suffi | --program-suff \+  | --program-suf | --program-su | --program-s)+    ac_prev=program_suffix ;;+  -program-suffix=* | --program-suffix=* | --program-suffi=* \+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)+    program_suffix=$ac_optarg ;;++  -program-transform-name | --program-transform-name \+  | --program-transform-nam | --program-transform-na \+  | --program-transform-n | --program-transform- \+  | --program-transform | --program-transfor \+  | --program-transfo | --program-transf \+  | --program-trans | --program-tran \+  | --progr-tra | --program-tr | --program-t)+    ac_prev=program_transform_name ;;+  -program-transform-name=* | --program-transform-name=* \+  | --program-transform-nam=* | --program-transform-na=* \+  | --program-transform-n=* | --program-transform-=* \+  | --program-transform=* | --program-transfor=* \+  | --program-transfo=* | --program-transf=* \+  | --program-trans=* | --program-tran=* \+  | --progr-tra=* | --program-tr=* | --program-t=*)+    program_transform_name=$ac_optarg ;;++  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)+    ac_prev=pdfdir ;;+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)+    pdfdir=$ac_optarg ;;++  -psdir | --psdir | --psdi | --psd | --ps)+    ac_prev=psdir ;;+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)+    psdir=$ac_optarg ;;++  -q | -quiet | --quiet | --quie | --qui | --qu | --q \+  | -silent | --silent | --silen | --sile | --sil)+    silent=yes ;;++  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)+    ac_prev=sbindir ;;+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \+  | --sbi=* | --sb=*)+    sbindir=$ac_optarg ;;++  -sharedstatedir | --sharedstatedir | --sharedstatedi \+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \+  | --sharedst | --shareds | --shared | --share | --shar \+  | --sha | --sh)+    ac_prev=sharedstatedir ;;+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \+  | --sha=* | --sh=*)+    sharedstatedir=$ac_optarg ;;++  -site | --site | --sit)+    ac_prev=site ;;+  -site=* | --site=* | --sit=*)+    site=$ac_optarg ;;++  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)+    ac_prev=srcdir ;;+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)+    srcdir=$ac_optarg ;;++  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \+  | --syscon | --sysco | --sysc | --sys | --sy)+    ac_prev=sysconfdir ;;+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)+    sysconfdir=$ac_optarg ;;++  -target | --target | --targe | --targ | --tar | --ta | --t)+    ac_prev=target_alias ;;+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)+    target_alias=$ac_optarg ;;++  -v | -verbose | --verbose | --verbos | --verbo | --verb)+    verbose=yes ;;++  -version | --version | --versio | --versi | --vers | -V)+    ac_init_version=: ;;++  -with-* | --with-*)+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`+    # Reject names that are not valid shell variable names.+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2+   { (exit 1); exit 1; }; }+    ac_useropt_orig=$ac_useropt+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+    case $ac_user_opts in+      *"+"with_$ac_useropt"+"*) ;;+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"+	 ac_unrecognized_sep=', ';;+    esac+    eval with_$ac_useropt=\$ac_optarg ;;++  -without-* | --without-*)+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`+    # Reject names that are not valid shell variable names.+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2+   { (exit 1); exit 1; }; }+    ac_useropt_orig=$ac_useropt+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+    case $ac_user_opts in+      *"+"with_$ac_useropt"+"*) ;;+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"+	 ac_unrecognized_sep=', ';;+    esac+    eval with_$ac_useropt=no ;;++  --x)+    # Obsolete; use --with-x.+    with_x=yes ;;++  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \+  | --x-incl | --x-inc | --x-in | --x-i)+    ac_prev=x_includes ;;+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)+    x_includes=$ac_optarg ;;++  -x-libraries | --x-libraries | --x-librarie | --x-librari \+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)+    ac_prev=x_libraries ;;+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)+    x_libraries=$ac_optarg ;;++  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option+Try \`$0 --help' for more information." >&2+   { (exit 1); exit 1; }; }+    ;;++  *=*)+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`+    # Reject names that are not valid shell variable names.+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&+      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2+   { (exit 1); exit 1; }; }+    eval $ac_envvar=\$ac_optarg+    export $ac_envvar ;;++  *)+    # FIXME: should be removed in autoconf 3.0.+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}+    ;;++  esac+done++if test -n "$ac_prev"; then+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`+  { $as_echo "$as_me: error: missing argument to $ac_option" >&2+   { (exit 1); exit 1; }; }+fi++if test -n "$ac_unrecognized_opts"; then+  case $enable_option_checking in+    no) ;;+    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2+   { (exit 1); exit 1; }; } ;;+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;+  esac+fi++# Check all directory arguments for consistency.+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \+		datadir sysconfdir sharedstatedir localstatedir includedir \+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \+		libdir localedir mandir+do+  eval ac_val=\$$ac_var+  # Remove trailing slashes.+  case $ac_val in+    */ )+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`+      eval $ac_var=\$ac_val;;+  esac+  # Be sure to have absolute directory names.+  case $ac_val in+    [\\/$]* | ?:[\\/]* )  continue;;+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;+  esac+  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2+   { (exit 1); exit 1; }; }+done++# There might be people who depend on the old broken behavior: `$host'+# used to hold the argument of --host etc.+# FIXME: To remove some day.+build=$build_alias+host=$host_alias+target=$target_alias++# FIXME: To remove some day.+if test "x$host_alias" != x; then+  if test "x$build_alias" = x; then+    cross_compiling=maybe+    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.+    If a cross compiler is detected then cross compile mode will be used." >&2+  elif test "x$build_alias" != "x$host_alias"; then+    cross_compiling=yes+  fi+fi++ac_tool_prefix=+test -n "$host_alias" && ac_tool_prefix=$host_alias-++test "$silent" = yes && exec 6>/dev/null+++ac_pwd=`pwd` && test -n "$ac_pwd" &&+ac_ls_di=`ls -di .` &&+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||+  { $as_echo "$as_me: error: working directory cannot be determined" >&2+   { (exit 1); exit 1; }; }+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||+  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2+   { (exit 1); exit 1; }; }+++# Find the source files, if location was not specified.+if test -z "$srcdir"; then+  ac_srcdir_defaulted=yes+  # Try the directory containing this script, then the parent directory.+  ac_confdir=`$as_dirname -- "$as_myself" ||+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+	 X"$as_myself" : 'X\(//\)[^/]' \| \+	 X"$as_myself" : 'X\(//\)$' \| \+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$as_myself" |+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+	    s//\1/+	    q+	  }+	  /^X\(\/\/\)[^/].*/{+	    s//\1/+	    q+	  }+	  /^X\(\/\/\)$/{+	    s//\1/+	    q+	  }+	  /^X\(\/\).*/{+	    s//\1/+	    q+	  }+	  s/.*/./; q'`+  srcdir=$ac_confdir+  if test ! -r "$srcdir/$ac_unique_file"; then+    srcdir=..+  fi+else+  ac_srcdir_defaulted=no+fi+if test ! -r "$srcdir/$ac_unique_file"; then+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."+  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2+   { (exit 1); exit 1; }; }+fi+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"+ac_abs_confdir=`(+	cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2+   { (exit 1); exit 1; }; }+	pwd)`+# When building in place, set srcdir=.+if test "$ac_abs_confdir" = "$ac_pwd"; then+  srcdir=.+fi+# Remove unnecessary trailing slashes from srcdir.+# Double slashes in file names in object file debugging info+# mess up M-x gdb in Emacs.+case $srcdir in+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;+esac+for ac_var in $ac_precious_vars; do+  eval ac_env_${ac_var}_set=\${${ac_var}+set}+  eval ac_env_${ac_var}_value=\$${ac_var}+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}+  eval ac_cv_env_${ac_var}_value=\$${ac_var}+done++#+# Report the --help message.+#+if test "$ac_init_help" = "long"; then+  # Omit some internal or obsolete options to make the list less imposing.+  # This message is too long to be a string in the A/UX 3.1 sh.+  cat <<_ACEOF+\`configure' configures rtsPOSIX 0.9.9 to adapt to many kinds of systems.++Usage: $0 [OPTION]... [VAR=VALUE]...++To assign environment variables (e.g., CC, CFLAGS...), specify them as+VAR=VALUE.  See below for descriptions of some of the useful variables.++Defaults for the options are specified in brackets.++Configuration:+  -h, --help              display this help and exit+      --help=short        display options specific to this package+      --help=recursive    display the short help of all the included packages+  -V, --version           display version information and exit+  -q, --quiet, --silent   do not print \`checking...' messages+      --cache-file=FILE   cache test results in FILE [disabled]+  -C, --config-cache      alias for \`--cache-file=config.cache'+  -n, --no-create         do not create output files+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']++Installation directories:+  --prefix=PREFIX         install architecture-independent files in PREFIX+                          [$ac_default_prefix]+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX+                          [PREFIX]++By default, \`make install' will install all the files in+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify+an installation prefix other than \`$ac_default_prefix' using \`--prefix',+for instance \`--prefix=\$HOME'.++For better control, use the options below.++Fine tuning of the installation directories:+  --bindir=DIR            user executables [EPREFIX/bin]+  --sbindir=DIR           system admin executables [EPREFIX/sbin]+  --libexecdir=DIR        program executables [EPREFIX/libexec]+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]+  --libdir=DIR            object code libraries [EPREFIX/lib]+  --includedir=DIR        C header files [PREFIX/include]+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]+  --infodir=DIR           info documentation [DATAROOTDIR/info]+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]+  --mandir=DIR            man documentation [DATAROOTDIR/man]+  --docdir=DIR            documentation root [DATAROOTDIR/doc/rtsposix]+  --htmldir=DIR           html documentation [DOCDIR]+  --dvidir=DIR            dvi documentation [DOCDIR]+  --pdfdir=DIR            pdf documentation [DOCDIR]+  --psdir=DIR             ps documentation [DOCDIR]+_ACEOF++  cat <<\_ACEOF++System types:+  --build=BUILD     configure for building on BUILD [guessed]+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]+_ACEOF+fi++if test -n "$ac_init_help"; then+  case $ac_init_help in+     short | recursive ) echo "Configuration of rtsPOSIX 0.9.9:";;+   esac+  cat <<\_ACEOF++Optional Packages:+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)+  --with-timberc=DIR      Path to timberc++Some influential environment variables:+  CC          C compiler command+  CFLAGS      C compiler flags+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a+              nonstandard directory <lib dir>+  LIBS        libraries to pass to the linker, e.g. -l<library>+  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if+              you have headers in a nonstandard directory <include dir>+  CPP         C preprocessor++Use these variables to override the choices made by `configure' or to help+it to find libraries and programs with nonstandard names/locations.++Report bugs to <nordland@csee.ltu.se>.+_ACEOF+ac_status=$?+fi++if test "$ac_init_help" = "recursive"; then+  # If there are subdirs, report their specific --help.+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue+    test -d "$ac_dir" ||+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||+      continue+    ac_builddir=.++case "$ac_dir" in+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;+*)+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`+  # A ".." for each directory in $ac_dir_suffix.+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`+  case $ac_top_builddir_sub in+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;+  esac ;;+esac+ac_abs_top_builddir=$ac_pwd+ac_abs_builddir=$ac_pwd$ac_dir_suffix+# for backward compatibility:+ac_top_builddir=$ac_top_build_prefix++case $srcdir in+  .)  # We are building in place.+    ac_srcdir=.+    ac_top_srcdir=$ac_top_builddir_sub+    ac_abs_top_srcdir=$ac_pwd ;;+  [\\/]* | ?:[\\/]* )  # Absolute name.+    ac_srcdir=$srcdir$ac_dir_suffix;+    ac_top_srcdir=$srcdir+    ac_abs_top_srcdir=$srcdir ;;+  *) # Relative name.+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix+    ac_top_srcdir=$ac_top_build_prefix$srcdir+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;+esac+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix++    cd "$ac_dir" || { ac_status=$?; continue; }+    # Check for guested configure.+    if test -f "$ac_srcdir/configure.gnu"; then+      echo &&+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive+    elif test -f "$ac_srcdir/configure"; then+      echo &&+      $SHELL "$ac_srcdir/configure" --help=recursive+    else+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2+    fi || ac_status=$?+    cd "$ac_pwd" || { ac_status=$?; break; }+  done+fi++test -n "$ac_init_help" && exit $ac_status+if $ac_init_version; then+  cat <<\_ACEOF+rtsPOSIX configure 0.9.9+generated by GNU Autoconf 2.63++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.+This configure script is free software; the Free Software Foundation+gives unlimited permission to copy, distribute and modify it.+_ACEOF+  exit+fi+cat >config.log <<_ACEOF+This file contains any messages produced by compilers while+running configure, to aid debugging if configure makes a mistake.++It was created by rtsPOSIX $as_me 0.9.9, which was+generated by GNU Autoconf 2.63.  Invocation command line was++  $ $0 $@++_ACEOF+exec 5>>config.log+{+cat <<_ASUNAME+## --------- ##+## Platform. ##+## --------- ##++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`+uname -m = `(uname -m) 2>/dev/null || echo unknown`+uname -r = `(uname -r) 2>/dev/null || echo unknown`+uname -s = `(uname -s) 2>/dev/null || echo unknown`+uname -v = `(uname -v) 2>/dev/null || echo unknown`++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`++/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`++_ASUNAME++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  $as_echo "PATH: $as_dir"+done+IFS=$as_save_IFS++} >&5++cat >&5 <<_ACEOF+++## ----------- ##+## Core tests. ##+## ----------- ##++_ACEOF+++# Keep a trace of the command line.+# Strip out --no-create and --no-recursion so they do not pile up.+# Strip out --silent because we don't want to record it for future runs.+# Also quote any args containing shell meta-characters.+# Make two passes to allow for proper duplicate-argument suppression.+ac_configure_args=+ac_configure_args0=+ac_configure_args1=+ac_must_keep_next=false+for ac_pass in 1 2+do+  for ac_arg+  do+    case $ac_arg in+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \+    | -silent | --silent | --silen | --sile | --sil)+      continue ;;+    *\'*)+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;+    esac+    case $ac_pass in+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;+    2)+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"+      if test $ac_must_keep_next = true; then+	ac_must_keep_next=false # Got value, back to normal.+      else+	case $ac_arg in+	  *=* | --config-cache | -C | -disable-* | --disable-* \+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \+	  | -with-* | --with-* | -without-* | --without-* | --x)+	    case "$ac_configure_args0 " in+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;+	    esac+	    ;;+	  -* ) ac_must_keep_next=true ;;+	esac+      fi+      ac_configure_args="$ac_configure_args '$ac_arg'"+      ;;+    esac+  done+done+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }++# When interrupted or exit'd, cleanup temporary files, and complete+# config.log.  We remove comments because anyway the quotes in there+# would cause problems or look ugly.+# WARNING: Use '\'' to represent an apostrophe within the trap.+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.+trap 'exit_status=$?+  # Save into config.log some information that might help in debugging.+  {+    echo++    cat <<\_ASBOX+## ---------------- ##+## Cache variables. ##+## ---------------- ##+_ASBOX+    echo+    # The following way of writing the cache mishandles newlines in values,+(+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do+    eval ac_val=\$$ac_var+    case $ac_val in #(+    *${as_nl}*)+      case $ac_var in #(+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;+      esac+      case $ac_var in #(+      _ | IFS | as_nl) ;; #(+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(+      *) $as_unset $ac_var ;;+      esac ;;+    esac+  done+  (set) 2>&1 |+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(+    *${as_nl}ac_space=\ *)+      sed -n \+	"s/'\''/'\''\\\\'\'''\''/g;+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"+      ;; #(+    *)+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"+      ;;+    esac |+    sort+)+    echo++    cat <<\_ASBOX+## ----------------- ##+## Output variables. ##+## ----------------- ##+_ASBOX+    echo+    for ac_var in $ac_subst_vars+    do+      eval ac_val=\$$ac_var+      case $ac_val in+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;+      esac+      $as_echo "$ac_var='\''$ac_val'\''"+    done | sort+    echo++    if test -n "$ac_subst_files"; then+      cat <<\_ASBOX+## ------------------- ##+## File substitutions. ##+## ------------------- ##+_ASBOX+      echo+      for ac_var in $ac_subst_files+      do+	eval ac_val=\$$ac_var+	case $ac_val in+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;+	esac+	$as_echo "$ac_var='\''$ac_val'\''"+      done | sort+      echo+    fi++    if test -s confdefs.h; then+      cat <<\_ASBOX+## ----------- ##+## confdefs.h. ##+## ----------- ##+_ASBOX+      echo+      cat confdefs.h+      echo+    fi+    test "$ac_signal" != 0 &&+      $as_echo "$as_me: caught signal $ac_signal"+    $as_echo "$as_me: exit $exit_status"+  } >&5+  rm -f core *.core core.conftest.* &&+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&+    exit $exit_status+' 0+for ac_signal in 1 2 13 15; do+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal+done+ac_signal=0++# confdefs.h avoids OS command line length limits that DEFS can exceed.+rm -f -r conftest* confdefs.h++# Predefined preprocessor variables.++cat >>confdefs.h <<_ACEOF+#define PACKAGE_NAME "$PACKAGE_NAME"+_ACEOF+++cat >>confdefs.h <<_ACEOF+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"+_ACEOF+++cat >>confdefs.h <<_ACEOF+#define PACKAGE_VERSION "$PACKAGE_VERSION"+_ACEOF+++cat >>confdefs.h <<_ACEOF+#define PACKAGE_STRING "$PACKAGE_STRING"+_ACEOF+++cat >>confdefs.h <<_ACEOF+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"+_ACEOF+++# Let the site file select an alternate cache file if it wants to.+# Prefer an explicitly selected file to automatically selected ones.+ac_site_file1=NONE+ac_site_file2=NONE+if test -n "$CONFIG_SITE"; then+  ac_site_file1=$CONFIG_SITE+elif test "x$prefix" != xNONE; then+  ac_site_file1=$prefix/share/config.site+  ac_site_file2=$prefix/etc/config.site+else+  ac_site_file1=$ac_default_prefix/share/config.site+  ac_site_file2=$ac_default_prefix/etc/config.site+fi+for ac_site_file in "$ac_site_file1" "$ac_site_file2"+do+  test "x$ac_site_file" = xNONE && continue+  if test -r "$ac_site_file"; then+    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5+$as_echo "$as_me: loading site script $ac_site_file" >&6;}+    sed 's/^/| /' "$ac_site_file" >&5+    . "$ac_site_file"+  fi+done++if test -r "$cache_file"; then+  # Some versions of bash will fail to source /dev/null (special+  # files actually), so we avoid doing that.+  if test -f "$cache_file"; then+    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5+$as_echo "$as_me: loading cache $cache_file" >&6;}+    case $cache_file in+      [\\/]* | ?:[\\/]* ) . "$cache_file";;+      *)                      . "./$cache_file";;+    esac+  fi+else+  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5+$as_echo "$as_me: creating cache $cache_file" >&6;}+  >$cache_file+fi++# Check that the precious variables saved in the cache have kept the same+# value.+ac_cache_corrupted=false+for ac_var in $ac_precious_vars; do+  eval ac_old_set=\$ac_cv_env_${ac_var}_set+  eval ac_new_set=\$ac_env_${ac_var}_set+  eval ac_old_val=\$ac_cv_env_${ac_var}_value+  eval ac_new_val=\$ac_env_${ac_var}_value+  case $ac_old_set,$ac_new_set in+    set,)+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}+      ac_cache_corrupted=: ;;+    ,set)+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}+      ac_cache_corrupted=: ;;+    ,);;+    *)+      if test "x$ac_old_val" != "x$ac_new_val"; then+	# differences in whitespace do not lead to failure.+	ac_old_val_w=`echo x $ac_old_val`+	ac_new_val_w=`echo x $ac_new_val`+	if test "$ac_old_val_w" != "$ac_new_val_w"; then+	  { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}+	  ac_cache_corrupted=:+	else+	  { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}+	  eval $ac_var=\$ac_old_val+	fi+	{ $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}+	{ $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}+      fi;;+  esac+  # Pass precious variables to config.status.+  if test "$ac_new_set" = set; then+    case $ac_new_val in+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;+    *) ac_arg=$ac_var=$ac_new_val ;;+    esac+    case " $ac_configure_args " in+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;+    esac+  fi+done+if $ac_cache_corrupted; then+  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}+  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5+$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}+   { (exit 1); exit 1; }; }+fi++++++++++++++++++++++++++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++++ac_config_headers="$ac_config_headers config.h"+++# Checks for programs.+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+if test -n "$ac_tool_prefix"; then+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.+set dummy ${ac_tool_prefix}gcc; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_CC+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test -n "$CC"; then+  ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  for ac_exec_ext in '' $ac_executable_extensions; do+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+    ac_cv_prog_CC="${ac_tool_prefix}gcc"+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+    break 2+  fi+done+done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+  { $as_echo "$as_me:$LINENO: result: $CC" >&5+$as_echo "$CC" >&6; }+else+  { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_CC"; then+  ac_ct_CC=$CC+  # Extract the first word of "gcc", so it can be a program name with args.+set dummy gcc; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test -n "$ac_ct_CC"; then+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  for ac_exec_ext in '' $ac_executable_extensions; do+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+    ac_cv_prog_ac_ct_CC="gcc"+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+    break 2+  fi+done+done+IFS=$as_save_IFS++fi+fi+ac_ct_CC=$ac_cv_prog_ac_ct_CC+if test -n "$ac_ct_CC"; then+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5+$as_echo "$ac_ct_CC" >&6; }+else+  { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi++  if test "x$ac_ct_CC" = x; then+    CC=""+  else+    case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+    CC=$ac_ct_CC+  fi+else+  CC="$ac_cv_prog_CC"+fi++if test -z "$CC"; then+          if test -n "$ac_tool_prefix"; then+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.+set dummy ${ac_tool_prefix}cc; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_CC+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test -n "$CC"; then+  ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  for ac_exec_ext in '' $ac_executable_extensions; do+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+    ac_cv_prog_CC="${ac_tool_prefix}cc"+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+    break 2+  fi+done+done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+  { $as_echo "$as_me:$LINENO: result: $CC" >&5+$as_echo "$CC" >&6; }+else+  { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++  fi+fi+if test -z "$CC"; then+  # Extract the first word of "cc", so it can be a program name with args.+set dummy cc; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_CC+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test -n "$CC"; then+  ac_cv_prog_CC="$CC" # Let the user override the test.+else+  ac_prog_rejected=no+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  for ac_exec_ext in '' $ac_executable_extensions; do+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then+       ac_prog_rejected=yes+       continue+     fi+    ac_cv_prog_CC="cc"+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+    break 2+  fi+done+done+IFS=$as_save_IFS++if test $ac_prog_rejected = yes; then+  # We found a bogon in the path, so make sure we never use it.+  set dummy $ac_cv_prog_CC+  shift+  if test $# != 0; then+    # We chose a different compiler from the bogus one.+    # However, it has the same basename, so the bogon will be chosen+    # first if we set CC to just the basename; use the full file name.+    shift+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"+  fi+fi+fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+  { $as_echo "$as_me:$LINENO: result: $CC" >&5+$as_echo "$CC" >&6; }+else+  { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$CC"; then+  if test -n "$ac_tool_prefix"; then+  for ac_prog in cl.exe+  do+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.+set dummy $ac_tool_prefix$ac_prog; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_CC+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test -n "$CC"; then+  ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  for ac_exec_ext in '' $ac_executable_extensions; do+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+    break 2+  fi+done+done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+  { $as_echo "$as_me:$LINENO: result: $CC" >&5+$as_echo "$CC" >&6; }+else+  { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++    test -n "$CC" && break+  done+fi+if test -z "$CC"; then+  ac_ct_CC=$CC+  for ac_prog in cl.exe+do+  # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test -n "$ac_ct_CC"; then+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  for ac_exec_ext in '' $ac_executable_extensions; do+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+    ac_cv_prog_ac_ct_CC="$ac_prog"+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+    break 2+  fi+done+done+IFS=$as_save_IFS++fi+fi+ac_ct_CC=$ac_cv_prog_ac_ct_CC+if test -n "$ac_ct_CC"; then+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5+$as_echo "$ac_ct_CC" >&6; }+else+  { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++  test -n "$ac_ct_CC" && break+done++  if test "x$ac_ct_CC" = x; then+    CC=""+  else+    case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+    CC=$ac_ct_CC+  fi+fi++fi+++test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH+See \`config.log' for more details." >&5+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH+See \`config.log' for more details." >&2;}+   { (exit 1); exit 1; }; }; }++# Provide some information about the compiler.+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5+set X $ac_compile+ac_compiler=$2+{ (ac_try="$ac_compiler --version >&5"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compiler --version >&5") 2>&5+  ac_status=$?+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); }+{ (ac_try="$ac_compiler -v >&5"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compiler -v >&5") 2>&5+  ac_status=$?+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); }+{ (ac_try="$ac_compiler -V >&5"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compiler -V >&5") 2>&5+  ac_status=$?+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); }++cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */++int+main ()+{++  ;+  return 0;+}+_ACEOF+ac_clean_files_save=$ac_clean_files+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"+# Try to create an executable without -o first, disregard a.out.+# It will help us diagnose broken compilers, and finding out an intuition+# of exeext.+{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5+$as_echo_n "checking for C compiler default output file name... " >&6; }+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`++# The possible output files:+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"++ac_rmfiles=+for ac_file in $ac_files+do+  case $ac_file in+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;+  esac+done+rm -f $ac_rmfiles++if { (ac_try="$ac_link_default"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_link_default") 2>&5+  ac_status=$?+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); }; then+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'+# in a Makefile.  We should not override ac_cv_exeext if it was cached,+# so that the user can short-circuit this test for compilers unknown to+# Autoconf.+for ac_file in $ac_files ''+do+  test -f "$ac_file" || continue+  case $ac_file in+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )+	;;+    [ab].out )+	# We found the default executable, but exeext='' is most+	# certainly right.+	break;;+    *.* )+        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;+	then :; else+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`+	fi+	# We set ac_cv_exeext here because the later test for it is not+	# safe: cross compilers may not add the suffix if given an `-o'+	# argument, so we may need to know it at that point already.+	# Even if this section looks crufty: it has the advantage of+	# actually working.+	break;;+    * )+	break;;+  esac+done+test "$ac_cv_exeext" = no && ac_cv_exeext=++else+  ac_file=''+fi++{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5+$as_echo "$ac_file" >&6; }+if test -z "$ac_file"; then+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables+See \`config.log' for more details." >&5+$as_echo "$as_me: error: C compiler cannot create executables+See \`config.log' for more details." >&2;}+   { (exit 77); exit 77; }; }; }+fi++ac_exeext=$ac_cv_exeext++# Check that the compiler produces executables we can run.  If not, either+# the compiler is broken, or we cross compile.+{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5+$as_echo_n "checking whether the C compiler works... " >&6; }+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0+# If not cross compiling, check that we can run a simple program.+if test "$cross_compiling" != yes; then+  if { ac_try='./$ac_file'+  { (case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_try") 2>&5+  ac_status=$?+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); }; }; then+    cross_compiling=no+  else+    if test "$cross_compiling" = maybe; then+	cross_compiling=yes+    else+	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.+If you meant to cross compile, use \`--host'.+See \`config.log' for more details." >&5+$as_echo "$as_me: error: cannot run C compiled programs.+If you meant to cross compile, use \`--host'.+See \`config.log' for more details." >&2;}+   { (exit 1); exit 1; }; }; }+    fi+  fi+fi+{ $as_echo "$as_me:$LINENO: result: yes" >&5+$as_echo "yes" >&6; }++rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out+ac_clean_files=$ac_clean_files_save+# Check that the compiler produces executables we can run.  If not, either+# the compiler is broken, or we cross compile.+{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5+$as_echo_n "checking whether we are cross compiling... " >&6; }+{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5+$as_echo "$cross_compiling" >&6; }++{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5+$as_echo_n "checking for suffix of executables... " >&6; }+if { (ac_try="$ac_link"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_link") 2>&5+  ac_status=$?+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); }; then+  # If both `conftest.exe' and `conftest' are `present' (well, observable)+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will+# work properly (i.e., refer to `conftest.exe'), while it won't with+# `rm'.+for ac_file in conftest.exe conftest conftest.*; do+  test -f "$ac_file" || continue+  case $ac_file in+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`+	  break;;+    * ) break;;+  esac+done+else+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link+See \`config.log' for more details." >&5+$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link+See \`config.log' for more details." >&2;}+   { (exit 1); exit 1; }; }; }+fi++rm -f conftest$ac_cv_exeext+{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5+$as_echo "$ac_cv_exeext" >&6; }++rm -f conftest.$ac_ext+EXEEXT=$ac_cv_exeext+ac_exeext=$EXEEXT+{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5+$as_echo_n "checking for suffix of object files... " >&6; }+if test "${ac_cv_objext+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */++int+main ()+{++  ;+  return 0;+}+_ACEOF+rm -f conftest.o conftest.obj+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>&5+  ac_status=$?+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); }; then+  for ac_file in conftest.o conftest.obj conftest.*; do+  test -f "$ac_file" || continue;+  case $ac_file in+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`+       break;;+  esac+done+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile+See \`config.log' for more details." >&5+$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile+See \`config.log' for more details." >&2;}+   { (exit 1); exit 1; }; }; }+fi++rm -f conftest.$ac_cv_objext conftest.$ac_ext+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5+$as_echo "$ac_cv_objext" >&6; }+OBJEXT=$ac_cv_objext+ac_objext=$OBJEXT+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }+if test "${ac_cv_c_compiler_gnu+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */++int+main ()+{+#ifndef __GNUC__+       choke me+#endif++  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  ac_compiler_gnu=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	ac_compiler_gnu=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ac_cv_c_compiler_gnu=$ac_compiler_gnu++fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5+$as_echo "$ac_cv_c_compiler_gnu" >&6; }+if test $ac_compiler_gnu = yes; then+  GCC=yes+else+  GCC=+fi+ac_test_CFLAGS=${CFLAGS+set}+ac_save_CFLAGS=$CFLAGS+{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5+$as_echo_n "checking whether $CC accepts -g... " >&6; }+if test "${ac_cv_prog_cc_g+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  ac_save_c_werror_flag=$ac_c_werror_flag+   ac_c_werror_flag=yes+   ac_cv_prog_cc_g=no+   CFLAGS="-g"+   cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */++int+main ()+{++  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  ac_cv_prog_cc_g=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	CFLAGS=""+      cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */++int+main ()+{++  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  :+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	ac_c_werror_flag=$ac_save_c_werror_flag+	 CFLAGS="-g"+	 cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */++int+main ()+{++  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  ac_cv_prog_cc_g=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+   ac_c_werror_flag=$ac_save_c_werror_flag+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5+$as_echo "$ac_cv_prog_cc_g" >&6; }+if test "$ac_test_CFLAGS" = set; then+  CFLAGS=$ac_save_CFLAGS+elif test $ac_cv_prog_cc_g = yes; then+  if test "$GCC" = yes; then+    CFLAGS="-g -O2"+  else+    CFLAGS="-g"+  fi+else+  if test "$GCC" = yes; then+    CFLAGS="-O2"+  else+    CFLAGS=+  fi+fi+{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }+if test "${ac_cv_prog_cc_c89+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  ac_cv_prog_cc_c89=no+ac_save_CC=$CC+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <stdarg.h>+#include <stdio.h>+#include <sys/types.h>+#include <sys/stat.h>+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */+struct buf { int x; };+FILE * (*rcsopen) (struct buf *, struct stat *, int);+static char *e (p, i)+     char **p;+     int i;+{+  return p[i];+}+static char *f (char * (*g) (char **, int), char **p, ...)+{+  char *s;+  va_list v;+  va_start (v,p);+  s = g (p, va_arg (v,int));+  va_end (v);+  return s;+}++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has+   function prototypes and stuff, but not '\xHH' hex character constants.+   These don't provoke an error unfortunately, instead are silently treated+   as 'x'.  The following induces an error, until -std is added to get+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an+   array size at least.  It's necessary to write '\x00'==0 to get something+   that's true only with -std.  */+int osf4_cc_array ['\x00' == 0 ? 1 : -1];++/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters+   inside strings and character constants.  */+#define FOO(x) 'x'+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];++int test (int i, double x);+struct s1 {int (*f) (int a);};+struct s2 {int (*f) (double a);};+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);+int argc;+char **argv;+int+main ()+{+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];+  ;+  return 0;+}+_ACEOF+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"+do+  CC="$ac_save_CC $ac_arg"+  rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  ac_cv_prog_cc_c89=$ac_arg+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++fi++rm -f core conftest.err conftest.$ac_objext+  test "x$ac_cv_prog_cc_c89" != "xno" && break+done+rm -f conftest.$ac_ext+CC=$ac_save_CC++fi+# AC_CACHE_VAL+case "x$ac_cv_prog_cc_c89" in+  x)+    { $as_echo "$as_me:$LINENO: result: none needed" >&5+$as_echo "none needed" >&6; } ;;+  xno)+    { $as_echo "$as_me:$LINENO: result: unsupported" >&5+$as_echo "unsupported" >&6; } ;;+  *)+    CC="$CC $ac_cv_prog_cc_c89"+    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;+esac+++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++ac_aux_dir=+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do+  if test -f "$ac_dir/install-sh"; then+    ac_aux_dir=$ac_dir+    ac_install_sh="$ac_aux_dir/install-sh -c"+    break+  elif test -f "$ac_dir/install.sh"; then+    ac_aux_dir=$ac_dir+    ac_install_sh="$ac_aux_dir/install.sh -c"+    break+  elif test -f "$ac_dir/shtool"; then+    ac_aux_dir=$ac_dir+    ac_install_sh="$ac_aux_dir/shtool install -c"+    break+  fi+done+if test -z "$ac_aux_dir"; then+  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5+$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}+   { (exit 1); exit 1; }; }+fi++# These three variables are undocumented and unsupported,+# and are intended to be withdrawn in a future Autoconf release.+# They can cause serious problems if a builder's source tree is in a directory+# whose full name contains unusual characters.+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.+++# Find a good install program.  We prefer a C program (faster),+# so one script is as good as another.  But avoid the broken or+# incompatible versions:+# SysV /etc/install, /usr/sbin/install+# SunOS /usr/etc/install+# IRIX /sbin/install+# AIX /bin/install+# AmigaOS /C/install, which installs bootblocks on floppy discs+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag+# AFS /usr/afsws/bin/install, which mishandles nonexistent args+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"+# OS/2's system install, which has a completely different semantic+# ./install, which can be erroneously created by make from ./install.sh.+# Reject install programs that cannot install multiple files.+{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5+$as_echo_n "checking for a BSD-compatible install... " >&6; }+if test -z "$INSTALL"; then+if test "${ac_cv_path_install+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  # Account for people who put trailing slashes in PATH elements.+case $as_dir/ in+  ./ | .// | /cC/* | \+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \+  /usr/ucb/* ) ;;+  *)+    # OSF1 and SCO ODT 3.0 have their own names for install.+    # Don't use installbsd from OSF since it installs stuff as root+    # by default.+    for ac_prog in ginstall scoinst install; do+      for ac_exec_ext in '' $ac_executable_extensions; do+	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then+	  if test $ac_prog = install &&+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then+	    # AIX install.  It has an incompatible calling convention.+	    :+	  elif test $ac_prog = install &&+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then+	    # program-specific install script used by HP pwplus--don't use.+	    :+	  else+	    rm -rf conftest.one conftest.two conftest.dir+	    echo one > conftest.one+	    echo two > conftest.two+	    mkdir conftest.dir+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&+	      test -s conftest.one && test -s conftest.two &&+	      test -s conftest.dir/conftest.one &&+	      test -s conftest.dir/conftest.two+	    then+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"+	      break 3+	    fi+	  fi+	fi+      done+    done+    ;;+esac++done+IFS=$as_save_IFS++rm -rf conftest.one conftest.two conftest.dir++fi+  if test "${ac_cv_path_install+set}" = set; then+    INSTALL=$ac_cv_path_install+  else+    # As a last resort, use the slow shell script.  Don't cache a+    # value for INSTALL within a source directory, because that will+    # break other packages using the cache if that directory is+    # removed, or if the value is a relative name.+    INSTALL=$ac_install_sh+  fi+fi+{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5+$as_echo "$INSTALL" >&6; }++# Use test -z because SunOS4 sh mishandles braces in ${var-val}.+# It thinks the first close brace ends the variable substitution.+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'+++# Force building 32-bit applications since we're not 64-bit clean.+#+# GCC accepts -m32 on most architectures that might have a corresponding+# 64-bit architecture, for example sparc and MIPS.++old_CFLAGS="$CFLAGS"+CFLAGS="$CFLAGS -m32"++cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */++int+main ()+{+return 1;++  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  :+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	CFLAGS="$old_CFLAGS"++fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++# Checks for libraries.++# Look for pthreads.+# Make sure we can run config.sub.+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||+  { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5+$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}+   { (exit 1); exit 1; }; }++{ $as_echo "$as_me:$LINENO: checking build system type" >&5+$as_echo_n "checking build system type... " >&6; }+if test "${ac_cv_build+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  ac_build_alias=$build_alias+test "x$ac_build_alias" = x &&+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`+test "x$ac_build_alias" = x &&+  { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5+$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}+   { (exit 1); exit 1; }; }+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||+  { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}+   { (exit 1); exit 1; }; }++fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5+$as_echo "$ac_cv_build" >&6; }+case $ac_cv_build in+*-*-*) ;;+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5+$as_echo "$as_me: error: invalid value of canonical build" >&2;}+   { (exit 1); exit 1; }; };;+esac+build=$ac_cv_build+ac_save_IFS=$IFS; IFS='-'+set x $ac_cv_build+shift+build_cpu=$1+build_vendor=$2+shift; shift+# Remember, the first character of IFS is used to create $*,+# except with old shells:+build_os=$*+IFS=$ac_save_IFS+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac+++{ $as_echo "$as_me:$LINENO: checking host system type" >&5+$as_echo_n "checking host system type... " >&6; }+if test "${ac_cv_host+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test "x$host_alias" = x; then+  ac_cv_host=$ac_cv_build+else+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||+    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}+   { (exit 1); exit 1; }; }+fi++fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5+$as_echo "$ac_cv_host" >&6; }+case $ac_cv_host in+*-*-*) ;;+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5+$as_echo "$as_me: error: invalid value of canonical host" >&2;}+   { (exit 1); exit 1; }; };;+esac+host=$ac_cv_host+ac_save_IFS=$IFS; IFS='-'+set x $ac_cv_host+shift+host_cpu=$1+host_vendor=$2+shift; shift+# Remember, the first character of IFS is used to create $*,+# except with old shells:+host_os=$*+IFS=$ac_save_IFS+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac++++++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++acx_pthread_ok=no++# We used to check for pthread.h first, but this fails if pthread.h+# requires special compiler flags (e.g. on True64 or Sequent).+# It gets checked for in the link test anyway.++# First of all, check if the user has set any of the PTHREAD_LIBS,+# etcetera environment variables, and if threads linking works using+# them:+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then+        save_CFLAGS="$CFLAGS"+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"+        save_LIBS="$LIBS"+        LIBS="$PTHREAD_LIBS $LIBS"+        { $as_echo "$as_me:$LINENO: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5+$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; }+        cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */++/* Override any GCC internal prototype to avoid an error.+   Use char because int might match the return type of a GCC+   builtin and then its argument prototype would still apply.  */+#ifdef __cplusplus+extern "C"+#endif+char pthread_join ();+int+main ()+{+return pthread_join ();+  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_link") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest$ac_exeext && {+	 test "$cross_compiling" = yes ||+	 $as_test_x conftest$ac_exeext+       }; then+  acx_pthread_ok=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+      conftest$ac_exeext conftest.$ac_ext+        { $as_echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5+$as_echo "$acx_pthread_ok" >&6; }+        if test x"$acx_pthread_ok" = xno; then+                PTHREAD_LIBS=""+                PTHREAD_CFLAGS=""+        fi+        LIBS="$save_LIBS"+        CFLAGS="$save_CFLAGS"+fi++# We must check for the threads library under a number of different+# names; the ordering is very important because some systems+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the+# libraries is broken (non-POSIX).++# Create a list of thread flags to try.  Items starting with a "-" are+# C compiler flags, and other items are library names, except for "none"+# which indicates that we try without any flags at all, and "pthread-config"+# which is a program returning the flags for the Pth emulation library.++acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"++# The ordering *is* (sometimes) important.  Some notes on the+# individual items follow:++# pthreads: AIX (must check this before -lpthread)+# none: in case threads are in libc; should be tried before -Kthread and+#       other compiler flags to prevent continual compiler warnings+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)+# -pthreads: Solaris/gcc+# -mthreads: Mingw32/gcc, Lynx/gcc+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it+#      doesn't hurt to check since this sometimes defines pthreads too;+#      also defines -D_REENTRANT)+#      ... -mt is also the pthreads flag for HP/aCC+# pthread: Linux, etcetera+# --thread-safe: KAI C+++# pthread-config: use pthread-config program (for GNU Pth library)++case "${host_cpu}-${host_os}" in+        *solaris*)++        # On Solaris (at least, for some versions), libc contains stubbed+        # (non-functional) versions of the pthreads routines, so link-based+        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather+        # a function called by this macro, so we could check for that, but+        # who knows whether they'll stub that too in a future libc.)  So,+        # we'll just look for -pthreads and -lpthread first:++        acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags"+        ;;+esac++if test x"$acx_pthread_ok" = xno; then+for flag in $acx_pthread_flags; do++        case $flag in+                none)+                { $as_echo "$as_me:$LINENO: checking whether pthreads work without any flags" >&5+$as_echo_n "checking whether pthreads work without any flags... " >&6; }+                ;;++                -*)+                { $as_echo "$as_me:$LINENO: checking whether pthreads work with $flag" >&5+$as_echo_n "checking whether pthreads work with $flag... " >&6; }+                PTHREAD_CFLAGS="$flag"+                ;;++		pthread-config)+		# Extract the first word of "pthread-config", so it can be a program name with args.+set dummy pthread-config; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_acx_pthread_config+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test -n "$acx_pthread_config"; then+  ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  for ac_exec_ext in '' $ac_executable_extensions; do+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+    ac_cv_prog_acx_pthread_config="yes"+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+    break 2+  fi+done+done+IFS=$as_save_IFS++  test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no"+fi+fi+acx_pthread_config=$ac_cv_prog_acx_pthread_config+if test -n "$acx_pthread_config"; then+  { $as_echo "$as_me:$LINENO: result: $acx_pthread_config" >&5+$as_echo "$acx_pthread_config" >&6; }+else+  { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++		if test x"$acx_pthread_config" = xno; then continue; fi+		PTHREAD_CFLAGS="`pthread-config --cflags`"+		PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"+		;;++                *)+                { $as_echo "$as_me:$LINENO: checking for the pthreads library -l$flag" >&5+$as_echo_n "checking for the pthreads library -l$flag... " >&6; }+                PTHREAD_LIBS="-l$flag"+                ;;+        esac++        save_LIBS="$LIBS"+        save_CFLAGS="$CFLAGS"+        LIBS="$PTHREAD_LIBS $LIBS"+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"++        # Check for various functions.  We must include pthread.h,+        # since some functions may be macros.  (On the Sequent, we+        # need a special flag -Kthread to make this header compile.)+        # We check for pthread_join because it is in -lpthread on IRIX+        # while pthread_create is in libc.  We check for pthread_attr_init+        # due to DEC craziness with -lpthreads.  We check for+        # pthread_cleanup_push because it is one of the few pthread+        # functions on Solaris that doesn't have a non-functional libc stub.+        # We try pthread_create on general principles.+        cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <pthread.h>+int+main ()+{+pthread_t th; pthread_join(th, 0);+                     pthread_attr_init(0); pthread_cleanup_push(0, 0);+                     pthread_create(0,0,0,0); pthread_cleanup_pop(0);+  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_link") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest$ac_exeext && {+	 test "$cross_compiling" = yes ||+	 $as_test_x conftest$ac_exeext+       }; then+  acx_pthread_ok=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+      conftest$ac_exeext conftest.$ac_ext++        LIBS="$save_LIBS"+        CFLAGS="$save_CFLAGS"++        { $as_echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5+$as_echo "$acx_pthread_ok" >&6; }+        if test "x$acx_pthread_ok" = xyes; then+                break;+        fi++        PTHREAD_LIBS=""+        PTHREAD_CFLAGS=""+done+fi++# Various other checks:+if test "x$acx_pthread_ok" = xyes; then+        save_LIBS="$LIBS"+        LIBS="$PTHREAD_LIBS $LIBS"+        save_CFLAGS="$CFLAGS"+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"++        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.+	{ $as_echo "$as_me:$LINENO: checking for joinable pthread attribute" >&5+$as_echo_n "checking for joinable pthread attribute... " >&6; }+	attr_name=unknown+	for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do+	    cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <pthread.h>+int+main ()+{+int attr=$attr; return attr;+  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_link") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest$ac_exeext && {+	 test "$cross_compiling" = yes ||+	 $as_test_x conftest$ac_exeext+       }; then+  attr_name=$attr; break+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+      conftest$ac_exeext conftest.$ac_ext+	done+        { $as_echo "$as_me:$LINENO: result: $attr_name" >&5+$as_echo "$attr_name" >&6; }+        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then++cat >>confdefs.h <<_ACEOF+#define PTHREAD_CREATE_JOINABLE $attr_name+_ACEOF++        fi++        { $as_echo "$as_me:$LINENO: checking if more special flags are required for pthreads" >&5+$as_echo_n "checking if more special flags are required for pthreads... " >&6; }+        flag=no+        case "${host_cpu}-${host_os}" in+            *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;+            *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;+        esac+        { $as_echo "$as_me:$LINENO: result: ${flag}" >&5+$as_echo "${flag}" >&6; }+        if test "x$flag" != xno; then+            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"+        fi++        LIBS="$save_LIBS"+        CFLAGS="$save_CFLAGS"++        # More AIX lossage: must compile with xlc_r or cc_r+	if test x"$GCC" != xyes; then+          for ac_prog in xlc_r cc_r+do+  # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test -n "$PTHREAD_CC"; then+  ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  for ac_exec_ext in '' $ac_executable_extensions; do+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+    ac_cv_prog_PTHREAD_CC="$ac_prog"+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+    break 2+  fi+done+done+IFS=$as_save_IFS++fi+fi+PTHREAD_CC=$ac_cv_prog_PTHREAD_CC+if test -n "$PTHREAD_CC"; then+  { $as_echo "$as_me:$LINENO: result: $PTHREAD_CC" >&5+$as_echo "$PTHREAD_CC" >&6; }+else+  { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++  test -n "$PTHREAD_CC" && break+done+test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}"++        else+          PTHREAD_CC=$CC+	fi+else+        PTHREAD_CC="$CC"+fi++++++# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:+if test x"$acx_pthread_ok" = xyes; then++cat >>confdefs.h <<\_ACEOF+#define HAVE_PTHREAD 1+_ACEOF++        :+else+        acx_pthread_ok=no++fi+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++++if test "$THREAD_SUPPORT" = "no"; then+	{ { $as_echo "$as_me:$LINENO: error: Cannot enable threads on this platform." >&5+$as_echo "$as_me: error: Cannot enable threads on this platform." >&2;}+   { (exit 1); exit 1; }; }+fi++CC="$PTHREAD_CC"+CFLAGS="$CFLAGS $PTHREAD_CFLAGS"+LIBS="$PTHREAD_LIBS $LIBS"++# Make sure that pthread realtime-threads extension is available. This is+# not the default behaviour on most GNU/Linux dists. If it turns out that+# the realtime-threads extension is not available we add -D_GNU_SOURCE=1+# as this should enable all extensions on most GNU/Linux dists. For more+# information please see <features.h>.+{ $as_echo "$as_me:$LINENO: checking pthread realtime-threads extension" >&5+$as_echo_n "checking pthread realtime-threads extension... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <pthread.h>+int+main ()+{+pthread_mutexattr_setprotocol(NULL, PTHREAD_PRIO_INHERIT);++  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  need_gnu_source=no+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	need_gnu_source=yes++fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++if test "x$need_gnu_source" = "xyes"; then+	CFLAGS="$CFLAGS -D_GNU_SOURCE=1"+fi++# Finalize the checking for pthread realtime-threads extension. This may+# still fail if -D_GNU_SOURCE=1 does not enable the realtime-threads+# extension. I this is the case then we are either running this on a+# system without the realtime-threads extension or we need to perform some+# other kind of black magic to enable it. If you know of any such platform+# then please feel free to send a patch.+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <pthread.h>+int+main ()+{+pthread_mutexattr_setprotocol(NULL, PTHREAD_PRIO_INHERIT);++  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  { $as_echo "$as_me:$LINENO: result: yes" >&5+$as_echo "yes" >&6; }+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: no+See \`config.log' for more details." >&5+$as_echo "$as_me: error: no+See \`config.log' for more details." >&2;}+   { (exit 1); exit 1; }; }; }++fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+++# Check whether --with-timberc was given.+if test "${with_timberc+set}" = set; then+  withval=$with_timberc; with_timberc=$withval++fi+++if test "x$with_timberc" = "x"; then+	for ac_prog in timberc+do+  # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_TIMBERC+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test -n "$TIMBERC"; then+  ac_cv_prog_TIMBERC="$TIMBERC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  for ac_exec_ext in '' $ac_executable_extensions; do+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+    ac_cv_prog_TIMBERC="$ac_prog"+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+    break 2+  fi+done+done+IFS=$as_save_IFS++fi+fi+TIMBERC=$ac_cv_prog_TIMBERC+if test -n "$TIMBERC"; then+  { $as_echo "$as_me:$LINENO: result: $TIMBERC" >&5+$as_echo "$TIMBERC" >&6; }+else+  { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++  test -n "$TIMBERC" && break+done++else+	TIMBERC="$with_timberc"+fi++if test "x$TIMBERC" = "x"; then+	{ { $as_echo "$as_me:$LINENO: error: Timberc not found." >&5+$as_echo "$as_me: error: Timberc not found." >&2;}+   { (exit 1); exit 1; }; }+fi++# Checks for header files.+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5+$as_echo_n "checking how to run the C preprocessor... " >&6; }+# On Suns, sometimes $CPP names a directory.+if test -n "$CPP" && test -d "$CPP"; then+  CPP=+fi+if test -z "$CPP"; then+  if test "${ac_cv_prog_CPP+set}" = set; then+  $as_echo_n "(cached) " >&6+else+      # Double quotes because CPP needs to be expanded+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"+    do+      ac_preproc_ok=false+for ac_c_preproc_warn_flag in '' yes+do+  # Use a header file that comes with gcc, so configuring glibc+  # with a fresh cross-compiler works.+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+  # <limits.h> exists even on freestanding compilers.+  # On the NeXT, cc -E runs the code through the compiler's parser,+  # not just through cpp. "Syntax error" is here to catch this case.+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif+		     Syntax error+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } >/dev/null && {+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+	 test ! -s conftest.err+       }; then+  :+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++  # Broken: fails on valid input.+continue+fi++rm -f conftest.err conftest.$ac_ext++  # OK, works on sane cases.  Now check whether nonexistent headers+  # can be detected and how.+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <ac_nonexistent.h>+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } >/dev/null && {+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+	 test ! -s conftest.err+       }; then+  # Broken: success on invalid input.+continue+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++  # Passes both tests.+ac_preproc_ok=:+break+fi++rm -f conftest.err conftest.$ac_ext++done+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.+rm -f conftest.err conftest.$ac_ext+if $ac_preproc_ok; then+  break+fi++    done+    ac_cv_prog_CPP=$CPP++fi+  CPP=$ac_cv_prog_CPP+else+  ac_cv_prog_CPP=$CPP+fi+{ $as_echo "$as_me:$LINENO: result: $CPP" >&5+$as_echo "$CPP" >&6; }+ac_preproc_ok=false+for ac_c_preproc_warn_flag in '' yes+do+  # Use a header file that comes with gcc, so configuring glibc+  # with a fresh cross-compiler works.+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+  # <limits.h> exists even on freestanding compilers.+  # On the NeXT, cc -E runs the code through the compiler's parser,+  # not just through cpp. "Syntax error" is here to catch this case.+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif+		     Syntax error+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } >/dev/null && {+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+	 test ! -s conftest.err+       }; then+  :+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++  # Broken: fails on valid input.+continue+fi++rm -f conftest.err conftest.$ac_ext++  # OK, works on sane cases.  Now check whether nonexistent headers+  # can be detected and how.+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <ac_nonexistent.h>+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } >/dev/null && {+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+	 test ! -s conftest.err+       }; then+  # Broken: success on invalid input.+continue+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++  # Passes both tests.+ac_preproc_ok=:+break+fi++rm -f conftest.err conftest.$ac_ext++done+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.+rm -f conftest.err conftest.$ac_ext+if $ac_preproc_ok; then+  :+else+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check+See \`config.log' for more details." >&5+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check+See \`config.log' for more details." >&2;}+   { (exit 1); exit 1; }; }; }+fi++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }+if test "${ac_cv_path_GREP+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test -z "$GREP"; then+  ac_path_GREP_found=false+  # Loop through the user's path and test for each of PROGNAME-LIST+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  for ac_prog in grep ggrep; do+    for ac_exec_ext in '' $ac_executable_extensions; do+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue+# Check for GNU ac_path_GREP and select it if it is found.+  # Check for GNU $ac_path_GREP+case `"$ac_path_GREP" --version 2>&1` in+*GNU*)+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;+*)+  ac_count=0+  $as_echo_n 0123456789 >"conftest.in"+  while :+  do+    cat "conftest.in" "conftest.in" >"conftest.tmp"+    mv "conftest.tmp" "conftest.in"+    cp "conftest.in" "conftest.nl"+    $as_echo 'GREP' >> "conftest.nl"+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break+    ac_count=`expr $ac_count + 1`+    if test $ac_count -gt ${ac_path_GREP_max-0}; then+      # Best one so far, save it but keep looking for a better one+      ac_cv_path_GREP="$ac_path_GREP"+      ac_path_GREP_max=$ac_count+    fi+    # 10*(2^10) chars as input seems more than enough+    test $ac_count -gt 10 && break+  done+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;+esac++      $ac_path_GREP_found && break 3+    done+  done+done+IFS=$as_save_IFS+  if test -z "$ac_cv_path_GREP"; then+    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5+$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}+   { (exit 1); exit 1; }; }+  fi+else+  ac_cv_path_GREP=$GREP+fi++fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5+$as_echo "$ac_cv_path_GREP" >&6; }+ GREP="$ac_cv_path_GREP"+++{ $as_echo "$as_me:$LINENO: checking for egrep" >&5+$as_echo_n "checking for egrep... " >&6; }+if test "${ac_cv_path_EGREP+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1+   then ac_cv_path_EGREP="$GREP -E"+   else+     if test -z "$EGREP"; then+  ac_path_EGREP_found=false+  # Loop through the user's path and test for each of PROGNAME-LIST+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  for ac_prog in egrep; do+    for ac_exec_ext in '' $ac_executable_extensions; do+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue+# Check for GNU ac_path_EGREP and select it if it is found.+  # Check for GNU $ac_path_EGREP+case `"$ac_path_EGREP" --version 2>&1` in+*GNU*)+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;+*)+  ac_count=0+  $as_echo_n 0123456789 >"conftest.in"+  while :+  do+    cat "conftest.in" "conftest.in" >"conftest.tmp"+    mv "conftest.tmp" "conftest.in"+    cp "conftest.in" "conftest.nl"+    $as_echo 'EGREP' >> "conftest.nl"+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break+    ac_count=`expr $ac_count + 1`+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then+      # Best one so far, save it but keep looking for a better one+      ac_cv_path_EGREP="$ac_path_EGREP"+      ac_path_EGREP_max=$ac_count+    fi+    # 10*(2^10) chars as input seems more than enough+    test $ac_count -gt 10 && break+  done+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;+esac++      $ac_path_EGREP_found && break 3+    done+  done+done+IFS=$as_save_IFS+  if test -z "$ac_cv_path_EGREP"; then+    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}+   { (exit 1); exit 1; }; }+  fi+else+  ac_cv_path_EGREP=$EGREP+fi++   fi+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5+$as_echo "$ac_cv_path_EGREP" >&6; }+ EGREP="$ac_cv_path_EGREP"+++{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5+$as_echo_n "checking for ANSI C header files... " >&6; }+if test "${ac_cv_header_stdc+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <stdlib.h>+#include <stdarg.h>+#include <string.h>+#include <float.h>++int+main ()+{++  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  ac_cv_header_stdc=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	ac_cv_header_stdc=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++if test $ac_cv_header_stdc = yes; then+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <string.h>++_ACEOF+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |+  $EGREP "memchr" >/dev/null 2>&1; then+  :+else+  ac_cv_header_stdc=no+fi+rm -f conftest*++fi++if test $ac_cv_header_stdc = yes; then+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <stdlib.h>++_ACEOF+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |+  $EGREP "free" >/dev/null 2>&1; then+  :+else+  ac_cv_header_stdc=no+fi+rm -f conftest*++fi++if test $ac_cv_header_stdc = yes; then+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.+  if test "$cross_compiling" = yes; then+  :+else+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <ctype.h>+#include <stdlib.h>+#if ((' ' & 0x0FF) == 0x020)+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))+#else+# define ISLOWER(c) \+		   (('a' <= (c) && (c) <= 'i') \+		     || ('j' <= (c) && (c) <= 'r') \+		     || ('s' <= (c) && (c) <= 'z'))+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))+#endif++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))+int+main ()+{+  int i;+  for (i = 0; i < 256; i++)+    if (XOR (islower (i), ISLOWER (i))+	|| toupper (i) != TOUPPER (i))+      return 2;+  return 0;+}+_ACEOF+rm -f conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_link") 2>&5+  ac_status=$?+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'+  { (case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_try") 2>&5+  ac_status=$?+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); }; }; then+  :+else+  $as_echo "$as_me: program exited with status $ac_status" >&5+$as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++( exit $ac_status )+ac_cv_header_stdc=no+fi+rm -rf conftest.dSYM+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext+fi+++fi+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5+$as_echo "$ac_cv_header_stdc" >&6; }+if test $ac_cv_header_stdc = yes; then++cat >>confdefs.h <<\_ACEOF+#define STDC_HEADERS 1+_ACEOF++fi++# On IRIX 5.3, sys/types and inttypes.h are conflicting.++++++++++for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \+		  inttypes.h stdint.h unistd.h+do+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5+$as_echo_n "checking for $ac_header... " >&6; }+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+  $as_echo_n "(cached) " >&6+else+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+$ac_includes_default++#include <$ac_header>+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  eval "$as_ac_Header=yes"+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	eval "$as_ac_Header=no"+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+ac_res=`eval 'as_val=${'$as_ac_Header'}+		 $as_echo "$as_val"'`+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+as_val=`eval 'as_val=${'$as_ac_Header'}+		 $as_echo "$as_val"'`+   if test "x$as_val" = x""yes; then+  cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1+_ACEOF++fi++done++++++for ac_header in stdlib.h sys/time.h termios.h+do+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5+$as_echo_n "checking for $ac_header... " >&6; }+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+  $as_echo_n "(cached) " >&6+fi+ac_res=`eval 'as_val=${'$as_ac_Header'}+		 $as_echo "$as_val"'`+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+else+  # Is the header compilable?+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5+$as_echo_n "checking $ac_header usability... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+$ac_includes_default+#include <$ac_header>+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  ac_header_compiler=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	ac_header_compiler=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5+$as_echo "$ac_header_compiler" >&6; }++# Is the header present?+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5+$as_echo_n "checking $ac_header presence... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <$ac_header>+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } >/dev/null && {+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+	 test ! -s conftest.err+       }; then+  ac_header_preproc=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++  ac_header_preproc=no+fi++rm -f conftest.err conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5+$as_echo "$ac_header_preproc" >&6; }++# So?  What about this header?+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in+  yes:no: )+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}+    ac_header_preproc=yes+    ;;+  no:yes:* )+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}+    ( cat <<\_ASBOX+## ----------------------------------- ##+## Report this to nordland@csee.ltu.se ##+## ----------------------------------- ##+_ASBOX+     ) | sed "s/^/$as_me: WARNING:     /" >&2+    ;;+esac+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5+$as_echo_n "checking for $ac_header... " >&6; }+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+  $as_echo_n "(cached) " >&6+else+  eval "$as_ac_Header=\$ac_header_preproc"+fi+ac_res=`eval 'as_val=${'$as_ac_Header'}+		 $as_echo "$as_val"'`+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }++fi+as_val=`eval 'as_val=${'$as_ac_Header'}+		 $as_echo "$as_val"'`+   if test "x$as_val" = x""yes; then+  cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1+_ACEOF++fi++done+++if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then+  { $as_echo "$as_me:$LINENO: checking for libkern/OSAtomic.h" >&5+$as_echo_n "checking for libkern/OSAtomic.h... " >&6; }+if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then+  $as_echo_n "(cached) " >&6+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libkern_OSAtomic_h" >&5+$as_echo "$ac_cv_header_libkern_OSAtomic_h" >&6; }+else+  # Is the header compilable?+{ $as_echo "$as_me:$LINENO: checking libkern/OSAtomic.h usability" >&5+$as_echo_n "checking libkern/OSAtomic.h usability... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+$ac_includes_default+#include <libkern/OSAtomic.h>+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  ac_header_compiler=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	ac_header_compiler=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5+$as_echo "$ac_header_compiler" >&6; }++# Is the header present?+{ $as_echo "$as_me:$LINENO: checking libkern/OSAtomic.h presence" >&5+$as_echo_n "checking libkern/OSAtomic.h presence... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <libkern/OSAtomic.h>+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } >/dev/null && {+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+	 test ! -s conftest.err+       }; then+  ac_header_preproc=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++  ac_header_preproc=no+fi++rm -f conftest.err conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5+$as_echo "$ac_header_preproc" >&6; }++# So?  What about this header?+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in+  yes:no: )+    { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: accepted by the compiler, rejected by the preprocessor!" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: accepted by the compiler, rejected by the preprocessor!" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: proceeding with the compiler's result" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: proceeding with the compiler's result" >&2;}+    ac_header_preproc=yes+    ;;+  no:yes:* )+    { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: present but cannot be compiled" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: present but cannot be compiled" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h:     check for missing prerequisite headers?" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h:     check for missing prerequisite headers?" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: see the Autoconf documentation" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: see the Autoconf documentation" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h:     section \"Present But Cannot Be Compiled\"" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h:     section \"Present But Cannot Be Compiled\"" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: proceeding with the preprocessor's result" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: proceeding with the preprocessor's result" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: in the future, the compiler will take precedence" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: in the future, the compiler will take precedence" >&2;}+    ( cat <<\_ASBOX+## ----------------------------------- ##+## Report this to nordland@csee.ltu.se ##+## ----------------------------------- ##+_ASBOX+     ) | sed "s/^/$as_me: WARNING:     /" >&2+    ;;+esac+{ $as_echo "$as_me:$LINENO: checking for libkern/OSAtomic.h" >&5+$as_echo_n "checking for libkern/OSAtomic.h... " >&6; }+if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  ac_cv_header_libkern_OSAtomic_h=$ac_header_preproc+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libkern_OSAtomic_h" >&5+$as_echo "$ac_cv_header_libkern_OSAtomic_h" >&6; }++fi+if test "x$ac_cv_header_libkern_OSAtomic_h" = x""yes; then++cat >>confdefs.h <<_ACEOF+#define HAVE_OSX_ATOMICS 1+_ACEOF++fi++++# Check the <sys/stat.h> header for XSI extensions. This should already be+# enable by -D_GNU_SOURCE=1, if it's supported.+# NOTE:+#   While it might be possible for the compiler to optimize away the int xsi+#   statement I'm not up for the challenge of writing something that is+#   _impossible_ for the compiler to optimize away.+{ $as_echo "$as_me:$LINENO: checking sys/stat.h header for XSI extensions" >&5+$as_echo_n "checking sys/stat.h header for XSI extensions... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <sys/stat.h>+int+main ()+{+mode_t mode_xsi = S_IWUSR|S_IRUSR|S_IRGRP|S_IROTH;++  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  { $as_echo "$as_me:$LINENO: result: yes" >&5+$as_echo "yes" >&6; }+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: no+See \`config.log' for more details." >&5+$as_echo "$as_me: error: no+See \`config.log' for more details." >&2;}+   { (exit 1); exit 1; }; }; }++fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++# Does this compiler have built-in functions for atomic memory access?+{ $as_echo "$as_me:$LINENO: checking if gcc supports __sync_bool_compare_and_swap" >&5+$as_echo_n "checking if gcc supports __sync_bool_compare_and_swap... " >&6; }++cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */++int+main ()+{++  int variable = 1;+  return (__sync_bool_compare_and_swap(&variable, 1, 2)+         && __sync_add_and_fetch(&variable, 1)) ? 1 : 0;++  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_link") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest$ac_exeext && {+	 test "$cross_compiling" = yes ||+	 $as_test_x conftest$ac_exeext+       }; then++  { $as_echo "$as_me:$LINENO: result: yes" >&5+$as_echo "yes" >&6; }++cat >>confdefs.h <<\_ACEOF+#define HAVE_BUILTIN_ATOMIC 1+_ACEOF+++else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++  # Retry with -march set for x86.+  old_CFLAGS="$CFLAGS"+  CFLAGS="$CFLAGS -march=i686"+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */++int+main ()+{++    int variable = 1;+    return (__sync_bool_compare_and_swap(&variable, 1, 2)+           && __sync_add_and_fetch(&variable, 1)) ? 1 : 0;++  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_link") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest$ac_exeext && {+	 test "$cross_compiling" = yes ||+	 $as_test_x conftest$ac_exeext+       }; then++    { $as_echo "$as_me:$LINENO: result: yes" >&5+$as_echo "yes" >&6; }++cat >>confdefs.h <<\_ACEOF+#define HAVE_BUILTIN_ATOMIC 1+_ACEOF+++else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++    { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+    CFLAGS="$old_CFLAGS"++fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+      conftest$ac_exeext conftest.$ac_ext++fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+      conftest$ac_exeext conftest.$ac_ext++# Checks for typedefs, structures, and compiler characteristics.+{ $as_echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5+$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }+if test "${ac_cv_header_time+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <sys/types.h>+#include <sys/time.h>+#include <time.h>++int+main ()+{+if ((struct tm *) 0)+return 0;+  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  ac_cv_header_time=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	ac_cv_header_time=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5+$as_echo "$ac_cv_header_time" >&6; }+if test $ac_cv_header_time = yes; then++cat >>confdefs.h <<\_ACEOF+#define TIME_WITH_SYS_TIME 1+_ACEOF++fi+++# Look for the timber compiler++# Checks for library functions.++for ac_header in stdlib.h+do+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5+$as_echo_n "checking for $ac_header... " >&6; }+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+  $as_echo_n "(cached) " >&6+fi+ac_res=`eval 'as_val=${'$as_ac_Header'}+		 $as_echo "$as_val"'`+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+else+  # Is the header compilable?+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5+$as_echo_n "checking $ac_header usability... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+$ac_includes_default+#include <$ac_header>+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_compile") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest.$ac_objext; then+  ac_header_compiler=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	ac_header_compiler=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5+$as_echo "$ac_header_compiler" >&6; }++# Is the header present?+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5+$as_echo_n "checking $ac_header presence... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#include <$ac_header>+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } >/dev/null && {+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+	 test ! -s conftest.err+       }; then+  ac_header_preproc=yes+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++  ac_header_preproc=no+fi++rm -f conftest.err conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5+$as_echo "$ac_header_preproc" >&6; }++# So?  What about this header?+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in+  yes:no: )+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}+    ac_header_preproc=yes+    ;;+  no:yes:* )+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}+    ( cat <<\_ASBOX+## ----------------------------------- ##+## Report this to nordland@csee.ltu.se ##+## ----------------------------------- ##+_ASBOX+     ) | sed "s/^/$as_me: WARNING:     /" >&2+    ;;+esac+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5+$as_echo_n "checking for $ac_header... " >&6; }+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+  $as_echo_n "(cached) " >&6+else+  eval "$as_ac_Header=\$ac_header_preproc"+fi+ac_res=`eval 'as_val=${'$as_ac_Header'}+		 $as_echo "$as_val"'`+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }++fi+as_val=`eval 'as_val=${'$as_ac_Header'}+		 $as_echo "$as_val"'`+   if test "x$as_val" = x""yes; then+  cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1+_ACEOF++fi++done++{ $as_echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5+$as_echo_n "checking for GNU libc compatible malloc... " >&6; }+if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then+  $as_echo_n "(cached) " >&6+else+  if test "$cross_compiling" = yes; then+  ac_cv_func_malloc_0_nonnull=no+else+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+#if defined STDC_HEADERS || defined HAVE_STDLIB_H+# include <stdlib.h>+#else+char *malloc ();+#endif++int+main ()+{+return ! malloc (0);+  ;+  return 0;+}+_ACEOF+rm -f conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_link") 2>&5+  ac_status=$?+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'+  { (case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_try") 2>&5+  ac_status=$?+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); }; }; then+  ac_cv_func_malloc_0_nonnull=yes+else+  $as_echo "$as_me: program exited with status $ac_status" >&5+$as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++( exit $ac_status )+ac_cv_func_malloc_0_nonnull=no+fi+rm -rf conftest.dSYM+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext+fi+++fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5+$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }+if test $ac_cv_func_malloc_0_nonnull = yes; then++cat >>confdefs.h <<\_ACEOF+#define HAVE_MALLOC 1+_ACEOF++else+  cat >>confdefs.h <<\_ACEOF+#define HAVE_MALLOC 0+_ACEOF++   case " $LIBOBJS " in+  *" malloc.$ac_objext "* ) ;;+  *) LIBOBJS="$LIBOBJS malloc.$ac_objext"+ ;;+esac+++cat >>confdefs.h <<\_ACEOF+#define malloc rpl_malloc+_ACEOF++fi++++++for ac_func in gettimeofday sysconf+do+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5+$as_echo_n "checking for $ac_func... " >&6; }+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then+  $as_echo_n "(cached) " >&6+else+  cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h.  */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h.  */+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */+#define $ac_func innocuous_$ac_func++/* System header to define __stub macros and hopefully few prototypes,+    which can conflict with char $ac_func (); below.+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+    <limits.h> exists even on freestanding compilers.  */++#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif++#undef $ac_func++/* Override any GCC internal prototype to avoid an error.+   Use char because int might match the return type of a GCC+   builtin and then its argument prototype would still apply.  */+#ifdef __cplusplus+extern "C"+#endif+char $ac_func ();+/* The GNU C library defines this for functions which it implements+    to always fail with ENOSYS.  Some functions are actually named+    something starting with __ and the normal name is an alias.  */+#if defined __stub_$ac_func || defined __stub___$ac_func+choke me+#endif++int+main ()+{+return $ac_func ();+  ;+  return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+  *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+  (eval "$ac_link") 2>conftest.er1+  ac_status=$?+  grep -v '^ *+' conftest.er1 >conftest.err+  rm -f conftest.er1+  cat conftest.err >&5+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+  (exit $ac_status); } && {+	 test -z "$ac_c_werror_flag" ||+	 test ! -s conftest.err+       } && test -s conftest$ac_exeext && {+	 test "$cross_compiling" = yes ||+	 $as_test_x conftest$ac_exeext+       }; then+  eval "$as_ac_var=yes"+else+  $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++	eval "$as_ac_var=no"+fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+      conftest$ac_exeext conftest.$ac_ext+fi+ac_res=`eval 'as_val=${'$as_ac_var'}+		 $as_echo "$as_val"'`+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+as_val=`eval 'as_val=${'$as_ac_var'}+		 $as_echo "$as_val"'`+   if test "x$as_val" = x""yes; then+  cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1+_ACEOF++fi+done+++++++++++ac_config_files="$ac_config_files Makefile timberc.cfg"++cat >confcache <<\_ACEOF+# This file is a shell script that caches the results of configure+# tests run on this system so they can be shared between configure+# scripts and configure runs, see configure's option --config-cache.+# It is not useful on other systems.  If it contains results you don't+# want to keep, you may remove or edit it.+#+# config.status only pays attention to the cache file if you give it+# the --recheck option to rerun configure.+#+# `ac_cv_env_foo' variables (set or unset) will be overridden when+# loading this file, other *unset* `ac_cv_foo' will be assigned the+# following values.++_ACEOF++# The following way of writing the cache mishandles newlines in values,+# but we know of no workaround that is simple, portable, and efficient.+# So, we kill variables containing newlines.+# Ultrix sh set writes to stderr and can't be redirected directly,+# and sets the high bit in the cache file unless we assign to the vars.+(+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do+    eval ac_val=\$$ac_var+    case $ac_val in #(+    *${as_nl}*)+      case $ac_var in #(+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;+      esac+      case $ac_var in #(+      _ | IFS | as_nl) ;; #(+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(+      *) $as_unset $ac_var ;;+      esac ;;+    esac+  done++  (set) 2>&1 |+    case $as_nl`(ac_space=' '; set) 2>&1` in #(+    *${as_nl}ac_space=\ *)+      # `set' does not quote correctly, so add quotes (double-quote+      # substitution turns \\\\ into \\, and sed turns \\ into \).+      sed -n \+	"s/'/'\\\\''/g;+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"+      ;; #(+    *)+      # `set' quotes correctly as required by POSIX, so do not add quotes.+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"+      ;;+    esac |+    sort+) |+  sed '+     /^ac_cv_env_/b end+     t clear+     :clear+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/+     t end+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/+     :end' >>confcache+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else+  if test -w "$cache_file"; then+    test "x$cache_file" != "x/dev/null" &&+      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5+$as_echo "$as_me: updating cache $cache_file" >&6;}+    cat confcache >$cache_file+  else+    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}+  fi+fi+rm -f confcache++test "x$prefix" = xNONE && prefix=$ac_default_prefix+# Let make expand exec_prefix.+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'++DEFS=-DHAVE_CONFIG_H++ac_libobjs=+ac_ltlibobjs=+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue+  # 1. Remove the extension, and $U if already installed.+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR+  #    will be set to the directory where LIBOBJS objects are built.+  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"+  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'+done+LIBOBJS=$ac_libobjs++LTLIBOBJS=$ac_ltlibobjs++++: ${CONFIG_STATUS=./config.status}+ac_write_fail=0+ac_clean_files_save=$ac_clean_files+ac_clean_files="$ac_clean_files $CONFIG_STATUS"+{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}+cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+#! $SHELL+# Generated by $as_me.+# Run this file to recreate the current configuration.+# Compiler output produced by configure, useful for debugging+# configure, is in config.log if it exists.++debug=false+ac_cs_recheck=false+ac_cs_silent=false+SHELL=\${CONFIG_SHELL-$SHELL}+_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+## --------------------- ##+## M4sh Initialization.  ##+## --------------------- ##++# Be more Bourne compatible+DUALCASE=1; export DUALCASE # for MKS sh+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then+  emulate sh+  NULLCMD=:+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which+  # is contrary to our usage.  Disable this feature.+  alias -g '${1+"$@"}'='"$@"'+  setopt NO_GLOB_SUBST+else+  case `(set -o) 2>/dev/null` in+  *posix*) set -o posix ;;+esac++fi+++++# PATH needs CR+# Avoid depending upon Character Ranges.+as_cr_letters='abcdefghijklmnopqrstuvwxyz'+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'+as_cr_Letters=$as_cr_letters$as_cr_LETTERS+as_cr_digits='0123456789'+as_cr_alnum=$as_cr_Letters$as_cr_digits++as_nl='+'+export as_nl+# Printing a long string crashes Solaris 7 /usr/bin/printf.+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then+  as_echo='printf %s\n'+  as_echo_n='printf %s'+else+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'+    as_echo_n='/usr/ucb/echo -n'+  else+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'+    as_echo_n_body='eval+      arg=$1;+      case $arg in+      *"$as_nl"*)+	expr "X$arg" : "X\\(.*\\)$as_nl";+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;+      esac;+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"+    '+    export as_echo_n_body+    as_echo_n='sh -c $as_echo_n_body as_echo'+  fi+  export as_echo_body+  as_echo='sh -c $as_echo_body as_echo'+fi++# The user is always right.+if test "${PATH_SEPARATOR+set}" != set; then+  PATH_SEPARATOR=:+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||+      PATH_SEPARATOR=';'+  }+fi++# Support unset when possible.+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then+  as_unset=unset+else+  as_unset=false+fi+++# IFS+# We need space, tab and new line, in precisely that order.  Quoting is+# there to prevent editors from complaining about space-tab.+# (If _AS_PATH_WALK were called with IFS unset, it would disable word+# splitting by setting IFS to empty value.)+IFS=" ""	$as_nl"++# Find who we are.  Look in the path if we contain no directory separator.+case $0 in+  *[\\/]* ) as_myself=$0 ;;+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+  IFS=$as_save_IFS+  test -z "$as_dir" && as_dir=.+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break+done+IFS=$as_save_IFS++     ;;+esac+# We did not find ourselves, most probably we were run as `sh COMMAND'+# in which case we are not to be found in the path.+if test "x$as_myself" = x; then+  as_myself=$0+fi+if test ! -f "$as_myself"; then+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2+  { (exit 1); exit 1; }+fi++# Work around bugs in pre-3.0 UWIN ksh.+for as_var in ENV MAIL MAILPATH+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var+done+PS1='$ '+PS2='> '+PS4='+ '++# NLS nuisances.+LC_ALL=C+export LC_ALL+LANGUAGE=C+export LANGUAGE++# Required to use basename.+if expr a : '\(a\)' >/dev/null 2>&1 &&+   test "X`expr 00001 : '.*\(...\)'`" = X001; then+  as_expr=expr+else+  as_expr=false+fi++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then+  as_basename=basename+else+  as_basename=false+fi+++# Name of the executable.+as_me=`$as_basename -- "$0" ||+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \+	 X"$0" : 'X\(//\)$' \| \+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X/"$0" |+    sed '/^.*\/\([^/][^/]*\)\/*$/{+	    s//\1/+	    q+	  }+	  /^X\/\(\/\/\)$/{+	    s//\1/+	    q+	  }+	  /^X\/\(\/\).*/{+	    s//\1/+	    q+	  }+	  s/.*/./; q'`++# CDPATH.+$as_unset CDPATH++++  as_lineno_1=$LINENO+  as_lineno_2=$LINENO+  test "x$as_lineno_1" != "x$as_lineno_2" &&+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {++  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO+  # uniformly replaced by the line number.  The first 'sed' inserts a+  # line-number line after each line using $LINENO; the second 'sed'+  # does the real work.  The second script uses 'N' to pair each+  # line-number line with the line containing $LINENO, and appends+  # trailing '-' during substitution so that $LINENO is not a special+  # case at line end.+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the+  # scripts with optimization help from Paolo Bonzini.  Blame Lee+  # E. McMahon (1931-1989) for sed's syntax.  :-)+  sed -n '+    p+    /[$]LINENO/=+  ' <$as_myself |+    sed '+      s/[$]LINENO.*/&-/+      t lineno+      b+      :lineno+      N+      :loop+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/+      t loop+      s/-\n.*//+    ' >$as_me.lineno &&+  chmod +x "$as_me.lineno" ||+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2+   { (exit 1); exit 1; }; }++  # Don't try to exec as it changes $[0], causing all sort of problems+  # (the dirname of $[0] is not the place where we might find the+  # original and so on.  Autoconf is especially sensitive to this).+  . "./$as_me.lineno"+  # Exit status is that of the last command.+  exit+}+++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then+  as_dirname=dirname+else+  as_dirname=false+fi++ECHO_C= ECHO_N= ECHO_T=+case `echo -n x` in+-n*)+  case `echo 'x\c'` in+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.+  *)   ECHO_C='\c';;+  esac;;+*)+  ECHO_N='-n';;+esac+if expr a : '\(a\)' >/dev/null 2>&1 &&+   test "X`expr 00001 : '.*\(...\)'`" = X001; then+  as_expr=expr+else+  as_expr=false+fi++rm -f conf$$ conf$$.exe conf$$.file+if test -d conf$$.dir; then+  rm -f conf$$.dir/conf$$.file+else+  rm -f conf$$.dir+  mkdir conf$$.dir 2>/dev/null+fi+if (echo >conf$$.file) 2>/dev/null; then+  if ln -s conf$$.file conf$$ 2>/dev/null; then+    as_ln_s='ln -s'+    # ... but there are two gotchas:+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.+    # In both cases, we have to default to `cp -p'.+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||+      as_ln_s='cp -p'+  elif ln conf$$.file conf$$ 2>/dev/null; then+    as_ln_s=ln+  else+    as_ln_s='cp -p'+  fi+else+  as_ln_s='cp -p'+fi+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file+rmdir conf$$.dir 2>/dev/null++if mkdir -p . 2>/dev/null; then+  as_mkdir_p=:+else+  test -d ./-p && rmdir ./-p+  as_mkdir_p=false+fi++if test -x / >/dev/null 2>&1; then+  as_test_x='test -x'+else+  if ls -dL / >/dev/null 2>&1; then+    as_ls_L_option=L+  else+    as_ls_L_option=+  fi+  as_test_x='+    eval sh -c '\''+      if test -d "$1"; then+	test -d "$1/.";+      else+	case $1 in+	-*)set "./$1";;+	esac;+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in+	???[sx]*):;;*)false;;esac;fi+    '\'' sh+  '+fi+as_executable_p=$as_test_x++# Sed expression to map a string onto a valid CPP name.+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"++# Sed expression to map a string onto a valid variable name.+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"+++exec 6>&1++# Save the log message, to keep $[0] and so on meaningful, and to+# report actual input values of CONFIG_FILES etc. instead of their+# values after options handling.+ac_log="+This file was extended by rtsPOSIX $as_me 0.9.9, which was+generated by GNU Autoconf 2.63.  Invocation command line was++  CONFIG_FILES    = $CONFIG_FILES+  CONFIG_HEADERS  = $CONFIG_HEADERS+  CONFIG_LINKS    = $CONFIG_LINKS+  CONFIG_COMMANDS = $CONFIG_COMMANDS+  $ $0 $@++on `(hostname || uname -n) 2>/dev/null | sed 1q`+"++_ACEOF++case $ac_config_files in *"+"*) set x $ac_config_files; shift; ac_config_files=$*;;+esac++case $ac_config_headers in *"+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;+esac+++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+# Files that config.status was made for.+config_files="$ac_config_files"+config_headers="$ac_config_headers"++_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+ac_cs_usage="\+\`$as_me' instantiates files from templates according to the+current configuration.++Usage: $0 [OPTION]... [FILE]...++  -h, --help       print this help, then exit+  -V, --version    print version number and configuration settings, then exit+  -q, --quiet, --silent+                   do not print progress messages+  -d, --debug      don't remove temporary files+      --recheck    update $as_me by reconfiguring in the same conditions+      --file=FILE[:TEMPLATE]+                   instantiate the configuration file FILE+      --header=FILE[:TEMPLATE]+                   instantiate the configuration header FILE++Configuration files:+$config_files++Configuration headers:+$config_headers++Report bugs to <bug-autoconf@gnu.org>."++_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+ac_cs_version="\\+rtsPOSIX config.status 0.9.9+configured by $0, generated by GNU Autoconf 2.63,+  with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"++Copyright (C) 2008 Free Software Foundation, Inc.+This config.status script is free software; the Free Software Foundation+gives unlimited permission to copy, distribute and modify it."++ac_pwd='$ac_pwd'+srcdir='$srcdir'+INSTALL='$INSTALL'+test -n "\$AWK" || AWK=awk+_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+# The default lists apply if the user does not specify any file.+ac_need_defaults=:+while test $# != 0+do+  case $1 in+  --*=*)+    ac_option=`expr "X$1" : 'X\([^=]*\)='`+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`+    ac_shift=:+    ;;+  *)+    ac_option=$1+    ac_optarg=$2+    ac_shift=shift+    ;;+  esac++  case $ac_option in+  # Handling of the options.+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)+    ac_cs_recheck=: ;;+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )+    $as_echo "$ac_cs_version"; exit ;;+  --debug | --debu | --deb | --de | --d | -d )+    debug=: ;;+  --file | --fil | --fi | --f )+    $ac_shift+    case $ac_optarg in+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;+    esac+    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"+    ac_need_defaults=false;;+  --header | --heade | --head | --hea )+    $ac_shift+    case $ac_optarg in+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;+    esac+    CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"+    ac_need_defaults=false;;+  --he | --h)+    # Conflict between --help and --header+    { $as_echo "$as_me: error: ambiguous option: $1+Try \`$0 --help' for more information." >&2+   { (exit 1); exit 1; }; };;+  --help | --hel | -h )+    $as_echo "$ac_cs_usage"; exit ;;+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \+  | -silent | --silent | --silen | --sile | --sil | --si | --s)+    ac_cs_silent=: ;;++  # This is an error.+  -*) { $as_echo "$as_me: error: unrecognized option: $1+Try \`$0 --help' for more information." >&2+   { (exit 1); exit 1; }; } ;;++  *) ac_config_targets="$ac_config_targets $1"+     ac_need_defaults=false ;;++  esac+  shift+done++ac_configure_extra_args=++if $ac_cs_silent; then+  exec 6>/dev/null+  ac_configure_extra_args="$ac_configure_extra_args --silent"+fi++_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+if \$ac_cs_recheck; then+  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion+  shift+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6+  CONFIG_SHELL='$SHELL'+  export CONFIG_SHELL+  exec "\$@"+fi++_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+exec 5>>config.log+{+  echo+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX+## Running $as_me. ##+_ASBOX+  $as_echo "$ac_log"+} >&5++_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1++# Handling of arguments.+for ac_config_target in $ac_config_targets+do+  case $ac_config_target in+    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;+    "timberc.cfg") CONFIG_FILES="$CONFIG_FILES timberc.cfg" ;;++  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5+$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}+   { (exit 1); exit 1; }; };;+  esac+done+++# If the user did not use the arguments to specify the items to instantiate,+# then the envvar interface is used.  Set only those that are not.+# We use the long form for the default assignment because of an extremely+# bizarre bug on SunOS 4.1.3.+if $ac_need_defaults; then+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers+fi++# Have a temporary directory for convenience.  Make it in the build tree+# simply because there is no reason against having it here, and in addition,+# creating and moving files from /tmp can sometimes cause problems.+# Hook for its removal unless debugging.+# Note that there is a small window in which the directory will not be cleaned:+# after its creation but before its name has been assigned to `$tmp'.+$debug ||+{+  tmp=+  trap 'exit_status=$?+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status+' 0+  trap '{ (exit 1); exit 1; }' 1 2 13 15+}+# Create a (secure) tmp directory for tmp files.++{+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&+  test -n "$tmp" && test -d "$tmp"+}  ||+{+  tmp=./conf$$-$RANDOM+  (umask 077 && mkdir "$tmp")+} ||+{+   $as_echo "$as_me: cannot create a temporary directory in ." >&2+   { (exit 1); exit 1; }+}++# Set up the scripts for CONFIG_FILES section.+# No need to generate them if there are no CONFIG_FILES.+# This happens for instance with `./config.status config.h'.+if test -n "$CONFIG_FILES"; then+++ac_cr='
'+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then+  ac_cs_awk_cr='\\r'+else+  ac_cs_awk_cr=$ac_cr+fi++echo 'BEGIN {' >"$tmp/subs1.awk" &&+_ACEOF+++{+  echo "cat >conf$$subs.awk <<_ACEOF" &&+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&+  echo "_ACEOF"+} >conf$$subs.sh ||+  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}+   { (exit 1); exit 1; }; }+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`+ac_delim='%!_!# '+for ac_last_try in false false false false false :; do+  . ./conf$$subs.sh ||+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}+   { (exit 1); exit 1; }; }++  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`+  if test $ac_delim_n = $ac_delim_num; then+    break+  elif $ac_last_try; then+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}+   { (exit 1); exit 1; }; }+  else+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "+  fi+done+rm -f conf$$subs.sh++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&+_ACEOF+sed -n '+h+s/^/S["/; s/!.*/"]=/+p+g+s/^[^!]*!//+:repl+t repl+s/'"$ac_delim"'$//+t delim+:nl+h+s/\(.\{148\}\).*/\1/+t more1+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/+p+n+b repl+:more1+s/["\\]/\\&/g; s/^/"/; s/$/"\\/+p+g+s/.\{148\}//+t nl+:delim+h+s/\(.\{148\}\).*/\1/+t more2+s/["\\]/\\&/g; s/^/"/; s/$/"/+p+b+:more2+s/["\\]/\\&/g; s/^/"/; s/$/"\\/+p+g+s/.\{148\}//+t delim+' <conf$$subs.awk | sed '+/^[^""]/{+  N+  s/\n//+}+' >>$CONFIG_STATUS || ac_write_fail=1+rm -f conf$$subs.awk+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+_ACAWK+cat >>"\$tmp/subs1.awk" <<_ACAWK &&+  for (key in S) S_is_set[key] = 1+  FS = ""++}+{+  line = $ 0+  nfields = split(line, field, "@")+  substed = 0+  len = length(field[1])+  for (i = 2; i < nfields; i++) {+    key = field[i]+    keylen = length(key)+    if (S_is_set[key]) {+      value = S[key]+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)+      len += length(value) + length(field[++i])+      substed = 1+    } else+      len += 1 + keylen+  }++  print line+}++_ACAWK+_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"+else+  cat+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \+  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5+$as_echo "$as_me: error: could not setup config files machinery" >&2;}+   { (exit 1); exit 1; }; }+_ACEOF++# VPATH may cause trouble with some makes, so we remove $(srcdir),+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and+# trailing colons and then remove the whole line if VPATH becomes empty+# (actually we leave an empty line to preserve line numbers).+if test "x$srcdir" = x.; then+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{+s/:*\$(srcdir):*/:/+s/:*\${srcdir}:*/:/+s/:*@srcdir@:*/:/+s/^\([^=]*=[	 ]*\):*/\1/+s/:*$//+s/^[^=]*=[	 ]*$//+}'+fi++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+fi # test -n "$CONFIG_FILES"++# Set up the scripts for CONFIG_HEADERS section.+# No need to generate them if there are no CONFIG_HEADERS.+# This happens for instance with `./config.status Makefile'.+if test -n "$CONFIG_HEADERS"; then+cat >"$tmp/defines.awk" <<\_ACAWK ||+BEGIN {+_ACEOF++# Transform confdefs.h into an awk script `defines.awk', embedded as+# here-document in config.status, that substitutes the proper values into+# config.h.in to produce config.h.++# Create a delimiter string that does not exist in confdefs.h, to ease+# handling of long lines.+ac_delim='%!_!# '+for ac_last_try in false false :; do+  ac_t=`sed -n "/$ac_delim/p" confdefs.h`+  if test -z "$ac_t"; then+    break+  elif $ac_last_try; then+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5+$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}+   { (exit 1); exit 1; }; }+  else+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "+  fi+done++# For the awk script, D is an array of macro values keyed by name,+# likewise P contains macro parameters if any.  Preserve backslash+# newline sequences.++ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*+sed -n '+s/.\{148\}/&'"$ac_delim"'/g+t rset+:rset+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /+t def+d+:def+s/\\$//+t bsnl+s/["\\]/\\&/g+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\+D["\1"]=" \3"/p+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p+d+:bsnl+s/["\\]/\\&/g+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\+D["\1"]=" \3\\\\\\n"\\/p+t cont+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p+t cont+d+:cont+n+s/.\{148\}/&'"$ac_delim"'/g+t clear+:clear+s/\\$//+t bsnlc+s/["\\]/\\&/g; s/^/"/; s/$/"/p+d+:bsnlc+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p+b cont+' <confdefs.h | sed '+s/'"$ac_delim"'/"\\\+"/g' >>$CONFIG_STATUS || ac_write_fail=1++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+  for (key in D) D_is_set[key] = 1+  FS = ""+}+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {+  line = \$ 0+  split(line, arg, " ")+  if (arg[1] == "#") {+    defundef = arg[2]+    mac1 = arg[3]+  } else {+    defundef = substr(arg[1], 2)+    mac1 = arg[2]+  }+  split(mac1, mac2, "(") #)+  macro = mac2[1]+  prefix = substr(line, 1, index(line, defundef) - 1)+  if (D_is_set[macro]) {+    # Preserve the white space surrounding the "#".+    print prefix "define", macro P[macro] D[macro]+    next+  } else {+    # Replace #undef with comments.  This is necessary, for example,+    # in the case of _POSIX_SOURCE, which is predefined and required+    # on some systems where configure will not decide to define it.+    if (defundef == "undef") {+      print "/*", prefix defundef, macro, "*/"+      next+    }+  }+}+{ print }+_ACAWK+_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+  { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5+$as_echo "$as_me: error: could not setup config headers machinery" >&2;}+   { (exit 1); exit 1; }; }+fi # test -n "$CONFIG_HEADERS"+++eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    "+shift+for ac_tag+do+  case $ac_tag in+  :[FHLC]) ac_mode=$ac_tag; continue;;+  esac+  case $ac_mode$ac_tag in+  :[FHL]*:*);;+  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}+   { (exit 1); exit 1; }; };;+  :[FH]-) ac_tag=-:-;;+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;+  esac+  ac_save_IFS=$IFS+  IFS=:+  set x $ac_tag+  IFS=$ac_save_IFS+  shift+  ac_file=$1+  shift++  case $ac_mode in+  :L) ac_source=$1;;+  :[FH])+    ac_file_inputs=+    for ac_f+    do+      case $ac_f in+      -) ac_f="$tmp/stdin";;+      *) # Look for the file first in the build tree, then in the source tree+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,+	 # because $ac_f cannot contain `:'.+	 test -f "$ac_f" ||+	   case $ac_f in+	   [\\/$]*) false;;+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;+	   esac ||+	   { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5+$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}+   { (exit 1); exit 1; }; };;+      esac+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac+      ac_file_inputs="$ac_file_inputs '$ac_f'"+    done++    # Let's still pretend it is `configure' which instantiates (i.e., don't+    # use $as_me), people would be surprised to read:+    #    /* config.h.  Generated by config.status.  */+    configure_input='Generated from '`+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'+	`' by configure.'+    if test x"$ac_file" != x-; then+      configure_input="$ac_file.  $configure_input"+      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5+$as_echo "$as_me: creating $ac_file" >&6;}+    fi+    # Neutralize special characters interpreted by sed in replacement strings.+    case $configure_input in #(+    *\&* | *\|* | *\\* )+       ac_sed_conf_input=`$as_echo "$configure_input" |+       sed 's/[\\\\&|]/\\\\&/g'`;; #(+    *) ac_sed_conf_input=$configure_input;;+    esac++    case $ac_tag in+    *:-:* | *:-) cat >"$tmp/stdin" \+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5+$as_echo "$as_me: error: could not create $ac_file" >&2;}+   { (exit 1); exit 1; }; } ;;+    esac+    ;;+  esac++  ac_dir=`$as_dirname -- "$ac_file" ||+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+	 X"$ac_file" : 'X\(//\)[^/]' \| \+	 X"$ac_file" : 'X\(//\)$' \| \+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$ac_file" |+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+	    s//\1/+	    q+	  }+	  /^X\(\/\/\)[^/].*/{+	    s//\1/+	    q+	  }+	  /^X\(\/\/\)$/{+	    s//\1/+	    q+	  }+	  /^X\(\/\).*/{+	    s//\1/+	    q+	  }+	  s/.*/./; q'`+  { as_dir="$ac_dir"+  case $as_dir in #(+  -*) as_dir=./$as_dir;;+  esac+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {+    as_dirs=+    while :; do+      case $as_dir in #(+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(+      *) as_qdir=$as_dir;;+      esac+      as_dirs="'$as_qdir' $as_dirs"+      as_dir=`$as_dirname -- "$as_dir" ||+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+	 X"$as_dir" : 'X\(//\)[^/]' \| \+	 X"$as_dir" : 'X\(//\)$' \| \+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$as_dir" |+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+	    s//\1/+	    q+	  }+	  /^X\(\/\/\)[^/].*/{+	    s//\1/+	    q+	  }+	  /^X\(\/\/\)$/{+	    s//\1/+	    q+	  }+	  /^X\(\/\).*/{+	    s//\1/+	    q+	  }+	  s/.*/./; q'`+      test -d "$as_dir" && break+    done+    test -z "$as_dirs" || eval "mkdir $as_dirs"+  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}+   { (exit 1); exit 1; }; }; }+  ac_builddir=.++case "$ac_dir" in+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;+*)+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`+  # A ".." for each directory in $ac_dir_suffix.+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`+  case $ac_top_builddir_sub in+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;+  esac ;;+esac+ac_abs_top_builddir=$ac_pwd+ac_abs_builddir=$ac_pwd$ac_dir_suffix+# for backward compatibility:+ac_top_builddir=$ac_top_build_prefix++case $srcdir in+  .)  # We are building in place.+    ac_srcdir=.+    ac_top_srcdir=$ac_top_builddir_sub+    ac_abs_top_srcdir=$ac_pwd ;;+  [\\/]* | ?:[\\/]* )  # Absolute name.+    ac_srcdir=$srcdir$ac_dir_suffix;+    ac_top_srcdir=$srcdir+    ac_abs_top_srcdir=$srcdir ;;+  *) # Relative name.+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix+    ac_top_srcdir=$ac_top_build_prefix$srcdir+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;+esac+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix+++  case $ac_mode in+  :F)+  #+  # CONFIG_FILE+  #++  case $INSTALL in+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;+  esac+_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+# If the template does not know about datarootdir, expand it.+# FIXME: This hack should be removed a few years after 2.60.+ac_datarootdir_hack=; ac_datarootdir_seen=++ac_sed_dataroot='+/datarootdir/ {+  p+  q+}+/@datadir@/p+/@docdir@/p+/@infodir@/p+/@localedir@/p+/@mandir@/p+'+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in+*datarootdir*) ac_datarootdir_seen=yes;;+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}+_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+  ac_datarootdir_hack='+  s&@datadir@&$datadir&g+  s&@docdir@&$docdir&g+  s&@infodir@&$infodir&g+  s&@localedir@&$localedir&g+  s&@mandir@&$mandir&g+    s&\\\${datarootdir}&$datarootdir&g' ;;+esac+_ACEOF++# Neutralize VPATH when `$srcdir' = `.'.+# Shell code in configure.ac might set extrasub.+# FIXME: do we really want to maintain this feature?+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+ac_sed_extra="$ac_vpsub+$extrasub+_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+:t+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b+s|@configure_input@|$ac_sed_conf_input|;t t+s&@top_builddir@&$ac_top_builddir_sub&;t t+s&@top_build_prefix@&$ac_top_build_prefix&;t t+s&@srcdir@&$ac_srcdir&;t t+s&@abs_srcdir@&$ac_abs_srcdir&;t t+s&@top_srcdir@&$ac_top_srcdir&;t t+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t+s&@builddir@&$ac_builddir&;t t+s&@abs_builddir@&$ac_abs_builddir&;t t+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t+s&@INSTALL@&$ac_INSTALL&;t t+$ac_datarootdir_hack+"+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5+$as_echo "$as_me: error: could not create $ac_file" >&2;}+   { (exit 1); exit 1; }; }++test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&+  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'+which seems to be undefined.  Please make sure it is defined." >&5+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'+which seems to be undefined.  Please make sure it is defined." >&2;}++  rm -f "$tmp/stdin"+  case $ac_file in+  -) cat "$tmp/out" && rm -f "$tmp/out";;+  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;+  esac \+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5+$as_echo "$as_me: error: could not create $ac_file" >&2;}+   { (exit 1); exit 1; }; }+ ;;+  :H)+  #+  # CONFIG_HEADER+  #+  if test x"$ac_file" != x-; then+    {+      $as_echo "/* $configure_input  */" \+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"+    } >"$tmp/config.h" \+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5+$as_echo "$as_me: error: could not create $ac_file" >&2;}+   { (exit 1); exit 1; }; }+    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then+      { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5+$as_echo "$as_me: $ac_file is unchanged" >&6;}+    else+      rm -f "$ac_file"+      mv "$tmp/config.h" "$ac_file" \+	|| { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5+$as_echo "$as_me: error: could not create $ac_file" >&2;}+   { (exit 1); exit 1; }; }+    fi+  else+    $as_echo "/* $configure_input  */" \+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \+      || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5+$as_echo "$as_me: error: could not create -" >&2;}+   { (exit 1); exit 1; }; }+  fi+ ;;+++  esac++done # for ac_tag+++{ (exit 0); exit 0; }+_ACEOF+chmod +x $CONFIG_STATUS+ac_clean_files=$ac_clean_files_save++test $ac_write_fail = 0 ||+  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}+   { (exit 1); exit 1; }; }+++# configure is writing to config.log, and then calls config.status.+# config.status does its own redirection, appending to config.log.+# Unfortunately, on DOS this fails, as config.log is still kept open+# by configure, so config.status won't be able to write to it; its+# output is simply discarded.  So we exec the FD to /dev/null,+# effectively closing config.log, so it can be properly (re)opened and+# appended to by config.status.  When coming back to configure, we+# need to make the FD available again.+if test "$no_create" != yes; then+  ac_cs_success=:+  ac_config_status_args=+  test "$silent" = yes &&+    ac_config_status_args="$ac_config_status_args --quiet"+  exec 5>/dev/null+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false+  exec 5>>config.log+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which+  # would make configure fail if this is the last instruction.+  $ac_cs_success || { (exit 1); exit 1; }+fi+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then+  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi 
rtsPOSIX/cyclic.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. //  // Redistribution and use in source and binary forms, with or without@@ -37,8 +37,8 @@ #define TOGGLE0(val)            ((WORD)(val) ^ 0x01)  #define ISPLACEHOLDER(obj)      (BIT0(obj) && ((int)(obj) < 0))-#define INDEXOF(obj)            (((-(int)(obj)) >> 1) - current->placeholders)-#define PLACEHOLDER(index)      (-((((index) + current->placeholders) << 1) | 0x01))+#define INDEXOF(obj)            (((-(int)(obj)) >> 1) - current_thread->placeholders)+#define PLACEHOLDER(index)      (-((((index) + current_thread->placeholders) << 1) | 0x01))  #define CURRENT_CYCLE(obj,roots)    !INSIDE(heapchain,obj,(ADDR)roots) @@ -50,7 +50,7 @@                                         } \                                       } -ADDR substObj(ADDR obj, Array roots, int limit, Thread current) {+ADDR substObj(ADDR obj, Array roots, int limit, Thread current_thread) {         ADDR info = IND0(obj);         if (!info)                                      // if gcinfo is null we have reached the end of a heap segment                 return (ADDR)obj[1];                    // pointer to first object of next segment is found in subsequent slot@@ -103,42 +103,42 @@                         return obj + size;                 }                 case GC_MUT: {-                        return substObj(obj + STATIC_SIZE(info), roots, limit, current);+                        return substObj(obj + STATIC_SIZE(info), roots, limit, current_thread);                 }         }         return (ADDR)0;                 // Not reached } -void subst(Array roots, int limit, ADDR stop, Thread current) {+void subst(Array roots, int limit, ADDR stop, Thread current_thread) {         ADDR p = (ADDR)roots + STATIC_SIZE(roots->GCINFO) + roots->size;         int i;         for (i = 0; i < limit; i++)                 if (ISPLACEHOLDER(roots->elems[i]))                          RAISE(2);         while (p != stop)-                p = substObj(p, roots, limit, current);+                p = substObj(p, roots, limit, current_thread); }  Array CYCLIC_BEGIN(Int n, Int updates) {-        Thread current = CURRENT();+        Thread current_thread = CURRENT();         Array roots = EmptyArray(0,n);         int i;         for (i = 0; i < n; i++)                 roots->elems[i] = (POLY)PLACEHOLDER(i);-        current->placeholders += n;+        current_thread->placeholders += n;         return roots; }  void CYCLIC_UPDATE(Array roots, Int limit, ADDR stop) {-        Thread current = CURRENT();-        current->placeholders -= roots->size;-        subst(roots, limit, stop, current);-        current->placeholders += roots->size;+        Thread current_thread = CURRENT();+        current_thread->placeholders -= roots->size;+        subst(roots, limit, stop, current_thread);+        current_thread->placeholders += roots->size; }  void CYCLIC_END(Array roots, ADDR stop) {-        Thread current = CURRENT();-        current->placeholders -= roots->size;-        subst(roots, roots->size, stop, current);+        Thread current_thread = CURRENT();+        current_thread->placeholders -= roots->size;+        subst(roots, roots->size, stop, current_thread); } 
rtsPOSIX/env.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. //  // Redistribution and use in source and binary forms, with or without@@ -40,8 +40,17 @@ #include <arpa/inet.h> #include <errno.h> #include "POSIX.h"-#include "env.h" +#define SOCKHANDLER   CLOS2+#define HANDLER       CLOS3+#define ACTION        CLOS2+#define FILE2CLOSABLE l_File_POSIX_Closable_POSIX_POSIX+#define RFILE2FILE    l_RFile_POSIX_File_POSIX_POSIX+#define WFILE2FILE    l_WFile_POSIX_File_POSIX_POSIX+#define CONN2CLOSABLE l_Connection_POSIX_Closable_POSIX_POSIX+#define SOCK2CLOSABLE l_Socket_POSIX_Closable_POSIX_POSIX++ #define SIGSELECT SIGUSR1  #define ADD_RDTABLE(desc,act) {rdTable[desc] = act; FD_SET(desc,&readUsed); }@@ -578,10 +587,19 @@     } } +void envStart(CLOS2 (*root)(Env_POSIX, Int)) {+    pruneStaticHeap();+    prog = root(env, 0);+    TIMERGET(msg0.baseline);+    prog->Code(prog, (POLY)Inherit, (POLY)Inherit);+    eventLoop();+}++ // --------- Initialization ----------------------------------------------------  void envInit (int argc, char **argv) {-    Int i;+    init_rts();        pthread_setspecific(current_key, &thread0);     pthread_mutex_init(&envmut, &glob_mutexattr);@@ -598,21 +616,18 @@     Array arr; NEW(Array,arr,WORDS(sizeof(struct Array))+argc);     arr->GCINFO = __GC__Array0;     arr->size = argc;+    int i;     for (i=0; i<argc; i++)         arr->elems[i] = (POLY)getStr(argv[i]);     env->argv_POSIX = arr;   -    struct timeval now;-    if (gettimeofday(&now,NULL) < 0)-      perror("gettimeofday failed");-    startTime.sec = now.tv_sec;-    startTime.usec = now.tv_usec;-     fcntl(0, F_SETFL, O_NONBLOCK);     fcntl(1, F_SETFL, O_NONBLOCK);      TIMERGET(msg0.baseline);+    startTime.sec = msg0.baseline.tv_sec;+    startTime.usec = msg0.baseline.tv_usec;      thread0.msg = &msg0;     thread0.id = pthread_self();-  }+}
− rtsPOSIX/env.h
@@ -1,46 +0,0 @@-// The Timber compiler <timber-lang.org>-// -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>-// All rights reserved.-// -// Redistribution and use in source and binary forms, with or without-// modification, are permitted provided that the following conditions-// are met:-// -// 1. Redistributions of source code must retain the above copyright-//    notice, this list of conditions and the following disclaimer.-// -// 2. Redistributions in binary form must reproduce the above copyright-//    notice, this list of conditions and the following disclaimer in the-//    documentation and/or other materials provided with the distribution.-// -// 3. Neither the names of the copyright holder and any identified-//    contributors, nor the names of their affiliations, may be used to -//    endorse or promote products derived from this software without -//    specific prior written permission.-// -// THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS-// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE-// DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR-// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS-// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)-// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,-// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN-// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE-// POSSIBILITY OF SUCH DAMAGE.--#ifndef ENV_H_-#define ENV_H_--#define SOCKHANDLER   CLOS2_Prelude   // CLOS_Peer_POSIX_Int_Connection_POSIX__POSIX-#define HANDLER       CLOS3_POSIX     // CLOS_LIST_Time_Time_Msg__POSIX-#define ACTION        CLOS2_Prelude   // CLOS_Time_Time_Msg__POSIX-#define FILE2CLOSABLE l_File_POSIX_Closable_POSIX_POSIX-#define RFILE2FILE    l_RFile_POSIX_File_POSIX_POSIX-#define WFILE2FILE    l_WFile_POSIX_File_POSIX_POSIX-#define CONN2CLOSABLE l_Connection_POSIX_Closable_POSIX_POSIX-#define SOCK2CLOSABLE l_Socket_POSIX_Closable_POSIX_POSIX-#define __GC__HANDLER __GC__CLOS3_POSIX    // __GC__CLOS_LIST_Time_Time_Msg__POSIX-#endif
rtsPOSIX/gc.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. //  // Redistribution and use in source and binary forms, with or without@@ -39,14 +39,16 @@ #define NEW2(addr,words,info)   { ADDR top,stop; \                                   do { addr = hp2; stop = lim2; top = ODD((addr)+(words)); \                                   } while (ISODD(addr) || !CAS(addr,top,&hp2)); \-                                  if (top>=stop) addr = force2(words,addr,info); else { addr[0] = (WORD)(info); hp2 = EVEN(top); } }+                                  if (top>=stop) addr = force2(words,addr<stop?addr:0,info); else { addr[0] = (WORD)(info); hp2 = EVEN(top); } } +// Note: soundness of the spin-loop above depends on the invariant that lim2 is never changed unless hp2 also changes.+ #define ODD(addr)               (ADDR)((WORD)(addr) | 1) #define EVEN(addr)              (ADDR)((WORD)(addr) & ~1) #define ISODD(addr)             ((WORD)(addr) & 1)  #define IND0(obj)               (ADDR)((ADDR)obj)[0]-#define GC_PROLOGUE(obj)        { if (ISFORWARD(IND0(obj))) obj = (PID)IND0(obj); }             // read barrier+#define GC_PROLOGUE(obj)        { if (ISFORWARD(IND0(obj))) obj = (OID)IND0(obj); }             // read barrier #define GC_EPILOGUE(obj)        { if (ISBLACK((ADDR)obj)) { ADDR a; NEW2(a,1,(ADDR)obj); } }    // write barrier  #define GC_STD                  0@@ -62,7 +64,6 @@  #define allocwords(size)        (ADDR)malloc(BYTES(size)) #define HEAPSIZE                0x100000  //  0x100000 words = 0x400000 bytes = 4194304 bytes = 4 Mb = 1024 pages = 0x400 pages-#define STARTGC()               (WORD)hp >= 7 * (((WORD)lim)/8)  #define ISWHITE(a)              INSIDE(heapchain,a,hp) #define ISBLACK(a)              hp2 && INSIDE(heapchain2,a,scanp)@@ -132,25 +133,32 @@         initheap();                                     // Create fresh heap for dynamic data } +pthread_cond_t alloc;+pthread_cond_t alloc2;+ ADDR force(WORD size, ADDR last) {                      // Overflow in fromspace         ADDR a;         if (size > HEAPSIZE-3) panic("Excessive heap block requested");          DISABLE(rts);-        // printf("# force: base=%x lim=%x (hp=%x)\n", (int)base, (int)lim, (int)hp);-        if (base <= last && last < lim) {               // only extend if we were first to reach critical section+        // fprintf(stderr, "# force: base=%x, lim=%x, hp=%x, last=%x\n", (int)base, (int)lim, (int)hp, (int)last);+        if (last) {               // only extend if we were first to reach critical section                 a = allocwords(HEAPSIZE);                 if (!a) panic("Cannot allocate more memory");                  base[0] = (WORD)a;                      // add link to new heap in first word of previous heap                 a[0] = 0;                               // null terminate chain of heaps                 base = a;-                lim = a + HEAPSIZE - 1;                 // leave room for two words at the end+                lim = a + HEAPSIZE - 2;                 // leave room for two words at the end                 hp = a + 1;                  last[0] = 0;                            // mark the end of a heap segment (nulled gcinfo)                 last[1] = (WORD)hp;-                // printf("# new:   base=%x lim=%x (hp=%x)\n", (int)base, (int)lim, (int)hp);+                pthread_cond_broadcast(&alloc);+                // fprintf(stderr, "# new:   base=%x lim=%x (hp=%x)\n", (int)base, (int)lim, (int)hp);+        } else {+                while (hp >= lim)+                        pthread_cond_wait(&alloc, &rts);         }         ENABLE(rts); @@ -163,7 +171,7 @@         if (size > HEAPSIZE-3) panic("Excessive heap block requested");                  DISABLE(rts);-        if (base2 <= last && last < lim2) {             // only extend if we were first to reach critical section+        if (last) {             // only extend if we were first to reach critical section                 a = allocwords(HEAPSIZE);                 if (!a) panic("Cannot allocate more memory"); @@ -175,6 +183,10 @@                  last[0] = 0;                            // mark the end of a heap segment (nulled gcinfo)                 last[1] = (WORD)hp2;+                pthread_cond_broadcast(&alloc2);+        } else {+                while (hp2 >= lim2)+                        pthread_cond_wait(&alloc2, &rts);         }         ENABLE(rts); @@ -337,24 +349,15 @@         heapchain2 = (ADDR)0; } -void *garbageCollector(void *arg) {-    Thread current = (Thread)arg;-    pthread_setspecific(current_key, current);-    struct sched_param param;-    param.sched_priority = current->prio;-    pthread_setschedparam(current->id, SCHED_RR, &param);-    DISABLE(rts);-    while (1) {-        pthread_cond_wait(&current->trigger, &rts);-        // printf("# Starting GC\n");-        gc();+int heapLevel(int steps) {+    int acc = 0;+    ADDR link = heapchain;+    while (link[0]) {+        acc += HEAPSIZE;+        link = (ADDR)link[0];     }-}--Thread gcThread;--void gcStart(void) {-    pthread_cond_signal(&gcThread->trigger);+    acc += hp-base;+    return acc / (HEAPSIZE/steps); }  void gcInit() {@@ -368,6 +371,7 @@     pagesize = sysconf(_SC_PAGESIZE) / sizeof(WORD);     base2 = lim2 = hp2 = (ADDR)0;                   // no active tospace     initheap();                                     // Allocate base (= heapchain)-    gcThread = newThread(NULL, prio_min, garbageCollector, pagesize);+    pthread_cond_init(&alloc, 0);+    pthread_cond_init(&alloc2, 0); } 
rtsPOSIX/main.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. //  // Redistribution and use in source and binary forms, with or without@@ -31,22 +31,15 @@ // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -#include "rts.h"-#include "timber.h"-#include "POSIX.h"-#include "env.h"- void ROOTINIT(void);-ACTION ROOT(Env_POSIX, POLY);+void ROOT(void); -extern ACTION prog;-extern Env_POSIX env;+void envInit(int argc, char** argv);+void envStart(void (*root)(void));  int main(int argc, char **argv) {-    init_rts(argc, argv);+    envInit(argc, argv);     ROOTINIT();-    pruneStaticHeap();-    prog = ROOT(env, (POLY)0);-    prog->Code(prog,(POLY)Inherit,(POLY)Inherit);-    eventLoop();+    envStart(ROOT);+    return 0; }
rtsPOSIX/rts.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. //  // Redistribution and use in source and binary forms, with or without@@ -42,8 +42,7 @@ #include "rts.h" #include "timber.h" --#define MAXTHREADS      8+#define MAXTHREADS      12          // Static maximum  #define SLEEP()         sigsuspend(&enabled_mask) #define DISABLE(mutex)  pthread_mutex_lock(&mutex)@@ -82,6 +81,9 @@  // Thread management -------------------------------------------------------------------------------- +Int NCORES              = 0;+Int NTHREADS            = 0;+ struct Thread; typedef struct Thread *Thread; @@ -117,13 +119,12 @@  int prio_min, prio_max; -#define NCORES          2 #define PRIO(t)         (t ? t->prio : )   Thread newThread(Msg m, int prio, void *(*fun)(void *), int stacksize) {     Thread t = NULL;-    if (nthreads < MAXTHREADS) {+    if (nthreads < NTHREADS) {         t = &threads[nthreads++];         t->msg = m;         t->prio = prio;@@ -153,9 +154,28 @@  // Memory management -------------------------------------------------------------------------------- +Thread gcThread;+ #include "gc.c" +void gcStart(void) {+    pthread_cond_signal(&gcThread->trigger);+} +void *garbageCollector(void *arg) {+    Thread current_thread = (Thread)arg;+    pthread_setspecific(current_key, current_thread);+    struct sched_param param;+    param.sched_priority = current_thread->prio;+    pthread_setschedparam(current_thread->id, SCHED_RR, &param);+    DISABLE(rts);+    while (1) {+        pthread_cond_wait(&current_thread->trigger, &rts);+        gc();+    }+}++ // Cyclic data handling -----------------------------------------------------------------------------  #include "cyclic.c"@@ -170,7 +190,7 @@  void enqueueByDeadline(Msg p, Msg *queue) {         Msg prev = NULL, q = *queue;-        while (q && LESS(q->deadline, p->deadline)) {+        while (q && LESSEQ(q->deadline, p->deadline)) {                 prev = q;                 q = q->next;         }@@ -183,7 +203,7 @@  void enqueueByBaseline(Msg p, Msg *queue) {         Msg prev = NULL, q = *queue;-        while (q && LESS(q->baseline, p->baseline)) {+        while (q && LESSEQ(q->baseline, p->baseline)) {                 prev = q;                 q = q->next;         }@@ -241,31 +261,43 @@     return t; } -int activate(Msg m) {+int activate(Msg m, int force) {     int count = 0;     Thread prev = NULL, t = runQ;     AbsTime dl = m->deadline;+     while (count < NCORES && t && LESS(t->msg->deadline, dl)) {         count++;         prev = t;         t = t->next;     }-    if (count >= NCORES)+    if (count >= NCORES && !force) {+        // fprintf(stderr, "** Out of cores\n");         return 0;+    }     Thread new = getThread(m, midPrio(prev,t));-    if (new == NULL)+    if (new == NULL) {+        // fprintf(stderr, "** Out of threads\n");         return 0;+    }     new->next = t;     if (prev == NULL)         runQ = new;     else         prev->next = new;     nactive++;-    // fprintf(stderr, "Worker thread %d activated (%d)\n", (int)new, nactive);+    // fprintf(stderr, "++ %d | runQ: ", new->index);+    // Thread th = runQ;+    // while (th) {+    //         fprintf(stderr, "%d ", th->index);+    //         th = th->next;+    // }+    // fprintf(stderr, "\n");     return 1; }  void deactivate(Thread t) {+    // fprintf(stderr, "-- %d | runQ: ", t->index);     if (t == runQ)         runQ = runQ->next;     else {@@ -279,37 +311,44 @@     t->next = sleepQ;     sleepQ = t;     nactive--;-    // fprintf(stderr, "Worker thread %d deactivated (%d)\n", (int)t, nactive);+    // Thread th = runQ;+    // while (th) {+    //        fprintf(stderr, "%d ", th->index);+    //        th = th->next;+    // }+    // fprintf(stderr, "\n"); }  void *run(void *arg) {-    Thread current = (Thread)arg;-    pthread_setspecific(current_key, current);+    Thread current_thread = (Thread)arg;+    pthread_setspecific(current_key, current_thread);     struct sched_param param;-    param.sched_priority = current->prio;-    pthread_setschedparam(current->id, SCHED_RR, &param);-    // fprintf(stderr, "Worker thread %d started\n", (int)current);+    param.sched_priority = current_thread->prio;+    pthread_setschedparam(current_thread->id, SCHED_RR, &param);+    // fprintf(stderr, "Worker thread %d started\n", current_thread->index);     DISABLE(rts);     while (1) {-        Msg this = current->msg;+        Msg this = current_thread->msg;          ENABLE(rts);         Int (*code)(Msg) = this->Code;+                 if (code)             code(this);         DISABLE(rts);+        deactivate(current_thread); -        deactivate(current);+        if (heapLevel(16) > 13)+            gcStart();+         while (msgQ && !(msgQ->Code))             msgQ = msgQ->next;         if (msgQ) {-            activate(msgQ);+            activate(msgQ, 1);             msgQ = msgQ->next;-        } else {-            pthread_cond_wait(&current->trigger, &rts);+        } else {            +            pthread_cond_wait(&current_thread->trigger, &rts);         }-        if (STARTGC())-                gcStart();     } } @@ -321,9 +360,9 @@      AbsTime now;     TIMERGET(now);-    Thread current = CURRENT();-    // fprintf(stderr, "Working thread %d in ASYNC\n", (int)current);-    m->baseline = current->msg->baseline;+    Thread current_thread = CURRENT();+    // fprintf(stderr, "Working thread %d in ASYNC\n", (int)current_thread);+    m->baseline = current_thread->msg->baseline;     switch ((Int)bl) { 	    case INHERIT: break;         case TIME_INFINITY:@@ -337,7 +376,7 @@     }     switch((Int)dl) { 	    case INHERIT: -	        m->deadline = current->msg->deadline;+	        m->deadline = current_thread->msg->deadline;             break; 	    case TIME_INFINITY: 	        m->deadline.tv_sec = INF;@@ -353,7 +392,7 @@         timerQdirty = 1;         if (timerQ == m)             TIMERSET(m->baseline, now);     //  TIMERQ_EPILOGUE();-    } else if (!activate(m))+    } else if (!activate(m,0))         enqueueByDeadline(m, &msgQ);      ENABLE(rts);@@ -367,18 +406,18 @@         obj->STATE = (ADDR)STATEOF(obj);                              // actually unused, but keep it clean } -PID LOCK( PID to ) {+OID LOCK( OID to ) {     Ref r = (Ref)to;     pthread_mutex_lock(&(r->mut));     GC_PROLOGUE(to);-    if (to != (PID)r) {+    if (to != (OID)r) {         pthread_mutex_lock(&(((Ref)to)->mut));         pthread_mutex_unlock(&(r->mut));     }     return to; } -UNITTYPE UNLOCK( PID to ) {+UNITTYPE UNLOCK( OID to ) {     GC_EPILOGUE(to);     pthread_mutex_unlock(&(((Ref)to)->mut));     return (UNITTYPE)0;@@ -410,6 +449,8 @@  // Environment object --------------------------------------------------------------------------------- +void init_rts(void);+ #include "env.c"  // Show Float -----------------------------------------------------------------------------------------@@ -421,10 +462,10 @@ int timerQdirty;  void *timerHandler(void *arg) {-    Thread current = (Thread)arg;+    Thread current_thread = (Thread)arg;     struct sched_param param;-    param.sched_priority = current->prio;-    pthread_setschedparam(current->id, SCHED_RR, &param);+    param.sched_priority = current_thread->prio;+    pthread_setschedparam(current_thread->id, SCHED_RR, &param);  //    pthread_sigmask(SIG_BLOCK, &all_sigs, NULL);     sigset_t accept;@@ -439,7 +480,7 @@         while (timerQ && LESSEQ(timerQ->baseline, now)) {             Msg m = dequeue(&timerQ);             if (m->Code) {-                if (!activate(m))+                if (!activate(m,0))                     enqueueByDeadline(m, &msgQ);             }         }@@ -454,24 +495,33 @@         DISABLE(rts);         if (timerQ) {                 timerQ = (Msg)copy((ADDR)timerQ);+                Msg m = timerQ;                 ENABLE(rts);                 DISABLE(rts);-                Msg m = timerQ, next = m->next;+                Msg next = m->next;                 while (next) {                         m->next = (Msg)copy((ADDR)next);+                        m = m->next;                         ENABLE(rts);                         DISABLE(rts);-                        m = m->next;                         next = m->next;                 }         }         ENABLE(rts); } - // Initialization ------------------------------------------------------------------------------------- -void init_rts(int argc, char **argv) {+Int getNumberOfProcessors() {+#if defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN)+    Int n = sysconf(_SC_NPROCESSORS_ONLN);+    if (n >= 1)+        return n;+#endif+    return 1;+}++void init_rts(void) {     pthread_mutexattr_init(&glob_mutexattr);     pthread_mutexattr_settype(&glob_mutexattr, PTHREAD_MUTEX_NORMAL);     pthread_mutexattr_setprotocol(&glob_mutexattr, PTHREAD_PRIO_INHERIT);@@ -491,10 +541,14 @@          DISABLE(rts);     +    NCORES = getNumberOfProcessors();+    NTHREADS = NCORES * 4;+    if (NTHREADS > MAXTHREADS)+        NTHREADS = MAXTHREADS;+         gcInit();-    envInit(argc, argv);+    gcThread = newThread(NULL, prio_min, garbageCollector, pagesize);     newThread(NULL, prio_max, timerHandler, pagesize);          ENABLE(rts); }-
rtsPOSIX/rts.h view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. //  // Redistribution and use in source and binary forms, with or without@@ -36,7 +36,6 @@  #include <stddef.h> #include <sys/time.h>-//#include <setjmp.h> #include <pthread.h>  #include "config.h"@@ -53,7 +52,7 @@ #define UNITTYPE char #define UNITTERM char       // alias for singleton type #define POLY ADDR-#define PID ADDR+#define OID ADDR #define BITS8 unsigned char #define BITS16 unsigned short #define BITS32 unsigned int@@ -140,24 +139,17 @@ #define NEW(t,addr,words)       { ADDR top,stop; \                                   do { addr = (t)hp; stop = lim; top = ((ADDR)addr)+(words); } \                                   while (!CAS(addr,top,&hp)); \-                                  if (top>=stop) addr = (t)force((words),(ADDR)addr); }+                                  if (top>=stop) { addr = (t)force((words),(ADDR)addr<stop?(ADDR)addr:0);} } -#define CURRENT()               ((Thread)pthread_getspecific(current_key))+// Note: soundness of the spin-loop above depends on the invariant that lim is never changed unless hp also changes. -/*-#define TMIN(a,b)               ((a) < (b) ? (a) : (b) )-#define TPLUS(a,b)              ((a) + (b))-#define TMINUS(a,b)             ( (a) > (b) ? (a) - (b) : 0 )-*/+#define CURRENT()               ((Thread)pthread_getspecific(current_key))   extern ADDR hp, lim; extern pthread_key_t current_key;  ADDR force(WORD, ADDR);-void pruneStaticHeap();--void init_rts(int, char**);  Time sec(Int c); Time millisec(Int x);
rtsPOSIX/timberc.cfg.in view
@@ -2,4 +2,5 @@       { cCompiler = "@CC@ -DPOSIX"       , compileFlags = " @CFLAGS@ "       , linkFlags = " @LDFLAGS@ "+      , linkLibs = " -lTimber "       }
rtsPOSIX/timer.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. //  // Redistribution and use in source and binary forms, with or without@@ -45,10 +45,10 @@ typedef struct T_Timer *T_Timer;  struct T_Timer {-  WORD *GCINFO;-  UNITTYPE (*reset) (T_Timer, Int);-  Time (*sample) (T_Timer, Int);-  Ref self;+    WORD *GCINFO;+    UNITTYPE (*reset) (T_Timer, Int);+    Time (*sample) (T_Timer, Int);+    Ref self; };  @@ -60,246 +60,248 @@   Time sec(Int c) {-  Time res;-  NEW(Time,res,WORDS(sizeof(struct Time)));-  res->GCINFO = __GC__Time;-  res->sec = c;-  res->usec = 0;-  return res;+    Time res;+    NEW(Time,res,WORDS(sizeof(struct Time)));+    res->GCINFO = __GC__Time;+    res->sec = c;+    res->usec = 0;+    return res; }  Time millisec(Int c) {-  Time res;-  NEW(Time,res,WORDS(sizeof(struct Time)));-  res->GCINFO = __GC__Time;-  res->sec = c / 1000;-  res->usec = 1000 * (c % 1000);-  return res;+    Time res;+    NEW(Time,res,WORDS(sizeof(struct Time)));+    res->GCINFO = __GC__Time;+    res->sec = c / 1000;+    res->usec = 1000 * (c % 1000);+    return res; }  Time microsec(Int c) {-  Time res;-  NEW(Time,res,WORDS(sizeof(struct Time)));-  res->GCINFO = __GC__Time;-  res->sec = c / 1000000;-  res->usec = c % 1000000;-  return res;+    Time res;+    NEW(Time,res,WORDS(sizeof(struct Time)));+    res->GCINFO = __GC__Time;+    res->sec = c / 1000000;+    res->usec = c % 1000000;+    return res; }  Int secOf(Time t) {-  switch ((Int)t) {-  case INHERIT: panic("secOf Inherit");-  case TIME_INFINITY: panic("secOf infinity");-  default: return t->sec;-  }+    switch ((Int)t) {+        case INHERIT: panic("secOf Inherit");+        case TIME_INFINITY: panic("secOf infinity");+        default: return t->sec;+    } }  Int microsecOf(Time t) {-  switch ((Int)t) {-  case INHERIT: panic("microsecOf Inherit");-  case TIME_INFINITY: panic("microsecOf infinity");-  default: return t->usec;-  }+    switch ((Int)t) {+        case INHERIT: panic("microsecOf Inherit");+        case TIME_INFINITY: panic("microsecOf infinity");+        default: return t->usec;+    } }    Time primTimePlus(Time t1, Time t2) {-  Time res;-  switch ((Int)t1) {-  case INHERIT: return t2;-  case TIME_INFINITY: return Infinity;-  default: -    switch ((Int)t2) {-    case INHERIT: return t1;-    case TIME_INFINITY: return Infinity;-    default:-      NEW(Time,res,WORDS(sizeof(struct Time)));-      res->GCINFO = __GC__Time;-      res->usec = t1->usec + t2->usec;-      res->sec = t1->sec + t2->sec;-      if (res->usec >= 1000000) {-	res->usec -= 1000000;-	res->sec += 1;-      }-      return res;+    Time res;+    switch ((Int)t1) {+        case INHERIT: return t2;+        case TIME_INFINITY: return Infinity;+        default: +            switch ((Int)t2) {+                case INHERIT: return t1;+                case TIME_INFINITY: return Infinity;+                default:+                    NEW(Time,res,WORDS(sizeof(struct Time)));+                    res->GCINFO = __GC__Time;+                    res->usec = t1->usec + t2->usec;+                    res->sec = t1->sec + t2->sec;+                    if (res->usec >= 1000000) {+	                    res->usec -= 1000000;+	                    res->sec += 1;+                    }+                    return res;+            }     }-  } }  Time primTimeMin(Time t1, Time t2) {-  switch ((Int)t1) {-  case INHERIT: -  case TIME_INFINITY:return t2;-  default:-    switch ((Int)t2) {-    case INHERIT: -    case TIME_INFINITY: return t1;-    default: -      if (t1->sec < t2->sec || (t1->sec == t2->sec && t1->usec < t2->usec))-	return t1;-      else-	return t2;+    switch ((Int)t1) {+        case INHERIT: +        case TIME_INFINITY:return t2;+        default:+            switch ((Int)t2) {+                case INHERIT: +                case TIME_INFINITY: return t1;+                default: +                    if (t1->sec < t2->sec || (t1->sec == t2->sec && t1->usec < t2->usec))+	                    return t1;+                    else+	                    return t2;+                }     }-  } }   Time primTimeMinus(Time t1, Time t2) {-  Time res;-  switch ((Int)t1) {-  case INHERIT: panic("primTimeMinus Inherit");-  case TIME_INFINITY: -    switch((Int) t2) {-    case INHERIT: panic("primTimeMinus Inherit");-    case TIME_INFINITY: panic("infinity - infinity");-    default: return Infinity;-    }      -  default:-    switch ((Int)t2) {-    case INHERIT: panic("primTimeMinus Inherit");-    case TIME_INFINITY:-      NEW(Time,res,WORDS(sizeof(struct Time)));-      res->GCINFO = __GC__Time;-      res->sec = 0;-      res->usec = 0;-      return res;-    default:-      NEW(Time,res,WORDS(sizeof(struct Time)));-      res->GCINFO = __GC__Time;-      res->usec = t1->usec - t2->usec;-      if (res->usec < 0) {-	res->usec += 1000000;-	t1->sec -= 1;-      }-      res->sec = t1->sec - t2->sec;-      if (res->sec < 0) res->sec = 0;-      return res;+    Time res;+    switch ((Int)t1) {+        case INHERIT: panic("primTimeMinus Inherit");+        case TIME_INFINITY: +            switch((Int) t2) {+                case INHERIT: panic("primTimeMinus Inherit");+                case TIME_INFINITY: panic("infinity - infinity");+                default: return Infinity;+            }      +        default:+            switch ((Int)t2) {+                case INHERIT: panic("primTimeMinus Inherit");+                case TIME_INFINITY:+                    NEW(Time,res,WORDS(sizeof(struct Time)));+                    res->GCINFO = __GC__Time;+                    res->sec = 0;+                    res->usec = 0;+                    return res;+                default:+                    NEW(Time,res,WORDS(sizeof(struct Time)));+                    res->GCINFO = __GC__Time;+                    res->usec = t1->usec - t2->usec;+                    if (res->usec < 0) {+	                    res->usec += 1000000;+	                    t1->sec -= 1;+                    }+                    res->sec = t1->sec - t2->sec;+                    if (res->sec < 0) +                        res->sec = 0;+                    return res;+            }     }-  } }  Bool primTimeEQ(Time t1, Time t2) {-  switch ((Int)t1) {-  case INHERIT: panic("primTimeEQ Inherit");-  case TIME_INFINITY: switch((Int)t2) {-    case INHERIT: panic("primTimeEQ Inherit");-    case TIME_INFINITY: return 1;-    default:-      return 0;-    }-  default:-    switch ((Int)t2) {-    case INHERIT: panic("primTimeEQ Inherit");-    case TIME_INFINITY: return 0;-    default:-      return (t1->sec == t2->sec && t1->usec == t2->usec);+    switch ((Int)t1) {+        case INHERIT: panic("primTimeEQ Inherit");+        case TIME_INFINITY: +            switch((Int)t2) {+                case INHERIT: panic("primTimeEQ Inherit");+                case TIME_INFINITY: return 1;+                default: return 0;+            }+        default:+            switch ((Int)t2) {+                case INHERIT: panic("primTimeEQ Inherit");+                case TIME_INFINITY: return 0;+                default:+                    return (t1->sec == t2->sec && t1->usec == t2->usec);+            }     }-  } }  Bool primTimeNE(Time t1, Time t2) {-  switch ((Int)t1) {-  case INHERIT: panic("primTimeNE Inherit");-  case TIME_INFINITY: switch((Int)t2) {-    case INHERIT: panic("primTimeNE Inherit");-    case TIME_INFINITY: return 0;-    default:-      return 1;-    }-  default:-    switch ((Int)t2) {-    case INHERIT: panic("primTimeNE Inherit");-    case TIME_INFINITY: return 1;-    default:-      return (t1->sec != t2->sec || t1->usec != t2->usec);+    switch ((Int)t1) {+        case INHERIT: panic("primTimeNE Inherit");+        case TIME_INFINITY: +            switch((Int)t2) {+                case INHERIT: panic("primTimeNE Inherit");+                case TIME_INFINITY: return 0;+                default: return 1;+            }+        default:+            switch ((Int)t2) {+                case INHERIT: panic("primTimeNE Inherit");+                case TIME_INFINITY: return 1;+                default:+                    return (t1->sec != t2->sec || t1->usec != t2->usec);+            }     }-  } }  Bool primTimeLT(Time t1, Time t2) {-  switch ((Int)t1) {-  case INHERIT: panic("primTimeLT Inherit");-  case TIME_INFINITY: switch((Int)t2) {-    case INHERIT: panic("primTimeLT Inherit");-    default:-      return 0;-    }-  default:-    switch ((Int)t2) {-    case INHERIT: panic("primTimeLT Inherit");-    case TIME_INFINITY: return 1;-    default:-      return (t1->sec < t2->sec || (t1->sec==t2->sec && t1->usec<t2->usec));+    switch ((Int)t1) {+        case INHERIT: panic("primTimeLT Inherit");+        case TIME_INFINITY: +            switch((Int)t2) {+                case INHERIT: panic("primTimeLT Inherit");+                default: return 0;+            }+        default:+            switch ((Int)t2) {+                case INHERIT: panic("primTimeLT Inherit");+                case TIME_INFINITY: return 1;+                default:+                    return (t1->sec < t2->sec || (t1->sec==t2->sec && t1->usec<t2->usec));+            }     }-  } }+ Bool primTimeLE(Time t1, Time t2) {-  switch ((Int)t1) {-  case INHERIT: panic("primTime InheritLE");-  case TIME_INFINITY: switch((Int)t2) {-    case INHERIT: panic("primTime InheritLE");-    default:-      return 0;-    }-  default:-    switch ((Int)t2) {-    case INHERIT: panic("primTime InheritLE");-    case TIME_INFINITY: return 1;-    default:-      return (t1->sec < t2->sec || (t1->sec==t2->sec && t1->usec<=t2->usec));+    switch ((Int)t1) {+        case INHERIT: panic("primTime InheritLE");+        case TIME_INFINITY: +            switch((Int)t2) {+                case INHERIT: panic("primTime InheritLE");+                default: return 0;+            }+        default:+            switch ((Int)t2) {+                case INHERIT: panic("primTime InheritLE");+                case TIME_INFINITY: return 1;+                default:+                    return (t1->sec < t2->sec || (t1->sec==t2->sec && t1->usec<=t2->usec));+            }     }-  } }  Bool primTimeGT(Time t1, Time t2) {-  return primTimeLT(t2,t1);+    return primTimeLT(t2,t1); }  Bool primTimeGE(Time t1, Time t2) {-  return primTimeLE(t2,t1);+    return primTimeLE(t2,t1); }  static UNITTYPE reset_fun(Ref self, Int x) {-  self = (Ref)LOCK((PID)self);-  ((S_Timer)STATEOF(self))->start = CURRENT()->msg->baseline;-  UNLOCK((PID)self);-  return (UNITTYPE)0;+    self = (Ref)LOCK((OID)self);+    ((S_Timer)STATEOF(self))->start = CURRENT()->msg->baseline;+    UNLOCK((OID)self);+    return (UNITTYPE)0; }  static Time sample_fun(Ref self, Int x) {-  self = (Ref)LOCK((PID)self);-  AbsTime now;-  now = CURRENT()->msg->baseline;-  SUB(now,((S_Timer)STATEOF(self))->start);-  UNLOCK((PID)self);-  Time res;-  NEW(Time,res,WORDS(sizeof(struct Time)));-  res->GCINFO = __GC__Time;-  res->sec = now.tv_sec;-  res->usec = now.tv_usec;-  return res;+    self = (Ref)LOCK((OID)self);+    AbsTime now;+    now = CURRENT()->msg->baseline;+    SUB(now,((S_Timer)STATEOF(self))->start);+    UNLOCK((OID)self);+    Time res;+    NEW(Time,res,WORDS(sizeof(struct Time)));+    res->GCINFO = __GC__Time;+    res->sec = now.tv_sec;+    res->usec = now.tv_usec;+    return res; }  static UNITTYPE reset_sel(T_Timer this,Int x) {-  return reset_fun(this->self,x);+    return reset_fun(this->self,x); }  static Time sample_sel(T_Timer this, Int x) {-  return sample_fun(this->self,x);+    return sample_fun(this->self,x); }  TIMERTYPE primTIMERTERM(Int x) {-  Ref self;-  NEW(Ref,self,WORDS(sizeof(struct Ref))+WORDS(sizeof(struct S_Timer)));-  INITREF(self);-  ((S_Timer)STATEOF(self))->GCINFO = __GC__S_Timer;-  ((S_Timer)STATEOF(self))->start = CURRENT()->msg->baseline;-  T_Timer res;-  NEW(T_Timer,res,WORDS(sizeof(struct T_Timer)));-  res->GCINFO = __GC__T_Timer;-  res->reset = reset_sel;-  res->sample = sample_sel;-  res->self = self;-  return (TIMERTYPE)res;+    Ref self;+    NEW(Ref,self,WORDS(sizeof(struct Ref))+WORDS(sizeof(struct S_Timer)));+    INITREF(self);+    ((S_Timer)STATEOF(self))->GCINFO = __GC__S_Timer;+    ((S_Timer)STATEOF(self))->start = CURRENT()->msg->baseline;+    T_Timer res;+    NEW(T_Timer,res,WORDS(sizeof(struct T_Timer)));+    res->GCINFO = __GC__T_Timer;+    res->reset = reset_sel;+    res->sample = sample_sel;+    res->self = self;+    return (TIMERTYPE)res; }
src/Common.hs view
@@ -1,8 +1,8 @@-{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, DeriveDataTypeable #-}  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -38,8 +38,11 @@ import PP import qualified List import qualified Maybe+import Control.Exception import Char+import Config import Name+import Data.Typeable import Data.Binary import Debug.Trace @@ -112,7 +115,7 @@ rmPrefix                        :: String -> String -> String rmPrefix pre str    | pre `List.isPrefixOf` str   = drop (length pre) str-  | otherwise                   = error $ "rmPrefix: " ++ str ++ " is not a prefix of " ++ show pre+  | otherwise                   = internalError0 $ "rmPrefix: " ++ str ++ " is not a prefix of " ++ show pre  rmDirs                          :: String -> String rmDirs                          = reverse . fst . span (/='/') . reverse @@ -132,7 +135,7 @@  -- Error reporting --------------------------------------------------------- -errorIds mess ns                = error (unlines ((mess++":") : map pos ns))+errorIds mess ns                = compileError (unlines ((mess++":") : map pos ns))   where pos n                   = case loc n of                                     Just (r,c) -> rJust 15 (show n) ++ "  at line " ++ show r ++ ", column " ++ show c                                     Nothing ->    rJust 15 (show n) ++ modInfo n@@ -140,13 +143,17 @@         rJust w str             = replicate (w-length str) ' ' ++ str         modInfo (Name _ _ (Just m) a) = " defined in " ++ m         modInfo _               = " (unknown position)"-errorTree mess t                = error (mess ++ pos ++ (if length (lines str) > 1 then "\n"++str++"\n" else str) )+errorTree mess t                = compileError (errorMsg mess t)++compileError mess               = throw (CompileError mess)++errorMsg mess t                 = mess ++ pos ++ (if length (lines str) > 1 then "\n"++str++"\n" else str)   where str                     = render (pr t)         pos                     = " ("++ show (posInfo t) ++"): "  -internalError mess t            = errorTree ("**** Internal compiler error ****\n" ++ mess) t+internalError mess t            = internalError0 (errorMsg mess t) -internalError0 mess             = error ("**** Internal compiler error ****\n" ++ mess)+internalError0 mess             = throw (Panic mess)   -- PosInfo ---------------------------------------------------------@@ -272,7 +279,7 @@  runM (M m)                      = case m (1,[]) of                                      Right (_,x) -> x-                                    Left s      -> error s+                                    Left s      -> compileError s  newNum                          = M $ \(n,s) -> Right ((n+1,s), n) @@ -449,7 +456,7 @@   | otherwise                   = (k',x') : insert k x assoc  -update k f []                   = error "Internal: Common.update"+update k f []                   = internalError0 "Internal: Common.update" update k f ((k',x):assoc)   | k == k'                     = (k, f x) : assoc   | otherwise                   = (k',x) : update k f assoc@@ -531,6 +538,7 @@   posInfo _                     = Unknown  newtype TVar                    = TV (Int,Kind)+                                deriving (Typeable)  type KEnv                       = Map Name Kind 
src/Config.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -74,17 +74,18 @@ import Char import System.Console.GetOpt import System                 ( getArgs, getEnv, getProgName )-import qualified Control.Exception as Exception ( throwIO, Exception )+import qualified Control.Exception as Exception import Data.Dynamic  -versionString = "The Timber compiler, version 1.0.2"+versionString = "The Timber compiler, version 1.0.3"  -- | Contains the configuration for the compiler with the current -- command line switches. data CfgOpts         = CfgOpts { cCompiler       :: FilePath,                                  compileFlags    :: String,-                                 linkFlags       :: String+                                 linkFlags       :: String,+                                 linkLibs        :: String                                } deriving (Show, Eq, Read)  -- | Command line options.@@ -198,8 +199,10 @@                      deriving (Show,Eq)  data TimbercException-  = CmdLineError String  -- User did something wrong with command line options.-  | Panic String         -- Unexpected faults in timberc, panic.+  = CmdLineError String     -- User did something wrong with command line options.+  | ConfigError String      -- Something is wrong with the given compiler configuration.+  | CompileError String     -- Error in the given Timber input file.+  | Panic String            -- Unexpected faults in timberc, panic.   deriving (Eq)  instance Typeable TimbercException where@@ -207,9 +210,10 @@  -- | Let us show our exceptions as expected. instance Show TimbercException where-  showsPrec _ (CmdLineError s) = showString s-  showsPrec _ (Panic s)        = showString $-                                 "Panic! Please file a bug report!\n\n" ++ s+  showsPrec _ (CmdLineError s)      = showString s+  showsPrec _ (ConfigError s)       = showString s+  showsPrec _ (CompileError s)      = showString s+  showsPrec _ (Panic s)             = showString ("**** Internal compiler panic! [Please file a bug report...]\n\n" ++ s)  instance Exception.Exception TimbercException @@ -290,8 +294,8 @@         safeRead file text =             let val = case [x | (x,t) <- reads text, ("","") <- lex t] of                       [x] -> x-                      [] -> error ("Parse error in " ++ file ++ "\n")-                      _ -> error ("File not found: " ++ file ++ "\n")+                      [] -> Exception.throw (ConfigError ("Parse error in " ++ file ++ "\n"))+                      _ -> Exception.throw (ConfigError ("File not found: " ++ file ++ "\n"))                 in (return $! val)         emsg f = (CmdLineError $ "Could not open " ++ file) 
src/Core.hs view
@@ -1,8 +1,8 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts #-}+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts, DeriveDataTypeable #-}  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -37,6 +37,7 @@  import Common import PP+import Data.Typeable import Data.Binary import Monad @@ -72,20 +73,20 @@ type Pred       = Type  data Scheme     = Scheme  Rho [PScheme] KEnv-                deriving  (Eq,Show)+                deriving  (Eq,Show,Typeable)  data Constr     = Constr  [Scheme] [PScheme] KEnv                 deriving (Eq,Show)  data Rho        = R       Type                 | F       [Scheme] Rho-                deriving (Eq,Show)+                deriving (Eq,Show,Typeable)  data Type       = TId     Name                 | TVar    TVar                 | TFun    [Type] Type                 | TAp     Type Type-                deriving  (Eq,Show)+                deriving  (Eq,Show,Typeable)  type Alt        = (Pat, Exp) @@ -124,13 +125,24 @@ litType (LStr _ s)              = TAp (TId (prim LIST)) (TId (prim Char)) --internalError0 "Core.litType LStr"  -isNewAp (EVar (Prim New _))     = True-isNewAp (EAp e _)               = isNewAp e-isNewAp (ELet bs e)-  | isEncoding bs               = isNewAp e-isNewAp _                       = False+monoRestrict rec sc (ELet bs e)+  | isEncoding bs               = monoRestrict rec sc e+monoRestrict _ _ (EAp e _)+  | isNew e                     = True+monoRestrict _ _ (ELam _ _)     = False+monoRestrict _ _ (EAct _ _)     = False+monoRestrict _ _ (EReq _ _)     = False+monoRestrict _ _ (ETempl _ _ _ _) = False+monoRestrict _ _ (EDo _ _ _)    = False+monoRestrict _ _ (EVar x)       = False+monoRestrict rec sc _           = rec && null (ctxt sc)  +isNew (ELet bs e)+  | isEncoding bs               = isNew e+isNew (EVar (Prim New _))       = True+isNew _                         = False+ tupleKind n                     = foldr KFun Star (replicate n Star)  @@ -152,13 +164,6 @@ isConPat (PCon _)               = True isConPat _                      = False -isLambda (ELam _ _)             = True-isLambda _                      = False---arity (ELam te e)               = length te-arity e                         = 0- eLet [] [] e                    = e eLet te eq e                    = ELet (Binds False te eq) e @@ -662,8 +667,9 @@                                       | otherwise -> return (TId n)     ac s (TFun t ts)            = liftM2 TFun (ac s t) (ac s ts)     ac s (TAp t u)              = liftM2 TAp (ac s t) (ac s u)-    ac s t                      = return t+    ac s (TVar n)               = newTVar (tvKind n) + instance AlphaConv Rho where     ac s (R t)                  = liftM R (ac s t)     ac s (F ts t)               = liftM2 F (ac s ts) (ac s t)@@ -680,6 +686,29 @@                                      return (s'++s)   where ext x                   = do n <- newNum                                      return (x, {-annotGenerated-} x { tag = n })+++-- Refresh free unification variables -----------------------------------------------++class Refresh a where+    refresh                     :: a -> M x a++instance Refresh a => Refresh [a] where+    refresh xs                  = mapM refresh xs+    +instance Refresh Type where+    refresh (TVar (TV (_,k)))   = newTVar k+    refresh (TFun t ts)         = liftM2 TFun (refresh t) (refresh ts)+    refresh (TAp t u)           = liftM2 TAp (refresh t) (refresh u)+    refresh t                   = return t++instance Refresh Rho where+    refresh (R t)               = liftM R (refresh t)+    refresh (F ts t)            = liftM2 F (refresh ts) (refresh t)++instance Refresh Scheme where+    refresh (Scheme t ps ke)    = liftM3 Scheme (refresh t) (refresh ps) (return ke)+                                            -- Bound variables --------------------------------------------------------------@@ -692,8 +721,8 @@ -- System F encodings ============================================================  -- Encode a System F type application term-encodeTApp env [] e             = return e-encodeTApp env ts e             = do xs <- newNames tappSym (length ts)+encodeTApp [] e                 = return e+encodeTApp ts e                 = do xs <- newNames tappSym (length ts)                                      let te = xs `zip` map scheme ts                                          eq = xs `zip` map EVar xs                                      return (ELet (Binds True te eq) e)@@ -704,8 +733,8 @@   -- Encode a System F type abstraction term-encodeTAbs env [] e             = return e-encodeTAbs env ke e             = do x <- newName tabsSym+encodeTAbs [] e                 = return e+encodeTAbs ke e                 = do x <- newName tabsSym                                      let te = [(x,Scheme (R (TId (prim UNITTYPE))) [] ke)]                                      return (ELet (Binds True te [(x,EVar x)]) e) @@ -822,11 +851,11 @@     pr (Binds _ te eqns)        = vpr te $$ vpr eqns      instance Pr (Name, Scheme) where-    pr (v, sc)                  = prId v <+> text "::" <+> pr sc'-      where sc'                 = subst s sc-            s                   = map f (tyvars sc)-            f v@(Name s n m a)  = (v, Name ('_':s) n m a)-            f v                 = (v,v)+    pr (v, sc)                  = prId v <+> text "::" <+> pr sc+--      where sc'                 = subst s sc+--            s                   = map f (tyvars sc)+--            f v@(Name s n m a)  = (v, Name ('_':s) n m a)+--            f v                 = (v,v)                                    instance Pr (Name, Exp) where     pr (v, e)                   = prId v <+> text "=" <+> pr e@@ -910,6 +939,12 @@  prMaybeScheme Nothing           = empty prMaybeScheme (Just t)          = prn 1 t+++-- Substitutions -----------------------------------------------------------++instance Pr a => Pr (a, Type) where+    pr (n, t) = pr n <+> text "~" <+> pr t   -- Patterns ----------------------------------------------------------------
src/Core2Kindle.hs view
@@ -2,7 +2,7 @@  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -111,7 +111,10 @@     -- Look up a closure type (a Kindle.Struct) in the current store, extending the store if necessary-findClosureType env [] ts t         = do ds <- currentStore+findClosureType env [] ts t+  | a == 0                          = internalError0 "findClosureType [] []"+  | a <= maxPrimClos                = return (Kindle.tClos a (t:ts))+  | otherwise                       = do ds <- currentStore                                          -- tr ("Looking for (1) " ++ render (pr (name0 "closure", Kindle.FunT [] ts t)))                                          case Kindle.findStruct s0 ds of                                             Just n  -> return (Kindle.TCon n (t:ts))@@ -136,17 +139,19 @@         ts0                         = map Kindle.tVar vs0  +openClosureType (Kindle.TCon (Prim p _) (t:ts))+  | isClosPrim p                    = return ([], ts, t) openClosureType (Kindle.TCon n ts)   | isClosure n                     = do ds <- currentStore                                          let Kindle.Struct vs te _ = lookup' ds n-                                             Kindle.FunT [] ts' t' = lookup' te (prim Code)+                                             Kindle.FunT vs' ts' t' = lookup' te (prim Code)                                              s = vs `zip` ts-                                         return (subst s ts', subst s t')+                                         return (vs', subst s ts', subst s t') openClosureType t                   = internalError "Core2Kindle.openClosureType" t   splitClosureType env 0 t0           = return ([], t0)-splitClosureType env n t0           = do (ts,t) <- openClosureType t0+splitClosureType env n t0           = do ([],ts,t) <- openClosureType t0                                          let n' = n - length ts                                          if n' >= 0 then do                                              (tss,t1) <- splitClosureType env n' t@@ -233,8 +238,7 @@   -- Translate a Core.Type but treat function types as closures-cType' env (TId (Prim Action _), [])    = return ([t,t], Kindle.tId Msg)-  where t                               = Kindle.tId Time+cType' env (TId (Prim Action _), [])    = return ([Kindle.tTime,Kindle.tTime], Kindle.tMsg) cType' env (TId (Prim Request _), [t])  = do t <- cAType env t                                              return ([Kindle.tInt], t) cType' env (TId (Prim Class _), [t])    = do t <- cAType env t@@ -249,8 +253,8 @@                                                  return ([], Kindle.TVar n ts)                                               else                                                  return ([], Kindle.TCon n ts)-cType' env (TVar _, [])                 = return ([], Kindle.tInt)-cType' env (TVar _, ts)                 = do ts <- mapM (cAType env) ts+cType' env (TVar n, [])                 = return ([], Kindle.tInt)+cType' env (TVar n, ts)                 = do ts <- mapM (cAType env) ts                                              return ([], Kindle.TCon (tuple (length ts)) ts) cType' env (t, _)                       = do t <- cAType env t                                              return ([], t)@@ -301,12 +305,7 @@ cBindsList env []                       = return [] cBindsList env (bs:bss)                 = do (te,bf) <- cBinds env bs                                              bs <- cBindsList (addTEnv te env) bss-                                             return (flatBinds bf ++ bs)---flatBinds bf                            = flat (bf Kindle.CBreak)-  where flat (Kindle.CBind r bs c)      = bs ++ flat c-        flat _                          = []+                                             return (Kindle.flatBinds bf ++ bs)   -- Translate a list of (mutually recursive) Core bindings into a Kindle.CBind on basis of declared type@@ -317,8 +316,8 @@                                              (bf,bs) <- cEqs (addTEnv te' env) te' eqs                                              return (te', comb rec bf bs)   where comb False bf bs                = bf . Kindle.CBind False bs-        comb True bf bs                 = Kindle.CBind True (flatBinds bf ++ bs)-        insts                           = dom (filter (isNewAp . snd) eqs)+        comb True bf bs                 = Kindle.CBind True (Kindle.flatBinds bf ++ bs)+        insts                           = dom (filter (\(x,e) -> monoRestrict rec (lookup' te x) e) eqs)         (te1,te2)                       = partition ((`elem` insts) . fst) te  @@ -330,31 +329,90 @@                                             Kindle.ValT t0 -> do                                                 (bf,e) <- cValExpT env t0 e                                                 return (bf, (x, Kindle.Val t0 e))-                                            Kindle.FunT _ ts0 t0 -> do-                                                (vs,te,t,c) <- cFunN env (length ts0) e+                                            Kindle.FunT vs0 ts0 t0 -> do+                                                (vs,te,t,c) <- cFunT env vs0 ts0 t0 e                                                 return (id, (x, Kindle.Fun vs t te c))   -- Translate a Core.Exp with a known type into a Kindle.Exp-cValExpT env t e                        = do (bf,t',e') <- cValExp env e-                                             e'' <- adaptClos env [] t [] t' e'-                                             return (bf, e'')-                                                 +cValExpT env s e                        = do (bf,t,e') <- cValExp env e+                                             f <- adaptVal env [] s [] t+                                             return (bf, f e') -adaptClos env [] t0 [] t1 e-  | t0 == t1                            = return e                                                                  -- A-adaptClos env xs t0 [] t1 e             = do (ts,t1) <- openClosureType t1-                                             adaptClos env xs t0 ts t1 e                                            -- B-adaptClos env xs t0 ts t1 e-  | length xs >= length ts              = adaptClos env xs2 t0 [] t1 (Kindle.enter e [] (map Kindle.EVar xs1))      -- C-  | otherwise                           = do (ts',t') <- openClosureType t0-                                             te <- newEnv paramSym ts'-                                             e' <- adaptClos env (xs ++ dom te) t' ts t1 e-                                             return (Kindle.closure t0 t' te (Kindle.CRet e'))                      -- D-  where (xs1,xs2)                       = splitAt (length ts) xs-        (ts1,ts2)                       = splitAt (length xs) ts+cValExpTs env [] []                     = return (id, [])+cValExpTs env (s:ss) (e:es)             = do (bf,e) <- cValExpT env s e+                                             (bf',es) <- cValExpTs env ss es+                                             return (bf . bf', e:es)  +adaptVars env [] []                     = return []                       +adaptVars env (t0:ts) ((x,t1):te)       = do f <- adaptVal env [] t0 [] t1+                                             es <- adaptVars env ts te+                                             return (f (Kindle.EVar x) : es)+  where (xs,ts')                        = unzip te++adaptVal env [] s [] t+  | s == t                              = return id                                                                 -- A+adaptVal env se s [] t                  = do ([],ts,t1) <- openClosureType t+                                             adaptVal env se s ts t1                                                -- B+adaptVal env se s ts t+  | l_se >= l_ts                        = do let (se1,se2) = splitAt l_ts se+                                             es <- adaptVars env ts se1+                                             f <- adaptVal env se2 s [] t+                                             return (\e -> f (Kindle.enter e [] es))                                -- C+  | otherwise {- l_se < l_ts -}         = do ([],ss,s1) <- openClosureType s+                                             se' <- newEnv paramSym ss+                                             f <- adaptVal env (se++se') s1 ts t+                                             return (\e -> Kindle.closure s s1 se' (Kindle.CRet (f e)))             -- D+  where l_se                            = length se+        l_ts                            = length ts++adaptVals env [] []                     = return id+adaptVals env (s:ss) (t:ts)             = do f <- adaptVal env [] s [] t+                                             g <- adaptVals env ss ts+                                             return (\(e:es) -> f e : g es)+++-- Translate a Core.Exp into a Kindle command, a return type, a type abstraction, and an argument list of given length+cFunT env vs0 ts0 t0 e                  = do (vs,te,t,c) <- cFun0 env e+                                             let s = vs0 `zip` map Kindle.tVar vs+                                                 ts1 = subst s ts0+                                                 t1 = subst s t0+                                             (te,t,c) <- adaptFun env ts1 t1 te t c+                                             if rng te /= ts1 then tr ("#### cFunT mismatch #####") else return ()+                                             return (vs, te, t, c)++adaptEnv env [] []                      = return (id, [])+adaptEnv env (s:ss) ((x,t):te)+  | s == t                              = do (bf,se) <- adaptEnv env ss te+                                             return (bf, (x,s):se)+  | otherwise                           = do y <- newName tempSym+                                             f <- adaptVal env [] t [] s+                                             -- tr ("** adapting " ++ render (pr s) ++ " *to* " ++ render (pr t))+                                             (bf,se) <- adaptEnv env ss te+                                             return (Kindle.cBind [(x,Kindle.Val t (f (Kindle.EVar y)))] . bf, (y,s):se)++adaptFun env ss s te t c+  | s:ss == t:rng te                    = return (te, t, c)+  | l_ss >=  l_te                       = do (tss,t') <- splitClosureType env (l_ss - l_te) t+                                             te' <- newEnv paramSym (concat tss)+                                             (bf,se) <- adaptEnv env ss (te++te')+                                             f <- adaptVal env [] s [] t'+                                             return (se, s, bf (Kindle.cmap (f . Kindle.multiEnter tss (map Kindle.EVar (dom te'))) c))+  | otherwise {- l_ss <  l_te -}        = do let (te1,te2) = splitAt l_ss te+                                             t1 <- findClosureType env [] (rng te2) t+                                             adaptFun env ss s te1 t1 (Kindle.CRet (Kindle.closure t1 t te2 c))+  where l_ss                            = length ss+        l_te                            = length te+        ++-- []         (s1 -> s2 -> s3)               []         (t1 t2 -> t3)                  e                             ^                          B+-- []         (s1 -> s2 -> s3)               t1 t2      t3                             e                             C (s1 x1)                  D+-- x1         (s2 -> s3)                     t1 t2      t3                             e                             C (s2 x2)                  D+-- x1 x2      s3                             t1 t2      t3                             e->C(x1,x2)                   ^                          C+-- []         s3                             []         t3                             e->C(x1,x2)                   ^                          A++ -- []         (s1 s2 s3 -> s4 -> s5 -> s0)   []         (t1 t2 -> t3 t4 t5 -> t0)      e                             =                          B -- []         (s1 s2 s3 -> s4 -> s5 -> s0)   t1 t2      (t3 t4 t5 -> t0)               e                             C (s1 x1, s2 x2, s3 x3) =  D -- x1 x2 x3   (s4 -> s5 -> s0)               t1 t2      (t3 t4 t5 -> t0)               e                             =                          C@@ -381,29 +439,6 @@ -- new Code (s1 x1, s2 x2) { ret new Code (s3 x3, s4 x4 s5 x5) { ret e->Code(x1, x2, x3)->Code(x4)->Code(x5) }}  --                                             -cValExpTs env [] []                     = return (id, [])-cValExpTs env (t:ts) (e:es)             = do (bf,e) <- cValExpT env t e-                                             (bf',es) <- cValExpTs env ts es-                                             return (bf . bf', e:es)----- Translate a Core.Exp into a Kindle command, a return type, a type abstraction, and an argument list of given length-cFunN env n e                           = do (vs,te,t,c) <- cFun0 env e-                                             (te,t,c) <- adapt te t c-                                             return (vs, te, t, c)-  where adapt te t c-          | n == l_te                   = return (te, t, c)-          | n >  l_te                   = do (tss,t') <- splitClosureType env (n - l_te) t-                                             te' <- newEnv paramSym (concat tss)-                                             return (te++te', t', Kindle.cmap (Kindle.multiEnter tss (map Kindle.EVar (dom te'))) c)-          | n <  l_te                   = do t1 <- findClosureType env [] (rng te2) t-                                             return (te1, t1, Kindle.CRet (Kindle.closure t1 t te2 c))-          where l_te                    = length te-                (te1,te2)               = splitAt n te-- -- ========================================================================================= -- Translating abstractions -- =========================================================================================@@ -532,7 +567,7 @@                                              return (t, rcomp bf r) cBody env (ECase e alts)                = cCase cBody env e alts cBody env (EAp e0 [e]) -  | isPrim Match e0                     = do (t,r) <- cPMC cBody env e+  | isPrim Match e0                     = do (t,r) <- cPMC cBody cExpFail env e                                              return (t, rcomp (\c -> Kindle.CSeq c (Kindle.CRaise (Kindle.ELit (lInt 1)))) r) cBody env e                             = do (bf,t,h) <- cExp env e                                              case h of@@ -552,25 +587,30 @@   -- Translate a Core.Exp corresponding to a PMC term into a Kindle.Cmd result-cPMC cE env (ELet bs e)+cPMC cE cF env (ELet bs e)   | not (isEncoding bs)                 = do (te,bf) <- cBinds env bs-                                             (t,r) <- cPMC cE (addTEnv te env) e+                                             (t,r) <- cPMC cE cF (addTEnv te env) e                                              return (t, rcomp bf r)-cPMC cE env (ECase e alts)              = cCase (cPMC cE) env e alts-cPMC cE env (EAp e0 [e1,e2])-  | isPrim Fatbar e0                    = do r1 <- cPMC cE env e1-                                             r2 <- cPMC cE env e2-                                             let n = maximum [rArity r1, rArity r2]-                                             r1 <- adaptR env n r1-                                             r2 <- adaptR env n r2+cPMC cE cF env (ECase e alts)           = cCase (cPMC cE cF) env e alts+cPMC cE cF env (EAp e0 [e1,e2])+  | isPrim Fatbar e0                    = do r1 <- cPMC cE cF env e1+                                             r2 <- cPMC cE cF env e2+                                             let r = maxR [r1, r2]+                                             r1 <- adaptR env r r1+                                             r2 <- adaptR env r r2                                              return (mkSeq r1 r2)-cPMC cE env (EAp e0 [e])+cPMC cE cF env (EAp e0 [e])   | isPrim Commit e0                    = cE env e-cPMC cE env e0-  | isPrim Fail e0                      = do [t] <- cTArgs env e0+cPMC cE cF env e0+  | isPrim Fail e0                      = cF env e0+cPMC cE cF env e                        = internalError "PMC syntax violated in Core2Kindle" e++cExpFail env e0                         = do [t] <- cTArgs env e0                                              return (t, ValR Kindle.CBreak)-cPMC cE env e                           = internalError "PMC syntax violated in Core2Kindle" e +cCmdFail env e0                         = do [t] <- cTArgs env e0+                                             ([],[_],t') <- openClosureType t+                                             return (t', ValR Kindle.CBreak)  -- Translate the parts of a case expression into a Kindle.Cmd result cCase cE env e ((PCon k,e'):_)@@ -581,27 +621,42 @@                                              return (t1, rcomp (bf . Kindle.cBind bs) r) cCase cE env e alts                     = do (bf,t0,e0) <- cValExp env e                                              rs <- mapM (cAlt cE env) alts-                                             let n = maximum (map rArity rs)-                                             rs <- mapM (adaptR env n) rs+                                             let r = maxR rs+                                             rs <- mapM (adaptR env r) rs                                              return (mkSwitch bf rs e0)  -adaptR env 0 (t0, ValR c)               = return (t0, ValR c)-adaptR env n (t0, FunR f ts)-  | n == l_ts                           = return (t0, FunR f ts)-  | n > l_ts                            = do (tss,t) <- splitClosureType env (n - l_ts) t0-                                             return (t, FunR (g tss) (ts ++ concat tss))-  where l_ts                            = length ts-        g tss es                        = let (es1,es2) = splitAt l_ts es-                                          in Kindle.cmap (Kindle.multiEnter tss es2) (f es1)-adaptR env n (t0, ValR c)               = do (tss,t) <- splitClosureType env n t0-                                             return (t, FunR (g tss) (concat tss))-  where g tss es                        = Kindle.cmap (Kindle.multiEnter tss es) c+adaptR env (s,ValR _) (t,ValR c)+  | s == t                              = return (s, ValR c)+  | otherwise                           = do f <- adaptVal env [] s [] t+                                             return (s, ValR (Kindle.cmap f c))+adaptR env (s,FunR _ ss) (t, FunR f ts)+  | s:ss == t:ts                        = return (s, FunR f ss)+  | l_ss >= l_ts                        = do (tss,t') <- splitClosureType env (l_ss - l_ts) t+                                             g <- adaptVals env (ts ++ concat tss) ss+                                             h <- adaptVal env [] s [] t'+                                             return (s, FunR (sat g h tss) ss)+  where l_ss                            = length ss+        l_ts                            = length ts+        sat g h tss es                  = let (es1,es2) = splitAt l_ts (g es)+                                          in Kindle.cmap (h . Kindle.multiEnter tss es2) (f es1)+adaptR env (s,FunR _ ss) (t,ValR c)     = do (tss,t') <- splitClosureType env (length ss) t+                                             g <- adaptVals env (concat tss) ss+                                             h <- adaptVal env [] s [] t'+                                             return (s, FunR (sat g h tss) ss)+  where sat g h tss es                  = Kindle.cmap (h . Kindle.multiEnter tss (g es)) c  -rArity (t, ValR _)                      = 0-rArity (t, FunR f ts)                   = length ts+maxR (r:rs)                             = max (arity r) r rs+  where arity (_,ValR _)                = 0+        arity (_,FunR _ ts)             = length ts+        max n0 r0 []                    = r0+        max n0 r0 (r:rs)+          | n > n0                      = max n r rs+          | otherwise                   = max n0 r0 rs+          where n                       = arity r + mkSwitch bf ((t,ValR c):rs) e0          = (t, ValR (bf (Kindle.CSwitch e0 alts)))   where alts                            = c : [ alt | (_,ValR alt) <- rs ]      mkSwitch bf ((t,FunR g ts):rs) e0       = (t, FunR (\es -> bf (Kindle.CSwitch e0 (map ($es) (g:gs)))) ts)@@ -658,10 +713,12 @@ cCmdExp env (EAp e0 [e])   --  | isPrim ReqToCmd e0                  = ...   | isPrim Raise e0                     = do (bf,te,e) <- freezeState env e-                                             (bf',t,e') <- cValExp (addTEnv te env) e-                                             return (t, bf (bf' (Kindle.CRaise e')))+                                             (bf',_,e') <- cValExp (addTEnv te env) e+                                             [t] <- cTArgs env e0+                                             ([],[_],t') <- openClosureType t+                                             return (t', bf (bf' (Kindle.CRaise e')))   | isPrim Match e0                     = do (bf,te,e) <- freezeState env e-                                             (t,ValR c) <- cPMC cValCmdExp (addTEnv te env) e+                                             (t,ValR c) <- cPMC cValCmdExp cCmdFail (addTEnv te env) e                                              return (t, bf (Kindle.CSeq c (Kindle.CRaise (Kindle.ELit (lInt 1))))) cCmdExp env (EDo x tx c)                = do tx <- cAType env tx                                              (t,c) <- cCmd (pushSelf x (addATEnv [(x,Kindle.tRef tx)] env)) c@@ -765,8 +822,8 @@                                              return (bf, t, FunR (\_ -> e) [Kindle.tRef t2])   | Just t <- isCastPrim e0             = do (bf,_,e') <- cExp env e                                              return (bf, t, rcomp (Kindle.ECast t) e')-  | isPrim RefToPID e0                  = do (bf,t,e) <- cExp env e-                                             return (bf, Kindle.tPID, rcomp (Kindle.ECast Kindle.tPID) e)+  | isPrim RefToOID e0                  = do (bf,t,e) <- cExp env e+                                             return (bf, Kindle.tOID, rcomp (Kindle.ECast Kindle.tOID) e)   | isPrim New e0                       = cExp env (EAp e [ELit (lInt 0)])       -- Can't occur but in CBind rhs, syntactic restriction cExp env (EAp e0 [e,e'])   | isPrim After e0                     = do (bf,e1) <- cValExpT env Kindle.tTime e@@ -782,7 +839,7 @@                                              appFun env bf t f ts es   where appFun env bf t f ts es           | l_ts <  l_es                = do (bf',es1) <- cValExpTs env ts es1-                                             (ts',t') <- openClosureType t +                                             ([],ts',t') <- openClosureType t                                               appFun env (bf . bf') t' (Kindle.enter (f es1) []) ts' es2           | l_ts == l_es                = do (bf',es) <- cValExpTs env ts es                                              return (bf . bf', t, ValR (f es))@@ -793,7 +850,14 @@                 (ts1,ts2)               = splitAt l_es ts                 (es1,es2)               = splitAt l_ts es cExp env (EVar x)                       = case lookup' (tenv env) x of-                                             Kindle.ValT t        -> return (id, t, ValR e)+                                             Kindle.ValT t+                                               | null ts          -> return (id, t, ValR e)+                                               | otherwise        -> do (vs,ts',t') <- openClosureType t+                                                                        let s = vs `zip` ts+                                                                        if null ts' then+                                                                            return (id, subst s t', ValR (Kindle.enter e ts []))+                                                                         else+                                                                            return (id, subst s t', FunR (Kindle.enter e ts) (subst s ts'))                                              Kindle.FunT vs ts' t                                                 | null ts'         -> return (id, subst s t, ValR (Kindle.ECall x ts []))                                                | otherwise        -> return (id, subst s t, FunR (Kindle.ECall x ts) (subst s ts'))@@ -844,7 +908,7 @@ cFunExp env e                           = do (bf,t,h) <- cExp env e                                              case h of                                                FunR f ts -> return (bf, t, f, ts)-                                               ValR e' -> do (ts,t') <- openClosureType t+                                               ValR e' -> do ([],ts,t') <- openClosureType t                                                              return (bf, t', Kindle.enter e' [], ts)   
src/Decls.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
src/Depend.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -115,5 +115,6 @@ groupBindsS                     :: [Bind] ->  [[Bind]] groupBindsS bs                  = map f gs   where infos                   = graphInfo bs+        indexedInfos            = [1..] `zip` infos         gs                      = scc (buildGraph infos)-        f indices               = concat (map (\i -> fst3 (fromJust (lookup i (zip [1..] infos)))) indices)+        f indices               = concat (map (fst3 . snd) (filter ((`elem` indices) . fst) indexedInfos))
src/Derive.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
src/Desugar1.hs view
@@ -2,7 +2,7 @@  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -232,8 +232,9 @@     ds1 env (ERec Nothing fs)       | not (null dups)            = errorIds "Duplicate field definitions in struct" dups       | otherwise                  = ERec (Just (c,True)) (sortFields (ds1 env fs))-      where c                      = typeFromSels env (sort (ren env (bvars fs)))-            dups                   = duplicates (bvars fs)+      where c                      = typeFromSels env (sort (ren env sels))+            dups                   = duplicates sels+            sels                   = bvars fs     ds1 env (ERec (Just (c,all)) fs)       | not (null dups)            = errorIds "Duplicate field definitions in struct" dups       | all && not (null miss)     = errorIds "Missing selectors in struct" miss@@ -246,7 +247,12 @@               | otherwise          = s     ds1 env (EBStruct _ _ bs)      = EBStruct (Just c) labs (ds1 env bs)       where labs                   = selsFromType env c-            c                      = typeFromSels env (sort (ren env (bvars bs)))+            c                      = typeFromSels env (sort (ren env sels))+            sels0                  = bvars bs+            cs                     = concat [ stuffedCons p | BEqn (LPat p) _ <- bs ]+            sels1                  = concatMap (boundSels env) cs \\ sels0+            sels                   = sels0 ++ sels1+            boundSels env (c,ls)   = selsFromType env c \\ ren env ls     ds1 env (ELet bs e)            = ELet (ds1 env bs) (ds1 env e)     ds1 env (EAp e1 e2)            = EAp (ds1 env e1) (ds1 env e2)     ds1 env (ETup es)              = ETup (ds1 env es)@@ -289,6 +295,13 @@      ds1 env e                    = e +stuffedCons (ERec (Just (c,False)) fs)+                                 = (c,bvars fs) : concat [ stuffedCons p | Field _ p <- fs ]+stuffedCons (ETup ps)            = concatMap stuffedCons ps+stuffedCons (EList ps)           = concatMap stuffedCons ps+stuffedCons (EAp p p')           = stuffedCons p ++ stuffedCons p'+stuffedCons _                    = []+ instance Desugar1 (Alt Exp) where     ds1 env (Alt p rh)           = Alt (ds1 (patEnv env) p) (ds1 env rh) @@ -328,7 +341,6 @@ ds1S env (s@(SElsif _ _) : _)    = errorTree "elsif without corresponding if" s ds1S env (s@(SElse _) : _)       = errorTree "else without corresponding if" s ds1S env (SForall q ss' : ss)    = ds1S env (SExp (ds1Forall env q ss') : ss)-ds1S env (SWhile e ss' : ss)     = internalError0 "while stmt not yet implemented"  ds1Forall env [] ss              = eDo env ss ds1Forall env (QLet bs : qs) ss  = ELet bs (eDo env [SForall qs ss])
src/Desugar2.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -76,6 +76,7 @@ dsDefault (Default t a b)       = Default t a b dsDefault (Derive v t)          = Derive v (dsQualType t) + -- Types ----------------------------------------------------------------------  dsQualType (TQual t ps)         = checkQual (dsRhoType t) (map dsQual ps)@@ -90,7 +91,8 @@ dsType (TTup ts)                = foldl TAp (TCon (tuple (length ts))) (map dsType ts) dsType (TCon c)                 = TCon c dsType (TVar v)                 = TVar v-dsType t                        = internalError "Bad type expressionin dsType" t+dsType (TWild)                  = errorTree "Illegal use of type wildcard" TWild+dsType t                        = errorTree "Illegal type expression" t   -- Types with wildcards ---------------------------------------------------------------@@ -108,7 +110,7 @@ dsWildType (TCon c)             = TCon c dsWildType (TVar v)             = TVar v dsWildType (TWild)              = TWild-dsWildType t                    = internalError "Bad type expression in dsWildType" t+dsWildType t                    = errorTree "Illegal type expression" t   -- Base types -------------------------------------------------------------@@ -116,10 +118,14 @@ dsQualBaseType (TQual t ps)     = checkQual (dsBaseType t) (map dsKindQual ps) dsQualBaseType t                = TQual (dsBaseType t) [] +dsKindQual (PKind v k)          = PKind v k+dsKindQual (PType (TVar v))     = PKind v KWild+dsKindQual q                    = errorTree "Illegal base type qualifier" q+ dsBaseType (TAp t t')           = TAp (dsBaseType t) (dsType t') dsBaseType (TList t)            = TAp (TCon (prim LIST)) (dsType t) dsBaseType (TCon c)             = TCon c-dsBaseType t                    = internalError "Bad base type expression in dsBaseType" t+dsBaseType t                    = errorTree "Illegal base type expression" t   -- Predicates ------------------------------------------------------------@@ -128,12 +134,6 @@ dsQual (PType (TVar v))         = PKind v KWild dsQual (PType t)                = PType (dsQualPred t) --dsKindQual (PKind v k)          = PKind v k-dsKindQual (PType (TVar v))     = PKind v KWild-dsKindQual q                    = internalError "Bad qualifier in dsKindQual" q-- dsQualPred (TQual t ps)         = checkQual (dsSubOrClassPred t) (map dsQual ps) dsQualPred t                    = TQual (dsSubOrClassPred t) [] @@ -142,7 +142,7 @@  dsClassPred (TAp t t')          = TAp (dsClassPred t) (dsType t') dsClassPred (TCon c)            = TCon c-dsClassPred p                   = internalError "Bad class predicate in dsClassPred" p+dsClassPred p                   = errorTree "Illegal type qualifier" p   -- Bindings ---------------------------------------------------------------
src/Env.hs view
@@ -2,7 +2,7 @@  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -258,7 +258,7 @@                                                              -- expressions, there is much merit to the shortcut implemented                                                              -- here.  Note also that unknown type constructor names have                                                              -- already been trapped and reported during renaming.-                                                    -- error ("Internal: Unknown type constructor: " ++ show c)+                                                    -- internalError0 ("Internal: Unknown type constructor: " ++ show c)                                              findKind env c                          = findKind0 (kindEnv env ++ kindEnv0 env) c @@ -640,7 +640,7 @@                                                                  (prim Msg,          Star),                             (prim Ref,          KFun Star Star),-                            (prim PID,          Star),+                            (prim OID,          Star),                             (prim PMC,          KFun Star Star),                             (prim Time,         Star),                                     @@ -670,7 +670,7 @@                              (prim ActToCmd,     scheme1 [tAction] (tCmd a tMsg)),                             (prim ReqToCmd,     scheme2 [tRequest a] (tCmd b a)),-                            (prim RefToPID,     scheme1 [tRef a] tPID),+                            (prim RefToOID,     scheme1 [tRef a] tOID),                              (prim IntPlus,      scheme0 [tInt,tInt] tInt),                             (prim IntMinus,     scheme0 [tInt,tInt] tInt),@@ -716,8 +716,8 @@                             (prim LazyOr,       scheme0 [tBool,tBool] tBool),                             (prim LazyAnd,      scheme0 [tBool,tBool] tBool), -                            (prim PidEQ,        scheme0 [tPID,tPID] tBool),-                            (prim PidNE,        scheme0 [tPID,tPID] tBool),+                            (prim PidEQ,        scheme0 [tOID,tOID] tBool),+                            (prim PidNE,        scheme0 [tOID,tOID] tBool),                              (prim Sec,          scheme0 [tInt] tTime),                             (prim Millisec,     scheme0 [tInt] tTime),@@ -825,7 +825,7 @@ tTime                   = TId (prim Time) tMsg                    = TId (prim Msg) tRef a                  = TAp (TId (prim Ref)) a-tPID                    = TId (prim PID)+tOID                    = TId (prim OID) tPMC a                  = TAp (TId (prim PMC)) a tInt                    = TId (prim Int) tFloat                  = TId (prim Float)@@ -853,8 +853,8 @@ primAboveEnv    = [ (prim Action,   unitWG subActCmd),                     (prim Request,  unitWG subReqCmd),                     (prim Cmd,      nullWG),-                    (prim Ref,      unitWG subRefPID),-                    (prim PID,      nullWG)+                    (prim Ref,      unitWG subRefOID),+                    (prim OID,      nullWG)                   ]  primBelowEnv    = [ (prim Action,   nullWG),@@ -862,7 +862,7 @@                     (prim Class,    nullWG),                     (prim Cmd,      WG [subActCmd,subReqCmd] []),                     (prim Ref,      nullWG),-                    (prim PID,      unitWG subRefPID)+                    (prim OID,      unitWG subRefOID)                   ]  @@ -872,10 +872,10 @@  subReqCmd       = (prim ReqToCmd,   scheme2 [] (tRequest a `sub` tCmd b a)) -subRefPID       = (prim RefToPID,   scheme1 [] (tRef a `sub` tPID))+subRefOID       = (prim RefToOID,   scheme1 [] (tRef a `sub` tOID))  -primPredEnv     = [reflAll, subActCmd, subReqCmd, subRefPID]+primPredEnv     = [reflAll, subActCmd, subReqCmd, subRefOID]   primClassEnv    = []
src/Execution.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -99,7 +99,7 @@                                        ++ " -DROOT=" ++ rootId ++ " "                                        ++ " -DROOTINIT=" ++ initId ++ " "                                        ++ rtsMain clo -                                       ++ " -lTimber"+                                       ++ linkLibs cfg                              putStrLn "[linking]"                              execCmd clo cmd 
src/Fixity.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
src/Interfaces.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -88,16 +88,17 @@   ifaceMod                   :: (Map Name [Name], Map Name ([Name], Syntax.Type)) -> Module -> Kindle.Decls -> IFace ifaceMod (rs,ss) (Module _ ns xs ds ws bss) kds-   | not(null vis)                   = errorIds "Private types visible in interface" vis+   | not(null vis2)                  = errorIds "Private types visible in interface" vis2    | not(null ys)                    = errorTree "Public default declaration mentions private instance" (head ys)    | otherwise                       = IFace ns xs' rs ss ds1 ws bs' kds   where Types ke te                  = ds         Binds r2 ts2 es2             = concatBinds bss         xs'                          = [d | d@(Default True _ _) <- xs]         ys                           = [d | d@(Default _ i1 i2) <- xs', isPrivate i1 || isPrivate i2 ]-        ds1                          = Types (filter exported ke) (filter exported' te)+        ds1                          = Types (filter exported ke ++ map (\n -> (n,Star)) vis1) (filter exported' te)         bs'                          = Binds r2 (filter exported ts2) (filter (\ eqn -> fin eqn &&  exported eqn) (erase es2))-        vis                          = nub (localTypes [] (rng (tsigsOf bs')))+        (vis1,vis2)                  = partition isStateType (nub (localTypes [] (rng (tsigsOf bs'))))+                 exported (n,_)               = isQualified n         exported' p@(n,_)            = isQualified n && (not(isAbstract p)) --Constructors/selectors are exported         fin (_,e)                    = isFinite e && null(filter isPrivate (constrs e))@@ -173,7 +174,7 @@   localTypes ns (TId n)       | n `elem` ns || not (isPrivate n) = []      | otherwise                  = [n]-  localTypes _ (TVar t)           = internalError0 ("ChaseImports.localTypes: TVar in interface file")+  localTypes _ (TVar t)           = internalError0 ("Interfaces.localTypes: TVar in interface file")   localTypes ns (TFun ts t)       = localTypes ns (t : ts)   localTypes ns (TAp t1 t2)       = localTypes ns [t1, t2] @@ -210,10 +211,10 @@ -- prPair (n,t)                      = prId n <+> text "::" <+> pr t    where simpVars (Binds rec te eqns) = Binds rec (map sV te) eqns          -sV (n,t@(Scheme rh ps ke))            = case zip (filter isGenerated (idents (Scheme rh ps []))) abcSupply of+sV (n,t@(Scheme rh ps ke))            = case zip (filter isTypevar (idents (Scheme rh ps []))) abcSupply of                                           [] -> (n,t)                                           s ->  (n,subst s t) -+  where isTypevar n                   = isGenerated n && not (isStateType n) listIface clo f                   = do (ifc,f) <- decodeModule clo f                                        --writeAPI f ifc                                        let modul = rmSuffix ".ti" f
src/Kind.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
src/Kindle.hs view
@@ -2,7 +2,7 @@  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -164,7 +164,7 @@  tTime                                   = tId Time tMsg                                    = tId Msg-tPID                                    = tId PID+tOID                                    = tId OID tUNIT                                   = tId UNITTYPE tInt                                    = tId Int tFloat                                  = tId Float@@ -179,6 +179,8 @@ tLIST a                                 = TCon (prim LIST) [a] tArray a                                = TCon (prim Array) [a] +tClos a ts                              = TCon (prim (primClos a)) ts+ litType (LInt _ _)                      = tInt litType (LRat _ _)                      = tFloat litType (LChr _ _)                      = tChar@@ -186,28 +188,35 @@  a                                       = name0 "a" b                                       = name0 "b"+c                                       = name0 "c"+d                                       = name0 "d" ta                                      = TVar a [] tb                                      = TVar b []+tc                                      = TVar c []+td                                      = TVar d []         -primDecls                               = (prim Bool,       Struct []    []                                      Union) :-                                          (prim FALSE,      Struct []    []                                      (Extends (prim Bool))) :-                                          (prim TRUE,       Struct []    []                                      (Extends (prim Bool))) :-                                          (prim UNITTYPE,   Struct []    []                                      Union) :-                                          (prim UNITTERM,   Struct []    []                                      (Extends (prim UNITTYPE))) :-                                          (prim LIST,       Struct [a]   []                                      Union) :-                                          (prim NIL,        Struct [a]   []                                      (Extends (prim LIST))) :-                                          (prim CONS,       Struct [a]   [(a, ValT ta), -                                                                          (b, ValT (tLIST ta))]                  (Extends (prim LIST))) :-                                          (prim Msg,        Struct []    [(prim Code, FunT [] [] tUNIT),-                                                                          (prim Baseline, ValT (tId AbsTime)),-                                                                          (prim Deadline, ValT (tId AbsTime)),-                                                                          (prim Next, ValT (tId Msg))]           Top) :-                                          (prim Ref,        Struct [a]   [(prim STATE, ValT ta)]                 Top) :-                                          (prim EITHER,     Struct [a,b] []                                      Union) :-                                          (prim LEFT,       Struct [a,b] [(a,ValT ta)]                           (Extends (prim EITHER))) :-                                          (prim RIGHT,      Struct [a,b] [(a,ValT tb)]                           (Extends (prim EITHER))) :-                                          (prim TIMERTYPE,  Struct []    [(prim Reset,  FunT [] [tInt] tUNIT),-                                                                          (prim Sample, FunT [] [tInt] tTime)]   Top) : +primDecls                               = (prim Bool,      Struct []        []                                    Union) :+                                          (prim FALSE,     Struct []        []                                    (Extends (prim Bool))) :+                                          (prim TRUE,      Struct []        []                                    (Extends (prim Bool))) :+                                          (prim UNITTYPE,  Struct []        []                                    Union) :+                                          (prim UNITTERM,  Struct []        []                                    (Extends (prim UNITTYPE))) :+                                          (prim LIST,      Struct [a]       []                                    Union) :+                                          (prim NIL,       Struct [a]       []                                    (Extends (prim LIST))) :+                                          (prim CLOS1,     Struct [a,b]     [(prim Code, FunT [] [tb] ta)]        Top) :+                                          (prim CLOS2,     Struct [a,b,c]   [(prim Code, FunT [] [tb,tc] ta)]     Top) :+                                          (prim CLOS3,     Struct [a,b,c,d] [(prim Code, FunT [] [tb,tc,td] ta)]  Top) :+                                          (prim CONS,      Struct [a]       [(a, ValT ta), +                                                                             (b, ValT (tLIST ta))]                (Extends (prim LIST))) :+                                          (prim Msg,       Struct []        [(prim Code, FunT [] [] tUNIT),+                                                                             (prim Baseline, ValT (tId AbsTime)),+                                                                             (prim Deadline, ValT (tId AbsTime)),+                                                                             (prim Next, ValT (tId Msg))]         Top) :+                                          (prim Ref,       Struct [a]       [(prim STATE, ValT ta)]               Top) :+                                          (prim EITHER,    Struct [a,b]     []                                    Union) :+                                          (prim LEFT,      Struct [a,b]     [(a,ValT ta)]                         (Extends (prim EITHER))) :+                                          (prim RIGHT,     Struct [a,b]     [(a,ValT tb)]                         (Extends (prim EITHER))) :+                                          (prim TIMERTYPE, Struct []        [(prim Reset,  FunT [] [tInt] tUNIT),+                                                                             (prim Sample, FunT [] [tInt] tTime)] Top) :                                            []                                            isInfix (Prim p _)                      = p `elem` [MIN____KINDLE_INFIX .. MAX____KINDLE_INFIX]@@ -242,8 +251,8 @@                                           (prim NEWREF,     FunT [a] [ta] (tRef ta)) :                                           (prim STATEOF,    FunT [a] [tRef ta] ta) :                                           (prim ASYNC,      FunT []  [tMsg,tTime,tTime] tUNIT) :-                                          (prim LOCK,       FunT []  [tPID] tUNIT) :-                                          (prim UNLOCK,     FunT []  [tPID] tUNIT) :+                                          (prim LOCK,       FunT []  [tOID] tUNIT) :+                                          (prim UNLOCK,     FunT []  [tOID] tUNIT) :                                           (prim Inherit,    ValT tTime) :                                           (prim EmptyArray, FunT [a] [tInt] (tArray ta)) :                                           (prim CloneArray, FunT [a] [tArray ta, tInt] (tArray ta)) :@@ -255,7 +264,7 @@ okRec' (TCon (Prim p _) _)              = p `notElem` Kindle.scalarPrims  -- Bad: type that can't fit placeholder okRec' (TCon n _)                       = True                            -- Good: heap allocated data -scalarPrims                             = [Int, Float, Char, Bool, UNITTYPE, BITS8, BITS16, BITS32]+scalarPrims                             = [Int, Float, Char, Bool, UNITTYPE, BITS8, BITS16, BITS32, AbsTime]  smallPrims                              = [Char, Bool, UNITTYPE, BITS8, BITS16] @@ -319,15 +328,22 @@ cBindR r [] c                           = c cBindR r bs c                           = CBind r bs c +flatBinds bf                            = flat (bf CBreak)+  where flat (CBind r bs c)             = bs ++ flat c+        flat _                          = []++cUpd [] [] c                            = c+cUpd (x:xs) (e:es) c                    = CUpd x e (cUpd xs es c)+ simpleExp (EVar _)                      = True simpleExp (ELit _)                      = True simpleExp (ECast _ e)                   = simpleExp e simpleExp _                             = False -lock t e                                = ECast t (ECall (prim LOCK) [] [ECast tPID e])+lock t e                                = ECast t (ECall (prim LOCK) [] [ECast tOID e])  unlock x c                              = cMap (CRun (ECall (prim UNLOCK) [] [e0]) . CRet) c-  where e0                              = ECast tPID (EVar x)+  where e0                              = ECast tOID (EVar x)   cMap f (CRet e)                         = f e@@ -556,9 +572,13 @@                                             Just t -> appargs t                                             _      -> TVar v ts'       where ts'                         = subst s ts-            appargs (TCon c ts)         = TCon c (ts++ts')+            appargs (TCon c ts)         = norm c (ts++ts')             appargs (TVar v ts)         = TVar v (ts++ts') +            norm (Prim Class _) [t]     = tClos 1 (t : [tInt])+            norm (Prim Request _) [t]   = tClos 1 (t : [tInt])+            norm (Prim Cmd _) [s,t]     = tClos 1 (t : [tRef s])+            norm c ts                   = TCon c ts  instance Subst Exp Name AType where     subst s (ESel e l)                  = ESel (subst s e) l
src/Kindle2C.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -40,9 +40,9 @@ import Char import Depend -kindle2c is m                   = return (render h, render c)+kindle2c m                      = return (render h, render c)   where h                       = k2hModule m-        c                       = k2cModule is m+        c                       = k2cModule m  -- ==================================================================================================== -- Generate .h file@@ -116,7 +116,7 @@   "Constant initializer" is presently interpreted as literals only for lack of better understanding. -} -k2cModule is (Module n ns ds bs)= cHeader n $$$+k2cModule (Module n ns ds bs)   = cHeader n $$$                                   k2cDeclStubs False ds $$$                                   k2cDecls False ds $$$                                   k2cBindStubsC bs $$$@@ -380,9 +380,30 @@ k2cExp1 e                       = k2cExp2 e  +k2cChar '\\'                    = text "\\\\"+k2cChar '\''                    = text "\\'"+k2cChar '\"'                    = text "\\\""+k2cChar '\a'                    = text "\\a"+k2cChar '\b'                    = text "\\b"+k2cChar '\f'                    = text "\\f"+k2cChar '\n'                    = text "\\n"+k2cChar '\r'                    = text "\\r"+k2cChar '\t'                    = text "\\t"+k2cChar '\v'                    = text "\\v"+k2cChar c | isPrint c           = text [c]+          | ord c < 256         = text ("\\" ++ oct3 (ord c))+          | otherwise           = text ("\\x" ++ hex2 (ord c `div` 256) ++ hex2 (ord c `mod` 256))+  where hex1 n | n < 10         = chr (n + ord '0')+               | otherwise      = chr (n - 10 + ord 'a')+        hex2 n                  = [hex1 (n `div` 16), hex1 (n `mod` 16)]+        oct1 n                  = chr (n + ord '0')+        oct3 n                  = [oct1 (n `div` 64), oct1 ((n `mod` 64) `div` 8), oct1 (n `mod` 8)]++ k2cExp2 (EVar x)                = k2cName x k2cExp2 (ELit (LRat _ r))       = text (show (fromRational r :: Double))-k2cExp2 (ELit (LStr _ str))     = text ("getStr("++show str++")")+k2cExp2 (ELit (LStr _ str))     = text "getStr(\"" <> hcat (map k2cChar str) <> text "\")"+k2cExp2 (ELit (LChr _ c))       = text "\'" <> k2cChar c <> text "\'" k2cExp2 (ELit l)                = pr l k2cExp2 (ESel e (Prim STATE _)) = text "STATEOF" <> parens (k2cExp e) k2cExp2 (ESel e l)              = k2cExp2 e <> text "->" <> k2cName l
src/Kindlered.hs view
@@ -1,8 +1,8 @@-{-# LANGUAGE PatternGuards #-}+{-# LANGUAGE PatternGuards, ParallelListComp #-}  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -34,12 +34,12 @@ -- POSSIBILITY OF SUCH DAMAGE.  module Kindlered where-    + import Monad import Common import Kindle import PP-+import System  kindlered ds m                          = redModule ds m @@ -61,9 +61,59 @@  -- Convert a binding redBind env (x, Fun vs t te c)          = do c <- redCmd env c+                                             c <- tailOptimize x te c                                              return (x, Fun vs t te c) redBind env (x, Val t e)                = do e <- redExp env e                                              return (x, Val t e)+-- Tail recursiion optimization++tailOptimize x te c+  | isTailRecursive x c                 = do c <- redTailCall x te c+                                             return (CWhile (ELit (lInt 1)) c (CRaise (ELit (lInt 1))))+  | otherwise                           = return c+++isTailRecursive x (CRet (ECall y _ _))  = x == y+isTailRecursive x (CRun _ c)            = isTailRecursive x c+isTailRecursive x (CBind _ _ c)         = isTailRecursive x c+isTailRecursive x (CUpd _ _ c)          = isTailRecursive x c+isTailRecursive x (CUpdS _ _ _ c)       = isTailRecursive x c+isTailRecursive x (CUpdA _ _ _ c)       = isTailRecursive x c+isTailRecursive x (CSwitch _ alts)      = or [isTailRecursiveAlt x a | a <- alts]+isTailRecursive x (CSeq c1 c2)          = (isTailRecursive x c1) || (isTailRecursive x c2)+isTailRecursive x (CWhile _ c1 c2)      = isTailRecursive x c2+isTailRecursive _ _                     =  False++isTailRecursiveAlt x (ACon _ _ _ c)     = isTailRecursive x c+isTailRecursiveAlt x (ALit _ c)         = isTailRecursive x c+isTailRecursiveAlt x (AWild c)          = isTailRecursive x c+++redTailCall x vs (CRet (ECall y ts es))    +  | x == y                              = updateParams vs es+redTailCall x vs (CBind r bs c)         = liftM (CBind r bs) (redTailCall x vs c)+redTailCall x vs (CRun e c)             = liftM (CRun e) (redTailCall x vs c)+redTailCall x vs (CUpd y e c)           = liftM (CUpd y e) (redTailCall x vs c)+redTailCall x vs (CUpdS e y v c)        = liftM (CUpdS e y v) (redTailCall x vs c)+redTailCall x vs (CUpdA e i e' c)       = liftM (CUpdA e i e') (redTailCall x vs c)+redTailCall x vs (CSwitch e alts)       = liftM (CSwitch e) (mapM (redTailAlt x vs) alts)+redTailCall x vs (CSeq c c')            = liftM2 CSeq (redTailCall x vs c) (redTailCall x vs c')+redTailCall x vs (CWhile e c c')        = liftM2 (CWhile e) (redTailCall x vs c) (redTailCall x vs c')+redTailCall _ _ c                       = return c++redTailAlt x vs (ACon y us te c)        = liftM (ACon y us te) (redTailCall x vs c)+redTailAlt x vs (ALit l c)              = liftM (ALit l) (redTailCall x vs c)+redTailAlt x vs (AWild c)               = liftM AWild (redTailCall x vs c)++updateParams [] []                      = return CCont+updateParams ((x,t):te) (e:es)+  | e == EVar x                         = updateParams te es+  | x `elem` evars es                   = do y <- newName tempSym+                                             c <- updateParams te (subst [(x,EVar y)] es)+                                             return (CBind False [(y,Val t (EVar x))] (CUpd x e c))+  | otherwise                           = do c <- updateParams te es+                                             return (CUpd x e c)+   single x e                              = length (filter (==x) (evars e)) == 1
src/Lambdalift.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -109,7 +109,8 @@         free0                           = evars funs         free1                           = free0 ++ concat [ xs | (f,(_,xs)) <- expansions env, f `elem` free0 ]         fte                             = locals (if r then env1 else env) `restrict` free1-        tvs                             = nub (typevars funs ++ typevars fte)+        vs1                             = concat [ vs | (f,(vs,_)) <- expansions env, f `elem` free0 ]+        tvs                             = nub (typevars funs ++ typevars fte ++ vs1)         env1                            = addLocals (mapSnd typeOf' vals) env         env2                            = addExpansions (dom funs `zip` repeat (tvs, dom fte)) env1         env'                            = if r then env2 else env@@ -150,7 +151,8 @@         free0                           = evars funs         free1                           = free0 ++ concat [ xs | (f,(_,xs)) <- expansions env, f `elem` free0 ]         fte                             = locals env `restrict` free1-        fvs                             = nub (typevars funs ++ typevars fte)+        vs1                             = concat [ vs | (f,(vs,_)) <- expansions env, f `elem` free0 ]+        fvs                             = nub (typevars funs ++ typevars fte ++ vs1)         Struct vs te _                  = lookup' (decls env) n   -- NOTE: n can't be a tuple or a cons if fte/fvs are nonempty...         close (x,t)                     = (x, Val t (mkEVar env x)) 
src/Lexer.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -429,7 +429,7 @@     '\t':s    -> nestedComment cont y (nextTab x) bol s  col     '\n':s    -> nestedComment cont (y + 1) 1 True s  col     c:s       -> nestedComment cont y (x + 1) bol s  col-    []        -> error "Open comment at end of file"+    []        -> compileError "Open comment at end of file"   
src/Main.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -219,7 +219,7 @@                              ki'     <- pass clo (kindlered e3)               Kindlered ki                              ll      <- pass clo (lambdalift e3)              LLift     ki'                              pc      <- pass clo (prepare4c e2 e3)            Prepare4C ll-                             c       <- pass clo (kindle2c (init_order imps)) K2C       pc+                             c       <- pass clo kindle2c                     K2C       pc                              return (c,ifaceMod a0 tc2 ds)          @@ -298,7 +298,37 @@                                else do ti_time <- Directory.getModificationTime ti_file                                        return (ti_time <= ti_time1) ------------------------------------------------------------------------------+{-+  Debugging the compiler with the ghci debugger: +  Build and install the compiler somewhere. Once that is done, run the +  following commands in the timber source repository:++  $ cd src+  $ ghci -fglasgow-exts Main.hs -i../dist/build/timberc/timberc-tmp+  +  This should give you a ghci prompt, type the following (replace PREFIX and+  VERSION with the actual values):++  > :set -fbreak-on-exception+  > :trace main2 ["--datadir", "PREFIX/share/timberc-VERSION", "-v", "file.t"]+ +  <CRASH>++  > :history+    -1  : handleError (Main.hs:346:48-57)+    -2  : handleError (Main.hs:346:10-57)+    -3  : handleError (Main.hs:346:2-58)+    -4  : handleError (Main.hs:(345,31)-(347,14))+    -5  : handleError (Main.hs:(345,0)-(347,14))+    -6  : addDecls (Kindlered.hs:51:62-70)+    -7  : Name.$f7 (Name.hs:525:47-51)+    -8  : Name.$f7 (Name.hs:(518,2)-(525,51))+    -9  : findSel (Kindlered.hs:53:99-103)+    ...+-}++ main                = do args <- getArgs                          main2 args @@ -322,7 +352,7 @@ --                         Monad.when (null t_files) stopCompiler                                                    ps <- mapM (parse clo) t_files-                         ifs <- compileAll clo [] ps `Exception.catch` handleError+                         ifs <- compileAll clo [] ps `Exception.catch` fatalErrorHandler                          Monad.when (stopAtC clo) stopCompiler                                                    let root = make clo@@ -340,11 +370,7 @@                           return () -handleError (ErrorCall mess) = do-  putStr ("*** Timber compilation error ***\n"++mess++"\n")-  abortCompiler - checkRoot clo ifs def       = do if1 <- getIFile rootMod                                  if2 <- getIFile rtsMod                                   let ts = tEnv if2@@ -354,7 +380,7 @@                                  case lookup rootT ke of                                      Nothing   -> fail ("Cannot locate RootType in module " ++ rtsMod)                                      Just Star -> case lookup rootT ds of-                                        Nothing                -> error "Internal: checkRoot"+                                        Nothing                -> internalError0 "checkRoot"                                         Just (Core.DType _ t') -> checkRoot' te t'                                         Just _                 -> checkRoot' te (Core.TId rootT)                                      Just _    -> fail ("Bad RootType in module " ++ rtsMod)@@ -440,9 +466,5 @@ compile_order imps                   = case topSort (impNames . snd)  imps of                                           Left ms  -> errorIds "Mutually recursive modules" ms                                          Right is -> is--init_order imps                      = case topSort transImps imps of-                                         Left ms  -> errorIds "Mutually recursive modules" ms-                                         Right is -> map fst is  
src/Match.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
src/Name.hs view
@@ -1,6 +1,7 @@+{-# LANGUAGE DeriveDataTypeable #-} -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -39,6 +40,7 @@ import Token import Char import Maybe+import Data.Typeable import Data.Binary   -- The type of names ---------------------------------------------------------------------@@ -46,6 +48,7 @@ data Name                       = Name  { str :: String, tag :: Int, fromMod :: Maybe String, annot :: Annot }                                 | Prim  { con :: Prim, annot :: Annot }                                 | Tuple { width :: Int, annot :: Annot }+                                deriving (Typeable)   data Annot                      = Annot { location :: Maybe (Int,Int), @@ -54,7 +57,7 @@                                           generated :: Bool,                                           suppressMod :: Bool                                         }-                                deriving Show+                                deriving (Show,Typeable)   -- The built-in primitives ----------------------------------------------------------------@@ -72,7 +75,7 @@                                  | Msg                                 | Ref-                                | PID+                                | OID                                 | PMC                                 | Time @@ -253,7 +256,7 @@                                  | ActToCmd                                 | ReqToCmd-                                | RefToPID+                                | RefToOID                                  | CharToInt                                 | IntToChar@@ -282,6 +285,10 @@                                 | After                                 | Before                                 +                                | CLOS1                 -- Low arity (polymorphic) closure types+                                | CLOS2+                                | CLOS3+                                                                 | NEWREF                -- RTS entry points                                 | ASYNC                                 | LOCK@@ -313,11 +320,17 @@                                                                  | MAX____INVISIBLE                                 -                                deriving (Eq,Ord,Enum,Bounded,Show)+                                deriving (Eq,Ord,Enum,Bounded,Show,Typeable)  minPrim                         = minBound :: Prim maxPrim                         = maxBound :: Prim +maxPrimClos                     = 3 :: Int+primClos 1                      = CLOS1+primClos 2                      = CLOS2+primClos 3                      = CLOS3+isClosPrim p                    = p `elem` [CLOS1 .. CLOS3]+ isConPrim p                     = p <= MAX____CONS  invisible p                     = p >= MIN____INVISIBLE@@ -477,7 +490,7 @@ isTApp n                        = isGenerated n && str n == tappSym isTAbs n                        = isGenerated n && str n == tabsSym isGCInfo n                      = isGenerated n && isPrefixOf gcinfoSym (str n)-+isStateType n                   = isGenerated n && str n == stateTypeSym explicitSyms                    = [coercionSym, assumptionSym, witnessSym]  @@ -567,10 +580,11 @@   where      id                          = if okForC s then s else "_sym"     tag                         = if mod=="" || generated a || id=="_sym"  then '_':show n else ""-    suff                        = if take 2 id == "_sym" then "/* "++s++" */" else ""+    suff                        = if take 4 id == "_sym" then "/* "++s++" */" else ""     mod                         = maybe "" (('_' :) . modToundSc) m-    okForC cs                   = all (\c -> isAlphaNum c || c=='_') cs prId3 n                         = prId2 n++okForC cs                       = all (\c -> isAlphaNum c || c=='_') cs  name2str n                      = render (prId3 n) 
src/PP.hs view
@@ -2,7 +2,7 @@  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
src/ParseMonad.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -109,7 +109,7 @@ runPM (PM p) i l c s =     case p i l c s of         Ok _ a -> a-	Failed err -> error err+	Failed err -> compileError err  runPM2 (PM p) input =     case p input (1,1) 0 [] of
src/Parser.y view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -123,7 +123,6 @@         'typeclass'	{ KW_Typeclass }         'use'           { KW_Use }         'where'		{ KW_Where }-        'while'		{ KW_While }  %monad { PM } { thenPM } { returnPM } %lexer { lexer } { EOF }@@ -172,7 +171,9 @@         | 'typeclass' conid tyvars 'where' siglist         { [DRec True $2 (reverse $3) [] $5] }         | 'typeclass' ids                                  { [DTClass $2] }         | 'instance' var '::' type                         { [DPSig $2 $4] }  -        | 'instance' var '::' type 'where' bindlist        { [DBind [BEqn (exp2lhs (EVar $2)) (RExp (EBStruct Nothing [] $6))], DPSig $2 $4] }+        | 'instance' var '::' type 'where' bindlist        { [DBind [BEqn (exp2lhs (EVar $2)) +                                                                          (RExp (EBStruct (Just (type2head $4)) [] $6))],+                                                              DPSig $2 $4] }         | 'instance' var '::' type rhs                     { [DBind [BEqn (exp2lhs (EVar $2)) $5], DPSig $2 $4] }         | 'instance' ids                                   { [DInstance $2] }         | 'default' def                                    { [DDefault (reverse $2)] }@@ -225,9 +226,12 @@         | {- empty -}				{ [] }          constrs :: { [Constr] }-	: constrs '|' type	                { type2cons $3 : $1 }-	| type			                { [type2cons $1] }+	: constrs '|' constr	                { $3 : $1 }+	| constr			        { [$1] } +constr  :: { Constr }+        : type consym type                      { Constr $2 [$1, $3] [] }+        | type                                  { type2cons $1 }  -- Signatures -------------------------------------------------------------- @@ -547,7 +551,6 @@         | 'if' exp 'then' stmtlist              { SIf $2 $4 }         | 'elsif' exp 'then' stmtlist           { SElsif $2 $4 }         | 'else' stmtlist                       { SElse $2 }-        | 'while' exp 'do' stmtlist             { SWhile $2 $4 }         | 'case' exp 'of' saltslist             { SCase $2 $4 }       
src/Prepare4C.hs view
@@ -2,7 +2,7 @@  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -176,7 +176,8 @@  gcInfoName n@(Name s t m a)   | isClosure n                 = Name (gcinfoSym ++ s) 0 m a-  | otherwise                   = Name (gcinfoSym ++ s) t m a+  | okForC s                    = Name (gcinfoSym ++ s) t m a+  | otherwise                   = Name (gcinfoSym ++ "_sym_" ++ show t) t m a gcInfoName (Tuple n a)          = Name (gcinfoSym ++ "TUP" ++ show n) 0 Nothing a gcInfoName (Prim p a)           = Name (gcinfoSym ++ strRep2 p) 0 Nothing a @@ -236,9 +237,9 @@                                      tei <- Core2Kindle.c2kTEnv dsi te2                                      let env1 = addTEnv (primTEnv++tei) (addDecls (primDecls++dsi) env0)                                          env  = addTEnv (mapSnd typeOf bs) (addDecls ds env1)-                                     (bs1,bs) <- pBinds pBind env bs-                                     bs2 <- currentStore-                                     return (Module m ns (pDecls env ds) (gcinfo env ds ++ bs1 ++ bs ++ reverse bs2))+                                     (bf,bs) <- pBinds pBind env bs+                                     bs' <- currentStore+                                     return (Module m ns (pDecls env ds) (gcinfo env ds ++ flatBinds bf ++ bs ++ reverse bs'))   -- Prepare structs declarations@@ -281,6 +282,7 @@  isPtr vs (n,FunT _ _ _)         = False isPtr vs (n,ValT (TVar v _))    = v `notElem` vs+isPtr vs (Prim Next _, _)       = False         -- the next field in Msg and its subtypes is custom handled during timerQ scanning. isPtr vs (n,ValT (TCon k _))    = not (isScalar k)  isScalar (Prim p _)             = p `elem` scalarPrims@@ -306,24 +308,23 @@ -- =============================  -- Prepare bindings-pBinds f env xs                 = do (bss,xs) <- fmap unzip (mapM (f env) xs)-                                     return (concat bss, xs)-+pBinds f env xs                 = do (bfs,xs) <- fmap unzip (mapM (f env) xs)+                                     return (foldr (.) id bfs, xs)  -- Prepare top-level & cmd bindings (assume code is lambda-lifted)-pBind env (x, Val t e)          = do (bs,t',e) <- pRhsExp env e -                                     return (bs, (x, Val (erase t) (cast t t' e)))+pBind env (x, Val t e)          = do (bf,t',e) <- pRhsExp env e +                                     return (bf, (x, Val (erase t) (cast t t' e))) pBind env (x, Fun vs t te c)    = do te' <- newEnv paramSym (polyTagTypes (length vs))                                      c <- pCmd (addVals te (addPolyEnv vs [0..] (map EVar (dom te')) env)) t c-                                     return ([], (x, Fun [] (erase t) (te' ++ eraseEnv te) c))+                                     return (id, (x, Fun [] (erase t) (te' ++ eraseEnv te) c))   -- Prepare struct bindings (assume code is lambda-lifted)-pSBind _ te0 env (x,Val t e)    = do (bs,e) <- pExpT env t e -                                     return (bs, (x, Val (erase t0) (cast t0 t e)))+pSBind _ te0 env (x,Val t e)    = do (bf,e) <- pExpT env t e +                                     return (bf, (x, Val (erase t0) (cast t0 t e)))   where t0                      = findValT "1" te0 x pSBind _ te0 env (x,Fun [] t te c@(CRet (ECall f [] (EThis:es))))-  | okAlready                   = return ([], (x, Fun [] t te c))+  | okAlready                   = return (id, (x, Fun [] t te c))   where (_,ts0,t0)              = findFunT te0 x []         okAlready               = t == erase t0 && rng te == map erase ts0 && es == map EVar (dom te) pSBind ty te0 env (x,Fun vs t te c)@@ -338,7 +339,7 @@                                      c <- pCmd (setThis y (addVals ((y,ty):te) env')) t0 c                                      f <- newName functionSym                                      addToStore (f, Fun [] t0' ((y,erase ty):te1') (cBind bs1 c))-                                     return ([], (x, Fun [] t0' te1' (CRet (ECall f [] (EThis : map EVar (dom te1'))))))+                                     return (id, (x, Fun [] t0' te1' (CRet (ECall f [] (EThis : map EVar (dom te1'))))))   where (_,ts0,t0)              = findFunT te0 x []         t0'                     = erase t0 @@ -349,43 +350,53 @@   -- Prepare commands-pCmd env t0 (CRet e)            = do (bs,e) <- pExpT env t0 e-                                     return (cBind bs (CRet e))-pCmd env t0 (CRun e c)          = do (bs,_,e) <- pExp env e-                                     liftM (cBind bs . CRun e) (pCmd env t0 c)-pCmd env t0 (CBind False bs c)  = do (bs1,bs) <- pBinds pBind env bs-                                     liftM (cBind bs1 . CBind False bs) (pCmd env' t0 c)+pCmd env t0 (CRet e)            = do (bf,e) <- pExpT env t0 e+                                     return (bf (CRet e))+pCmd env t0 (CRun e c)          = do (bf,_,e) <- pExp env e+                                     liftM (bf . CRun e) (pCmd env t0 c)+pCmd env t0 (CBind _ [] c)      = pCmd env t0 c+pCmd env t0 (CBind False bs c)  = do (bf,bs) <- pBinds pBind env bs+                                     liftM (bf . CBind False bs) (pCmd env' t0 c)   where env'                    = addTEnv (mapSnd typeOf bs) env-pCmd env t0 (CBind True bs c)   = do (bs1,bs) <- pBinds pBind env' bs-                                     liftM (CBind True (bs1++bs)) (pCmd env' t0 c)+pCmd env t0 (CBind True bs c)   = do (bf,bs) <- pBinds pBind env' bs+                                     liftM (CBind True (flatBinds bf ++ bs)) (pCmd env' t0 c)   where env'                    = addTEnv (mapSnd typeOf bs) env-pCmd env t0 (CUpd x e c)        = do (bs,e) <- pExpT env (findValT "2" (tenv env) x) e-                                     liftM (cBind bs . CUpd x e) (pCmd env t0 c)-pCmd env t0 (CUpdS e x e' c)    = do (bs,t1,e) <- pExp env e+pCmd env t0 (CUpd x e c)        = do (bf,e) <- pExpT env (findValT "2" (tenv env) x) e+                                     liftM (bf . CUpd x e) (pCmd env t0 c)+pCmd env t0 (CUpdS e x e' c)    = do (bf,t1,e) <- pExp env e                                      let (s,te) = findStructTEnv "AA" env t1-                                     (bs',e') <- pExpT env (findValT "3" te x) e'-                                     liftM (cBind bs . cBind bs' . CUpdS e x e') (pCmd env t0 c)-pCmd env t0 (CUpdA e i e' c)    = do (bs,TCon (Prim Array _) [t],e) <- pExp env e-                                     (bs',i) <- pExpT env tInt i-                                     (bs'',e') <- pExpT env tPOLY e'-                                     liftM (cBind bs . cBind bs' . cBind bs'' . CUpdA e i e') (pCmd env t0 c)+                                     (bf',e') <- pExpT env (findValT "3" te x) e'+                                     liftM (bf . bf' . CUpdS e x e') (pCmd env t0 c)+pCmd env t0 (CUpdA e i e' c)    = do (bf,TCon (Prim Array _) [t],e) <- pExp env e+                                     (bf',i) <- pExpT env tInt i+                                     (bf'',e') <- pExpT env tPOLY e'+                                     liftM (bf . bf' . bf'' . CUpdA e i e') (pCmd env t0 c)+pCmd env t0 (CSeq c c')         = liftM2 mkSeq (pCmd env t0 c) (pCmd env t0 c')+pCmd env t0 (CBreak)            = return CBreak+pCmd env t0 (CRaise e)          = do (bf,e) <- pExpT env tInt e+                                     return (bf (CRaise e))+pCmd env t0 (CWhile e c c')     = do (bf,e) <- pExpT env tBool e+                                     c <- pCmd env t0 c+                                     liftM (bf . CWhile e c) (pCmd env t0 c')+pCmd env t0 (CCont)             = return CCont pCmd env t0 (CSwitch e alts)       | any litA alts               = if simple (litType (firstLit alts)) then-                                     do (bs,e) <- pExpT env tInt e+                                     do (bf,e) <- pExpT env tInt e                                         alts <- mapM (pAlt env e tInt t0) alts-                                        return (cBind bs (CSwitch e alts))+                                        return (bf (CSwitch e alts))                                     else mkVarSwitch env t0 e alts-  | isEVar e || all nullA alts  = do (bs,t,e) <- pExp env e+  | isEVar e || all nullA alts  = do (bf,t,e) <- pExp env e                                      alts <- mapM (pAlt env e t t0) alts                                      let (alts0,alts1) = partition nullA [ a | a@(ACon _ _ _ _) <- alts ]                                          altsW         = [ a | a@(AWild _) <- alts ]-                                     return (cBind bs (mkSwitch env e (alts0++absent0 altsW) (alts1++absent1 altsW)))+                                     return (bf (mkSwitch env e (alts0++absent0 altsW) (alts1++absent1 altsW)))   | otherwise                   = mkVarSwitch env t0 e alts   where nullA (ACon k _ _ _)    = k `elem` nulls env         nullA _                 = False         absent                  = allCons env alts \\ [ k | ACon k _ _ _ <- alts ]         (abs0,abs1)             = partition (`elem` nulls env) absent-        absent0 altsW           = [ ACon k [] [] d | k <- abs0, AWild d <- altsW ]+        absent0 []              = [ ACon k [] [] CBreak | k <- abs0 ]+        absent0 (AWild d : _)   = [ ACon k [] [] d | k <- abs0 ]         absent1 altsW           = [ a | a <- altsW, not (null abs1) ]         litA (ALit _ _)         = True         litA _                  = False@@ -395,26 +406,12 @@         simple (TCon (Prim Char _) []) = True         simple _                = False -pCmd env t0 (CSeq c c')         = liftM2 mkSeq (pCmd env t0 c) (pCmd env t0 c')-pCmd env t0 (CBreak)            = return CBreak-pCmd env t0 (CRaise e)          = do (bs,e) <- pExpT env tInt e-                                     return (cBind bs (CRaise e))-pCmd env t0 (CWhile e c c')     = do (bs,e) <- pExpT env tBool e-                                     c <- pCmd env t0 c-                                     liftM (cBind bs . CWhile e c) (pCmd env t0 c')-pCmd env t0 (CCont)             = return CCont -mkVarSwitch env t0 e alts-  | isEVar e                    = do  (bs,t,e) <- pExp env e-                                      alts <- mapM (pAlt env e t t0) alts-                                      return (cBind bs (CSwitch e alts))-  | otherwise                   = do (bs,t,e) <- pExp env e-                                     x <- newName tempSym-                                     c <- pCmd (addVals [(x,t)] env) t0 (CSwitch (EVar x) alts)-                                     return (cBind bs (cBind [(x,Val t e)] c))-+mkSwitch env (EVar _) [] []     = CBreak+mkSwitch env e [] []            = CSwitch e [AWild CBreak] mkSwitch env e [] [ACon n _ _ c]   | n `notElem` tagged env      = c+ mkSwitch env e [] [AWild c]     = c mkSwitch env e [] alts1         = CSwitch (ESel e (prim Tag)) (map (mkLitAlt env) alts1) mkSwitch env e alts0@[ACon n _ _ c] []@@ -424,6 +421,16 @@   where d                       = mkSwitch env e [] alts1  +mkVarSwitch env t0 e alts+  | isEVar e                    = do (bf,t,e) <- pExp env e+                                     alts <- mapM (pAlt env e t t0) alts+                                     return (bf (CSwitch e alts))+  | otherwise                   = do (bf,t,e) <- pExp env e+                                     x <- newName tempSym+                                     c <- pCmd (addVals [(x,t)] env) t0 (CSwitch (EVar x) alts)+                                     return (bf (cBind [(x,Val t e)] c))++ mkLitAlt env (ACon n [] [] c)   = ALit (conLit env n) c mkLitAlt env a                  = a @@ -467,29 +474,29 @@ -- Prepare a right-hand-side expression pRhsExp env (ENew n ts bs)      = pNewExp env n ts bs pRhsExp env (ECast t (ENew n ts bs))-                                = do (bs',t',e) <- pNewExp env n ts bs-                                     return (bs', t, cast t t' e)+                                = do (bf,t',e) <- pNewExp env n ts bs+                                     return (bf, t, cast t t' e) pRhsExp env e                   = pExp env e   pNewExp env n ts bs-  | n `elem` nulls env          = return ([], t0, cast t0 tInt (ELit (conLit env n)))-  | otherwise                   = do (bs1,bs) <- pBinds (pSBind t0 te0) env bs-                                     return (bs1, t0, ENew n [] (bs''++bs'++bs))+  | n `elem` nulls env          = return (id, t0, cast t0 tInt (ELit (conLit env n)))+  | otherwise                   = do (bf,bs) <- pBinds (pSBind t0 te0) env bs+                                     return (bf, t0, ENew n [] (bs''++bs'++bs))   where bs'                     = if n `elem` tagged env then [(prim Tag, Val tInt (ELit (conLit env n)))] else []         bs''                    = polyTagBinds env n ts         t0                      = TCon n ts         (_,te0)                 = findStructTEnv "BB" env t0  -pRefBind te0 env (x,Val _ e)    = do (bs,t,e) <- pRhsExp env e -                                     return (bs, (x, Val (erase t0) (cast t0 t e)))+pRefBind te0 env (x,Val _ e)    = do (bf,t,e) <- pRhsExp env e +                                     return (bf, (x, Val (erase t0) (cast t0 t e)))   where t0                      = findValT "1" te0 x   -- Prepare an expression in an arbitrary position and match its type with the expected one-pExpT env t0 e                  = do (bs,t,e) <- pExp env e-                                     return (bs, cast t0 t e)+pExpT env t0 e                  = do (bf,t,e) <- pExp env e+                                     return (bf, cast t0 t e)   cast t0 t1 e@@ -506,42 +513,42 @@ smallPrim _                     = False  -pExpTs env [] []                = return ([], [])-pExpTs env (t:ts) (e:es)        = do (bs1,e) <- pExpT env t e-                                     (bs2,es) <- pExpTs env ts es-                                     return (bs1++bs2, e:es)+pExpTs env [] []                = return (id, [])+pExpTs env (t:ts) (e:es)        = do (bf1,e) <- pExpT env t e+                                     (bf2,es) <- pExpTs env ts es+                                     return (bf1 . bf2, e:es)   -- Prepare an expression in an arbitrary position and compute its type-pExp env (EVar x)                   = return ([], findValT "4" (tenv env) x, EVar x)-pExp env (ELit l)                   = return ([], litType l, ELit l)-pExp env (EThis)                    = return ([], findValT "5" (tenv env) x, EVar x)+pExp env (EVar x)                   = return (id, findValT "4" (tenv env) x, EVar x)+pExp env (ELit l)                   = return (id, litType l, ELit l)+pExp env (EThis)                    = return (id, findValT "5" (tenv env) x, EVar x)   where x                           = fromJust (this env)-pExp env (ESel e l)                 = do (bs,t1,e) <- pExp env e+pExp env (ESel e l)                 = do (bf,t1,e) <- pExp env e                                          let (s,te) = findStructTEnv "CC" env t1                                              t = findValT ("6" ++ " e: " ++ render (pr e) ++ "  te: " ++ show te) te l-                                         specialize s t bs (ESel e l)-pExp env (ECall f ts es)            = do (bs,es) <- pExpTs env ts0 es-                                         specialize s t bs (ECall f [] (polyTagArgs env ts ++ es))+                                         specialize s t bf (ESel e l)+pExp env (ECall f ts es)            = do (bf,es) <- pExpTs env ts0 es+                                         specialize s t bf (ECall f [] (polyTagArgs env ts ++ es))   where (s,ts0,t)                   = findFunT (tenv env) f ts pExp env (EEnter (EVar x) f ts es)  = do let t1 = findValT "7" (tenv env) x                                          let (s,te) = findStructTEnv "DD" env t1                                              (s',ts0,t) = findFunT te f ts-                                         (bs2,es) <- pExpTs env ts0 es-                                         specialize (s'@@s) t bs2 (EEnter (EVar x) f [] (polyTagArgs env ts ++ es))-pExp env (EEnter e f ts es)         = do (bs1,t1,e) <- pRhsExp env e+                                         (bf,es) <- pExpTs env ts0 es+                                         specialize (s'@@s) t bf (EEnter (EVar x) f [] (polyTagArgs env ts ++ es))+pExp env (EEnter e f ts es)         = do (bf1,t1,e) <- pRhsExp env e                                          let (s,te) = findStructTEnv "EE" env t1                                              (s',ts0,t) = findFunT te f ts-                                         (bs2,es) <- pExpTs env ts0 es+                                         (bf2,es) <- pExpTs env ts0 es                                          x <- newName tempSym-                                         specialize (s'@@s) t (bs1++bs2++[(x, Val (erase t1) e)]) (EEnter (EVar x) f [] (polyTagArgs env ts ++ es))-pExp env (ECast t e)                = do (bs,t',e) <- pExp env e-                                         return (bs, t, cast t t' e)+                                         specialize (s'@@s) t (bf1 . bf2 . cBind [(x, Val (erase t1) e)]) (EEnter (EVar x) f [] (polyTagArgs env ts ++ es))+pExp env (ECast t e)                = do (bf,t',e) <- pExp env e+                                         return (bf, t, cast t t' e) pExp env (ENew n ts bs)-  | n `elem` nulls env              = return ([], tInt, ELit (conLit env n))-  | otherwise                       = do (bs1,t,e) <- pNewExp env n ts bs+  | n `elem` nulls env              = return (id, tInt, ELit (conLit env n))+  | otherwise                       = do (bf,t,e) <- pNewExp env n ts bs                                          x <- newName tempSym-                                         return (bs1++[(x, Val (erase t) e)], t, EVar x)+                                         return (bf . cBind [(x, Val (erase t) e)], t, EVar x) -specialize s t bs e                 = return (bs, t', cast t' t e)+specialize s t bf e                 = return (bf, t', cast t' t e)   where t'                          = subst s t
src/Reduce.hs view
@@ -1,6 +1,7 @@+{-# LANGUAGE DeriveDataTypeable #-} -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -40,7 +41,8 @@ import Kind import Depend import Termred-+import Data.Typeable+import qualified Control.Exception as Exception   @@ -48,6 +50,17 @@  type TEqs                               = [(Type,Type)] ++data ClosePredException                 = CircularSubPred [Scheme]+                                        | AmbigSubPred Scheme Scheme+                                        deriving (Typeable)+                                        +instance Show ClosePredException where+    show (CircularSubPred ps)           = "Circular subtype predicates: " ++ render (hpr ',' ps)+    show (AmbigSubPred p1 p2)           = "Ambiguous subtype predicates: " ++ render (hpr ',' [p1,p2])++instance Exception.Exception ClosePredException+ noreduce env eqs pe                     = do s0 <- unify env eqs                                              return (s0, pe, id) @@ -60,9 +73,15 @@                                              -- tr ("END FULLREDUCE " ++ show pe2)                                              return (s2@@s1, pe2, f2 . f1) -topresolve env eqs pe bs                = do (s,[],f) <- fullreduce env eqs pe+topresolve env eqs pe bs                = do -- if not (null pe) then tr ("TOPRESOLVE\n" ++ render (nest 4 (vpr pe))) else return ()+                                             (s,qe,f) <- fullreduce env eqs pe+                                             -- if not (null qe) then tr ("TOPRESOLVE OUT:\n" ++ render (nest 4 (vpr qe))) else return ()                                              let Binds r te es = collect (f (ELit (lInt 0))) `catBinds` bs-                                             return (Binds r (subst s te) es)+                                                 te' = subst s te+                                                 mono = [ (x,t) | (x,t) <- te', not (null (tvars t)) ]+                                             -- if not (null mono) then tr ("AFTER TOPRESOLVE\n" ++ render (nest 4 (vpr te'))) else return ()+                                             assert1 (null mono) "Illegal polymorphism in top-level type" mono+                                             return (Binds r (qe++te') es)   where collect (ELet bs e)             = bs `catBinds` collect e         collect e                       = nullBinds @@ -170,15 +189,13 @@  -- Forced reduction ------------------------------------------------------------------------ -resolve env pe                          = do -- tr ("############### Before resolve: ")-                                             -- tr (render (nest 8 (vpr pe)))+resolve env pe                          = do -- tr ("############### Before resolve:\n" ++ render (nest 8 (vpr pe)))                                              -- tr ("tevars: " ++ show env_tvs ++ ",   reachable: " ++ show reachable_tvs)                                              (s1,q1,[],es) <- red [] (map mkGoal pe)-                                             -- tr ("############### After resolve: ")-                                             -- tr (render (nest 8 (vpr q1)))+                                             -- tr ("############### After resolve:\n" ++ render (nest 8 (vpr q1)))                                              let f1 = eLet pe (dom pe `zip` es)                                                  badq = filter badDummy q1-                                             assert1 (null badq) "Cannot resolve predicates" (snd (head badq))+                                             -- assert1 (null badq) "Cannot resolve predicates" badq                                              -- tr "DONE RESOLVING"                                              (s2,q2,f2) <- simplify (subst s1 env) q1                                              return (s2@@s1, q2, f2 . f1)@@ -270,11 +287,11 @@         info                            = varInfo gs red gs ((env, p@(Scheme (F [sc1] t2) ps2 ke2)):ps)                                         = do (t1,ps1) <- inst sc1-                                             -- tr ("redf " ++ render (pr t1 <+> text "<" <+> pr t2))+                                             -- tr ("red: " ++ render (pr t1 <+> text "<" <+> pr t2))                                              pe <- newEnv assumptionSym ps2                                              v  <- newName coercionSym                                              (env',qe,eq) <- closePreds env (tvars sc1 ++ tvars t2 ++ tvars ps2) pe ke2-                                             let ps' = repeat (tick env' False) `zip` ps1+                                             let ps' = repeat env' `zip` ps1                                              (s,q,es,e,es') <- redf gs env' t1 t2 (ps'++ps)                                              pe1 <- wildify ke2 pe                                              qe1 <- wildify ke2 qe@@ -470,8 +487,8 @@     auSc _ _ _                          = internalError0 "auTerms"  -newHyp (env,c)                          = do -- tr ("newHyp " ++ render (pr p) ++ "   " ++ show (forced env))-                                             v <- newName (sym env)+newHyp (env,c)                          = do v <- newName (sym env)+                                             -- tr ("newHyp " ++ render (pr (v,p)) ++ ", ticked/forced: " ++ show (ticked env,forced env))                                              return ([(v,p)], eAp (EVar (annotExplicit v)) (map EVar vs))   where p                               = Scheme (R c) ps ke         (vs,ps)                         = unzip (predEnv env)
src/Rename.hs view
@@ -2,7 +2,7 @@  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -393,8 +393,10 @@ renSBind envL envR (BEqn (LFun v ps) rh)    = do envR' <- extRenE envR (pvars ps)                                                  ps'   <- rename envR' ps                                                  liftM (BEqn (LFun (annotGenerated (renE envL v)) ps')) (rename envR' rh)-renSBind envL envR (BEqn (LPat (EVar v)) rh)= liftM (BEqn (LPat (EVar (annotGenerated (renE envL v))))) (rename envR rh)-renSBind _ _ (BEqn (LPat p) _)              = errorTree "Illegal pattern in struct value" p +--renSBind envL envR (BEqn (LPat (EVar v)) rh)= liftM (BEqn (LPat (EVar (annotGenerated (renE envL v))))) (rename envR rh)+renSBind envL envR (BEqn (LPat p) rh)       = do p' <- rename envL p+                                                 rh' <- rename envR rh+                                                 return (BEqn (LPat p') rh') renSBind _ _ s@(BSig vs t)                  = errorTree "Signature in struct value" s   instance Rename Field where
src/Syntax.hs view
@@ -2,7 +2,7 @@  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -148,7 +148,6 @@             | SBind   [Bind]             | SAss    Pat Exp             | SForall [Qual] [Stmt]-            | SWhile  Exp [Stmt]             | SIf     Exp [Stmt]             | SElsif  Exp [Stmt]             | SElse   [Stmt]@@ -261,7 +260,9 @@         flat t ts               = (t,ts)  -type2cons (TQual t ps)          = type2cons t+type2cons (TQual t ps)          = case tFlat t of+                                    (TCon c,ts) -> Constr c ts ps+                                    _           -> errorTree "Bad type constructor in" t type2cons t                     = case tFlat t of                                     (TCon c,ts) -> Constr c ts []                                     _           -> errorTree "Bad type constructor in" t@@ -360,7 +361,6 @@     subst s (SBind bs)          = SBind (subst s bs)     subst s (SAss p e)          = SAss p (subst s e)     subst s (SForall qs st)     = SForall (subst s qs) (subst s st)-    subst s (SWhile e st)       = SWhile (subst s e) (subst s st)     subst s (SIf e st)          = SIf (subst s e) (subst s st)     subst s (SElsif e st)       = SElsif (subst s e) (subst s st)     subst s (SElse st)          = SElse (subst s st)@@ -407,9 +407,9 @@                                   <+> prSubs subs <+> prCons cs     pr (DRec isC c vs sups ss)  = text kwd <+> prId c <+> hsep (map prId vs)                                    <+> prSups sups <+> prEq ss $$ prSigs ss-      where kwd                 = if isC then "typeclass " else "struct"+      where kwd                 = if isC then "typeclass" else "struct" --    pr (DInst t bs)             = text "instance" <+> pr t <+> text "=" $$ nest 4 (vpr bs)-    pr (DPSig v t)              = text "typeclass" <+> prId v <+> text "::" <+> pr t+    pr (DPSig v t)              = text "instance" <+> prId v <+> text "::" <+> pr t     pr (DDefault ts)            = text "default" <+> hpr ',' ts     pr (DInstance ns)           = text "instance" <+> hpr ',' ns      pr (DTClass ns)             = text "typeclass" <+> hpr ',' ns @@ -588,7 +588,6 @@     pr (SIf e ss)               = text "if" <+> pr e <+> text "then" $$ nest 4 (pr ss)     pr (SElsif e ss)            = text "elsif" <+> pr e <+> text "then" $$ nest 4 (pr ss)     pr (SElse ss)               = text "else" $$ nest 4 (pr ss)-    pr (SWhile e ss)            = text "while" <+> pr e <+> text "do" $$ nest 4 (pr ss)     pr (SForall qs ss)          = text "forall" <+> hpr ',' qs <+> text "do" $$ nest 4 (pr ss)     pr (SCase e alts)           = text "case" <+> pr e <+> text "of" $$ nest 4 (vpr alts) @@ -666,7 +665,6 @@ identStmts (SBind bs : ss)      = identSBind bs ss identStmts (SAss p e : ss)      = idents e ++ (identStmts ss \\ pvars p) identStmts (SForall qs ss' : ss)= identQuals qs ++ (identStmts ss' \\ bvars qs) ++ identStmts ss-identStmts (SWhile e ss' : ss)  = idents e ++ identStmts ss' ++ identStmts ss identStmts (SIf e ss' : ss)     = idents e ++ identStmts ss' ++ identStmts ss identStmts (SElsif e ss' : ss)  = idents e ++ identStmts ss' ++ identStmts ss identStmts (SElse ss' : ss)     = identStmts ss' ++ identStmts ss@@ -812,7 +810,6 @@   posInfo (SBind b)             = posInfo b   posInfo (SAss p e)            = between (posInfo p) (posInfo e)   posInfo (SForall qs ss)       = between (posInfo qs) (posInfo ss)-  posInfo (SWhile e ss)         = between (posInfo e) (posInfo ss)   posInfo (SIf e ss)            = between (posInfo e) (posInfo ss)   posInfo (SElsif e ss)         = between (posInfo e) (posInfo ss)   posInfo (SElse ss)            = posInfo ss@@ -1028,7 +1025,6 @@   put (SBind a) = putWord8 3 >> put a   put (SAss a b) = putWord8 4 >> put a >> put b   put (SForall a b) = putWord8 5 >> put a >> put b-  put (SWhile a b) = putWord8 6 >> put a >> put b   put (SIf a b) = putWord8 7 >> put a >> put b   put (SElsif a b) = putWord8 8 >> put a >> put b   put (SElse a) = putWord8 9 >> put a@@ -1042,7 +1038,6 @@       3 -> get >>= \a -> return (SBind a)       4 -> get >>= \a -> get >>= \b -> return (SAss a b)       5 -> get >>= \a -> get >>= \b -> return (SForall a b)-      6 -> get >>= \a -> get >>= \b -> return (SWhile a b)       7 -> get >>= \a -> get >>= \b -> return (SIf a b)       8 -> get >>= \a -> get >>= \b -> return (SElsif a b)       9 -> get >>= \a -> return (SElse a)
src/Syntax2Core.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without
src/Termred.hs view
@@ -2,7 +2,7 @@  -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -41,7 +41,7 @@ import PP import Char -termred (_,ds',_,bs') m         = redModule (consOf ds') (eqnsOf bs') m+termred (_,ds',_,bs') m         = redModule ds' (eqnsOf bs') m  redTerm coercions e             = redExp (initEnv { eqns = coercions }) e @@ -50,16 +50,18 @@  data Env                        = Env { eqns :: Map Name Exp,                                         args :: [Name],-                                        cons :: [Map Name Int]+                                        cons :: [Map Name Int],+                                        sels :: TEnv                                       } -initEnv                         = Env { eqns = [], args = [], cons = cons0 }+initEnv                         = Env { eqns = [], args = [], cons = cons0, sels = [] }  cons0                           = [ [(prim TRUE, 0), (prim FALSE, 0)] , [(prim NIL, 0), (prim CONS, 2)] ] -consOf (Types _ ds)             = [ map f ce | (_,DData _ _ ce) <- ds ]+consOf ds                       = [ map f ce | (_,DData _ _ ce) <- ds ]   where f (c, Constr te pe _)   = (c, length te + length pe) +selsOf ds                       = concat [ ss | (_,DRec _ _ _ ss) <- ds ]  conArity env (Tuple n _)        = n conArity env c                  = lookup' (concat (cons env)) c@@ -74,19 +76,20 @@  addEqns env eqs                 = env { eqns = eqs ++ eqns env } -addCons env css                 = env { cons = css ++ cons env }+addDecls env ds                 = env { cons = consOf ds ++ cons env, sels = selsOf ds ++ sels env } -redModule impCons impEqs (Module m ns xs ds is bss)++redModule impDecls impEqs (Module m ns xs ds is bss)                                 = do (bss,_) <- redTopBinds env1 bss                                      return (Module m ns xs ds is bss)-  where env0                    = addCons initEnv (impCons ++ consOf ds)+  where env0                    = addDecls initEnv (tdefsOf impDecls ++ tdefsOf ds)         env1                    = addEqns env0 (finiteEqns env0 impEqs)   redTopBinds env []              = return ([], []) redTopBinds env (bs : bss)      = do Binds r te es <- redBinds env bs                                      (bss,vs) <- redTopBinds (addEqns env (finiteEqns env es)) bss-                                     let necessary (v,_) = maybe (elem v vs) (const True) (fromMod v)+                                     let necessary (v,_) = r || maybe (elem v vs) (const True) (fromMod v)                                          te' = filter necessary te                                          es' = filter necessary es                                          bs' = Binds r te' es'@@ -124,7 +127,7 @@ -- may be safely inlined (can't lead to infinite expansion even if part of a recursive binding group) finite env (EVar (Prim c _))    = True --c `notElem` [ListArray, UniArray, UpdateArray] finite env (EVar (Tuple _ _))   = True-finite env (EVar x)             = x `elem` args env || maybe False (finite env )(lookup x (eqns env))+finite env (EVar x)             = x `elem` args env || maybe False (finite env) (lookup x (eqns env)) finite env (ECon _)             = True finite env (ELit _)             = True finite env (ESel e _)           = finite env e@@ -139,9 +142,55 @@   -redBinds env (Binds r te eqns)  = liftM (Binds r te) (redEqns env eqns)+redBinds env (Binds r te eqns)  = do eqns <- redEqns env eqns+                                     bs <- staticDelayRule env (Binds r te eqns)+                                     return bs  +staticDelayRule env bs@(Binds rec te eqs)+  | not rec                     = return bs+  | rec                         = do (eqs',eqs1) <- walkEqs env te (dom eqs) eqs+                                     ts <- mapM (const (newTVar Star)) eqs1+                                     return (Binds rec (te ++ (dom eqs1 `zip` map scheme ts)) (eqs'++eqs1))++      +walkEqs env te fw []            = return ([], [])+walkEqs env te fw (eq:eqs)      = do (eq,eqs1) <- doEq te eq+                                     (eqs,eqs2) <- walkEqs env te (fw \\ [fst eq] ++ dom eqs1) eqs+                                     return (eq:eqs, eqs1++eqs2)+  where doEq te eq@(x,e)+          | null ke             = do (e,eqs) <- doExp e+                                     return ((x,e), eqs)+          | otherwise           = return ((x,e), [])+          where ke              = quant (lookup' te x)+        doAlt (p,e)             = do (e,eqs1) <- doExp e+                                     return ((p,e), eqs1)+        doExp (ESel e l)+          | isCoerceLabel l     = maybeDelay (\e -> ESel e l) e+          | otherwise           = do (e,eqs1) <- doExp e+                                     return (ESel e l, eqs1)+        doExp (ECase e alts)    = do (e,eqs1) <- doExp e+                                     (alts,eqss) <- fmap unzip (mapM doAlt alts)+                                     return (ECase e alts, eqs1++concat eqss)+        doExp (EAp e es)        = do (e,eqs1) <- doExp e+                                     (es,eqss) <- fmap unzip (mapM doExp es)+                                     return (EAp e es, eqs1++concat eqss)+        doExp (ELet (Binds r te eqs) e)+                                = do (eqs',eqss) <- fmap unzip (mapM (doEq te) eqs)+                                     (e,eqs1) <- doExp e+                                     return (ELet (Binds r te eqs') e, eqs1++concat eqss)+        doExp (ERec n eqs)      = do (eqs',eqss) <- fmap unzip (mapM (doEq (sels env)) eqs)+                                     return (ERec n eqs', concat eqss)+        doExp e                 = return (e, [])+        maybeDelay f (ESel e l)+          | isCoerceLabel l     = maybeDelay (\e -> f (ESel e l)) e+        maybeDelay f (EVar x)+          | x `elem` fw         = do y <- newName tempSym+                                     return (EVar y, [(y, f (EVar x))])+        maybeDelay f e          = do (e,eqs1) <- doExp e+                                     return (f e, eqs1)++ redEqns env []                  = return [] redEqns env ((x,e):eqns)        = do e' <- redExp env e                                      let env' = if finite env e' && isSmall e @@ -300,9 +349,9 @@                                     _            -> liftM (ECase e) (redAlts env alts)  redAlts env alts-  | complete (cons env) cs      = do es <- mapM (redExp env) es+  | complete (cons env) cs      = do es <- mapM (redRhs env) es                                      return (map PCon cs `zip` es)-  | otherwise                   = do es0 <- mapM (redExp env) es0+  | otherwise                   = do es0 <- mapM (redRhs env) es0                                      return (ps `zip` es0)   where (cs,es)                 = unzip [ (c,e) | (PCon c, e) <- alts ]         (ps,es0)                = unzip alts@@ -323,6 +372,7 @@   | l == l'                     = redExp env e findLit env l (_:alts)          = findLit env l alts + redCaseStrLit env l ((PWild,e):_) = redExp env e redCaseStrLit env l ((PLit l',e):_)  | l == l'                      = redExp env e@@ -334,18 +384,21 @@          nil = ECon (prim NIL) redCaseStrLit env l (_:alts)         = redCaseStrLit env l alts + redPrim env Refl _ [e]                      = e redPrim env Match a [e]                     = redMatch env a e redPrim env Fatbar a [e,e']                 = redFat a e e' redPrim env UniArray a es                   = EAp (EVar (Prim UniArray a)) es-redPrim env p _ [ELit (LInt _ x), ELit (LInt _ y)]  = redInt p x y-redPrim env p a [ELit (LRat _ x), ELit (LRat _ y)]  = redRat p x y redPrim env IntNeg _ [ELit (LInt _ x)]      = ELit (lInt (-x)) redPrim env IntToFloat _ [ELit (LInt _ x)]  = ELit (lRat (fromInteger x)) redPrim env IntToChar _ [ELit (LInt _ x)]   = ELit (lChr (chr (fromInteger x))) redPrim env FloatNeg _ [ELit (LRat _ x)]    = ELit (lRat (-x)) redPrim env FloatToInt _ [ELit (LRat _ x)]  = ELit (lInt (truncate x)) redPrim env CharToInt _ [ELit (LChr _ x)]   = ELit (lInt (ord x))+redPrim env p a [ELit (LInt _ x), ELit (LInt _ y)]+  | p `notElem` [IntDiv,IntMod] || y /= 0   = redInt p x y+redPrim env p a [ELit (LRat _ x), ELit (LRat _ y)]+  | p /= FloatDiv || y /= 0                 = redRat p x y redPrim env p a es                          = eAp (EVar (Prim p a)) es  @@ -375,7 +428,7 @@ redInt IntLE a b                = eBool (a <= b) redInt IntGE a b                = eBool (a >= b) redInt IntGT a b                = eBool (a > b)-redInt p _ _                    = internalError0 ("redInt: unknown primitive " ++ show p)+redInt p _ _                    = internalError0 ("redInt: " ++ show p)   redRat FloatPlus a b            = ELit (lRat (a + b))@@ -388,7 +441,7 @@ redRat FloatLE a b              = eBool (a <= b) redRat FloatGE a b              = eBool (a >= b) redRat FloatGT a b              = eBool (a > b)-redRat p _ _                    = internalError0 ("redRat " ++ show p)+redRat p _ _                    = internalError0 ("redRat: " ++ show p)   eBool True                      = ECon (prim TRUE)@@ -415,14 +468,14 @@   | inline x e                  = do c' <- redBetaC (addEqns env [(x,e)]) te c es                                      return (bindx c')   | otherwise                   = liftM (CLet bs) (redBetaC env te c es)-  where inline x e              = isSafe x || isEVar e || (value e && finite env e && isSmall e)+  where inline x e              = isSafe x || isSafeEVar e || (value e && finite env e && isSmall e)         isSafe x                = isEtaExp x || isAssumption x || isCoercion x                 bindx c'           | x `elem` evars c'   = CLet bs c'           | otherwise           = c'         bs                      = Binds False [(x,t)] [(x,e)]-        isEVar (EVar _)         = True-        isEVar _                = False+        isSafeEVar (EVar n)     = not $ isState n+        isSafeEVar _            = False redBetaC env [] c []            = redCmd env c  -- Constructor presence
src/Token.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -110,7 +110,6 @@     | KW_Typeclass     | KW_Use        | KW_Where-    | KW_While     | EOF       deriving (Eq, Show) @@ -162,8 +161,7 @@         ( "type",      KW_Type ),           ( "typeclass", KW_Typeclass ),           ( "use",       KW_Use ),   -        ( "where",     KW_Where ),-        ( "while",     KW_While )+        ( "where",     KW_Where )       ]  
src/Type.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -119,6 +119,7 @@                                       tiBinds env (Binds _ [] [])     = return ([], [], nullBinds) tiBinds env (Binds rec te eqs)  = do -- tr ("TYPE-CHECKING " ++ showids xs ++ ", at line: " ++ show (pos (fst(head te))))+                                     -- tr ("rec: " ++ show rec ++ ", mono: " ++ show mono)                                      -- tr (render (nest 8 (vpr te)))                                      -- tr ("assuming\n" ++ render (nest 4 (vpr (typeEnv env))))                                      (s,pe,es1)   <- tiRhs0 (addTEnv te env) explWits ts es@@ -128,18 +129,17 @@                                      -- tr ("PREDICATES OBTAINED (" ++ showids xs ++ "):\n" ++ render (nest 8 (vpr qe)))                                      let env1      = subst s' env                                          ts1       = subst s' ts-                                         tvs0      = if mono then tvars qe ++ tvs1 else []-                                         tvs1      = concat [ tvars t | (t,e) <- ts1 `zip` es, isNewAp e ]-                                         (qe1,qe2) = if mono then (qe,[]) else partition (isFixed (tevars env1)) qe+                                         tvs0      = concat [ tvars t | (t,e) <- ts1 `zip` es, monoRestrict rec t e ]+                                         (qe1,qe2) = if mono then (qe,[]) else partition (isFixed (tevars env1 ++ tvs0)) qe                                          (vs,qs)   = unzip qe2                                          es2       = map f es1-                                         es3       = if mono || not rec || null vs then es2 else map (subst (satSubst vs)) es2+                                         es3       = if mono || not rec then es2 else map (subst (satSubst vs)) es2                                          (es',ts') = if mono then (es3,ts1) else unzip (zipWith (qual qe2) es3 ts1)                                      -- tr ("BEFORE GEN:\n" ++ render (nest 8 (vpr (xs `zip` ts') $$ vpr qe2)))                                      -- Note: using genL below instead of mapM gen allows us to take a simplifying                                       -- shortcut later on in Type2-                                     ts'' <- genL (tevars env1 ++ tvs0) ts'-                                     -- tr ("DONE " ++ render (nest 8 (vpr (xs `zip` ts''))))+                                     ts'' <- genL (tevars env1 ++ tvs0 ++ tvars qe1) ts'+                                     -- tr ("DONE\n" ++ render (nest 8 (vpr (xs `zip` ts''))))                                      -- tr ("EXPS " ++ render (nest 8 (vpr (xs `zip` es'))))                                      return (mkEqns env s', qe1, Binds rec (xs `zip` ts'') (xs `zip` es'))   where ts                      = map (lookup' te) xs@@ -150,7 +150,7 @@           where es              = map EVar vs                 f x t           = (x, eLam te (EAp (EVar x) (es ++ map EVar (dom te))))                   where te      = abcSupply `zip` ctxt t-        mono                    = or [ isNewAp e || arity e == 0 && null (ctxt t) | (e,t) <- es `zip` ts ]+        mono                    = or [ monoRestrict True t e | (e,t) <- es `zip` ts ]   tiRhs0 env explWits ts es       = do (ss,pes,es') <- fmap unzip3 (mapM (tiExpT' env) (zip3 explWits ts es))@@ -162,8 +162,8 @@ tiExpT env t e                  = tiExpT' env (False, t, e)  -tiExpT' env (explWit, Scheme t0 ps ke, e)-  | isNewAp e                   = do (ss,pe,t,e') <- tiExp env e+tiExpT' env (explWit, sc@(Scheme t0 ps ke), e)+  | monoRestrict False sc e     = do (ss,pe,t,e') <- tiExp env e                                      c            <- newNamePos coercionSym e'                                      return (ss, (c, Scheme (F [scheme' t] t0) ps ke) : pe, EAp (EVar c) [e'])   | null ke && not explWit      = do (ss,qe,t,e)  <- tiExp env e@@ -173,8 +173,8 @@                                          e1        = eLam pe0 (EAp (eAp (EVar c) ws) [e])                                      return (ss, (c, Scheme (F [scheme' t] t0) ps ke) : qe, e1)   | otherwise                   = do (ss,qe,t,e)  <- tiExp env e---                                     tr ("REQUIRED: " ++ render (pr (Scheme t0 ps ke)))---                                     tr ("INFERRED: " ++ render (pr t) ++ "\n" ++ render (nest 4 (vpr qe)))+                                     -- tr ("REQUIRED: " ++ render (pr (Scheme t0 ps ke)))+                                     -- tr ("INFERRED: " ++ render (pr t) ++ "\n" ++ render (nest 4 (vpr qe)))                                      (s,qe,f)     <- normalize (target t (setErrPos (posInfo e) env)) ss qe `handle` (fail . tail)                                      c            <- newNamePos coercionSym e                                      pe0          <- newEnvPos assumptionSym ps e >>= wildify ke@@ -185,7 +185,7 @@                                          (ws',ps') = if explWit then (ws, ps) else ([], [])                                          e1        = eLam pe0 (eAp (EAp (eAp (EVar c) ws) [e']) ws')                                      sc           <- gen (tevars env1 ++ tvars qe1) t'-                                     return (mkEqns env1 s, (c, Scheme (F [sc] (tFun ps' t0)) ps ke) : qe1, e1)+                                     return (mkEqns env s, (c, Scheme (F [sc] (tFun ps' t0)) ps ke) : qe1, e1)  mkEqns env s                    = mapFst TVar (restrict s (tevars env)) 
src/Type2.hs view
@@ -1,6 +1,7 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts #-} -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. --  -- Redistribution and use in source and binary forms, with or without@@ -42,7 +43,7 @@ typecheck2 e2 m                 = t2Module e2 m  t2Module (xs',ds',ws',bs') (Module v ns xs ds ws bss)-                                = do bss <- t2BindsList env2 bss+                                = do bss <- t2TopBinds env2 bss                                      return (Module v ns xs ds ws bss)   where env2                    = addTEnv0 te2 (addKEnv0 ke2 env1)         te2                     = tenvSelsCons ds@@ -52,71 +53,69 @@         ke1                     = ksigsOf ds'         env0                    = addTEnv0 primPredEnv (initEnv v) -t2BindsList env []              = return []-t2BindsList env (bs:bss)        = do bs <- t2Binds0 env bs-                                     bss <- t2BindsList (addTEnv (tsigsOf bs) env) bss-                                     return (bs:bss) --- t2Binds0 is a variant of t2Binds that is optimized for use on the program top level, where the only free --- occurrences of unification variables are in partial type signatures.  After type-checking a right-hand side,--- all unification variables that still remain will be generalized before a dependent binding group is checked.--- Thus there is no need to propagate any substitution from one top-level binding group to the next; and--- furthermore, the only fragment of a substitution that can possibly affect the type of a binding whithin--- the *same* group must have the free unification variables of the corresponding type signature as its domain.--- Hence the restriction of s1 to the tvars of sc below.  Note: this optimization has considerable impact on--- the efficiency of the Type2 pass!--- Another difference between t2Binds0 and t2Binds is that t2Binds0 also applies the computed substitution to--- the top-level *term* of a binding, so that nested signatures inside the right-hand side term may be properly --- updated and named according to System F-like principles.  Note that this is done as early as possible --- (immediately after a right-hand side has been checked), in order to allow the computed substitution to be --- restricted before it is applied to any sibling bindings.+-- Note 1:  During type-checking of a top-level right-hand side, all unification variables found will +-- be generalized before a dependent binding group is checked. Thus there is no need to propagate any +-- substitution from one top-level binding group to the next -t2Binds0 env (Binds r te eqs)   = do (s,eqs') <- t2Eqs eqs-                                     scs' <- mapM (t2Gen (tevars env)) (subst s scs)-                                     return (Binds r (xs `zip` scs') eqs')-  where env1                    = addTEnv te env-        (xs,scs)                = unzip te-        t2Eqs []                = return (nullSubst, [])-        t2Eqs ((x,e):eqs)       = do (s1,e) <- t2ExpTscoped env1 sc e-                                     (s2,eqs) <- t2Eqs eqs-                                     return (mergeSubsts [restrict s1 (tvars sc),s2], (x, subst s1 e):eqs)-          where sc              = lookup' te x+t2TopBinds env []               = return []+t2TopBinds env (bs:bss)         = do (_,bs) <- t2Binds env bs+                                     bss <- t2TopBinds (addTEnv (tsigsOf bs) env) bss+                                     return (bs:bss)  -t2Binds env (Binds r te eqs)    = do (s,eqs') <- t2Eqs eqs-                                     let scs1 = subst s scs-                                         tvs0 = concat [ tvars sc | (sc,eq) <- scs1 `zip` eqs, isNewAp (snd eq) ]-                                     scs2 <- mapM (t2Gen (tevars (subst s env) ++ tvs0)) (subst s scs1)-                                     return (s, Binds r (xs `zip` scs2) eqs')+-- Note 2:  In order to enable subsequent translation into the System F-like type system of Kindle, +-- the type abstraction and application points are encoded in the resulting terms as uniquely shaped +-- let-bindings (see encodeTAbs and encodeTApp defined in Core).++t2Binds env (Binds r te eqs)    = do (s0,eqs') <- t2Eqs eqs+                                     let mono = [ t | (x,e) <- eqs, let t = lookup' te x, monoRestrict r t e ]+                                         tvs0 = tevars (subst s0 env) ++ tvars (subst s0 mono)+                                     quants <- mapM (t2Quant tvs0) (subst s0 te)+                                     let env2 = addTEnv te' env+                                         te'  = [ (x,t) | (x,(t,_,_)) <- quants ]+                                         ss   = [ (x,s) | (x,(_,s,_)) <- quants ]+                                         s1   = [ (x,e) | (x,(_,_,e)) <- quants, e /= EVar x ]+                                     eqs'' <- mapM (t2Gen env2 s0 ss s1) eqs'+                                     return (s0, Binds r te' eqs'')   where env1                    = addTEnv te env-        (xs,scs)                = unzip te+         t2Eqs []                = return (nullSubst, [])         t2Eqs ((x,e):eqs)       = do (s1,e) <- t2ExpTscoped env1 sc e                                      (s2,eqs) <- t2Eqs eqs                                      return (mergeSubsts [s1,s2], (x,e):eqs)           where sc              = lookup' te x +        t2Quant tvs0 (x,t)      = do ids <- newNames tyvarSym (length tvs)+                                     let ts  = map TId ids+                                         s   = tvs `zip` ts+                                         ke' = ke ++ ids `zip` map tvKind tvs+                                     e <- encodeTApp ts (EVar x)+                                     return (x, (Scheme (subst s rh) (subst s ps) ke', s, e))+          where tvs             = nub (filter (`notElem` tvs0) (tvars rh))+                Scheme rh ps ke = t+                +        t2Gen env s ss s1 (x,e) = do e' <- encodeTAbs ke (subst s1 (subst s0 e))+                                     return (x, e')+          where s0              = mergeSubsts [lookup' ss x, s]+                ke              = quant (findType env x) --- Note: the program is known to be typeable at this point, thus there is no need to generalize, freshly ++-- Note 3: the program is known to be typeable at this point, thus there is no need to generalize, freshly  -- instantiate, and then match an inferred type against a skolemized version of the expected type scheme  -- (together with checking for escaping skolem variables).  Instead, all we need to ensure is that any  -- type equalities implied by the match are captured in the resulting substitution, treating all-quantified --- variables as scoped constants once we are inside the scope of a type signature (t2ExpTscoped), or using--- a freshly alpha-converted copy when matching against a polymorphic signature whose bound variables are--- not in scope (t2ExpT).--- --- Moreover, in order to enable subsequent translation into the System F-like type system of Kindle, the--- type abstraction and application points are encoded in the resulting terms as uniquely shaped let-bindings.+-- variables as scoped constants. -t2ExpTscoped env sc e           = do (s1,rh,e) <- t2Exp env e+t2ExpTscoped env sc e           = do (s1,rh,e') <- t2Exp env e                                      s2 <- mgi rh (quickSkolem sc)-                                     e <- encodeTAbs env (quant sc) e-                                     return (mergeSubsts [s1,s2], e)+                                     return (mergeSubsts [s1,s2], e')                                        t2ExpT env (Scheme t qs []) e   = t2ExpTscoped env (Scheme t qs []) e-t2ExpT env sc e                 = do sc' <- ac nullSubst sc-                                     t2ExpTscoped env sc' e+t2ExpT env sc e                 = do (s,e) <- t2ExpTscoped env sc e+                                     e <- encodeTAbs (quant sc) e+                                     return (s, e)   t2ExpTs env [] []               = return (nullSubst, [])@@ -134,14 +133,14 @@  t2Exp env (ELit l)              = return (nullSubst, R (litType l), ELit l) t2Exp env (EVar x)              = do (rh,ts) <- t2Inst (findType env x)-                                     e <- encodeTApp env ts (EVar x)+                                     e <- encodeTApp ts (EVar x)                                      return (nullSubst, rh, e) t2Exp env (ECon k)              = do (rh,ts) <- t2Inst (findType env k)-                                     e <- encodeTApp env ts (ECon k)+                                     e <- encodeTApp ts (ECon k)                                      return (nullSubst, rh, e) t2Exp env (ESel e l)            = do (F (sc:scs) rh,ts) <- t2Inst (findType env l)                                      (s,e) <- t2ExpT env sc e-                                     e' <- encodeTApp env ts (ESel e l)     -- NOTE: the *full* instantiation of l is remembered here,+                                     e' <- encodeTApp ts (ESel e l)         -- NOTE: the *full* instantiation of l is remembered here,                                      return (s, subst s (tFun scs rh), e')  -- including the actual struct type arguments (C.f.: c2k.cExp) t2Exp env (ELam te e)           = do (s,rh,e) <- t2Exp (addTEnv te env) e                                      return (s, F (subst s (rng te)) rh, ELam te e)@@ -153,7 +152,7 @@ t2Exp env (ERec c eqs)          = do alphas <- mapM newTVar (kArgs (findKind env c))                                      (t,scs) <- t2Lhs env (foldl TAp (TId c) alphas) t2Sel ls                                      (s,es) <- t2ExpTs env scs es-                                     e <- encodeTApp env (snd (tFlat t)) (ERec c (ls `zip` es))+                                     e <- encodeTApp (snd (tFlat t)) (ERec c (ls `zip` es))                                      return (s, R (subst s t), e)   where (ls,es)                 = unzip eqs         t2Sel env x l           = t2Exp env (ESel (EVar x) l)@@ -226,14 +225,12 @@                                      let env' = addTEnv [(x,scheme alpha)] env                                      (ss,rhs,_) <- fmap unzip3 (mapM (t2X env' x) xs)                                      let s = mergeSubsts ss-                                     scs <- mapM (t2Gen (tevars (subst s env')) . scheme') (subst s rhs)+                                     scs <- mapM (t2Gen (tevars (subst s env'))) (subst s rhs)                                      return (subst s alpha, scs)---t2Gen tvs0 (Scheme rh ps ke)    = do ids <- newNames tyvarSym (length tvs)+  where t2Gen tvs0 rh           = do ids <- newNames tyvarSym (length tvs)                                      let s = tvs `zip` map TId ids-                                     return (Scheme (subst s rh) ps (ke ++ ids `zip` map tvKind tvs))-  where tvs                     = nub (filter (`notElem` tvs0) (tvars rh))+                                     return (Scheme (subst s rh) [] (ids `zip` map tvKind tvs))+          where tvs             = nub (filter (`notElem` tvs0) (tvars rh))       t2Inst (Scheme rh ps ke)        = do ts <- mapM newTVar ks@@ -278,7 +275,7 @@   | c == c'                     = unif eqs unif ((TFun ts t, TFun us u):eqs)   | length ts == length us      = unif ((t,u) : (ts `zip` us) ++ eqs)-unif eqs                        = internalError0 ("Type2.unif " ++ show eqs)+unif eqs                        = internalError0 ("Type2.unif\n" ++ render (nest 4 (vpr eqs)))   mergeSubsts ss                  = unif (mapFst TVar (concat ss))
timberc.cabal view
@@ -1,5 +1,5 @@ Name:                timberc-Version:             1.0.2+Version:             1.0.3 Synopsis:            The Timber Compiler. Description:         This is a compiler for a strict and pure functional  		     language@@ -28,6 +28,7 @@                      include/float.c,                      include/timber.c,                      include/timber.h,+                     lib/ARM.t,                      lib/BitOps.t,                      lib/Data.Functional.List.t,                      lib/Data.Objects.Dictionary.t,@@ -43,7 +44,6 @@                      rtsPOSIX/config.h.in,                      rtsPOSIX/cyclic.c,                      rtsPOSIX/env.c,-                     rtsPOSIX/env.h,                      rtsPOSIX/gc.c,                      rtsPOSIX/install-sh,                      rtsPOSIX/main.c,
timberc.spec view
@@ -2,12 +2,12 @@ # # This file is subject to the same free software license as timberc. #-# Copyright 2008, Peter A. Jonsson+# Copyright 2008-2009, Peter A. Jonsson # # This file was derived from ghc.spec.in  %define name    timberc-%define version 1.0.2+%define version 1.0.3 %define release 1  Name:           %{name}@@ -18,7 +18,7 @@ URL:            http://timber-lang.org Source0:        http://timber-lang.org/dist/timberc-%{version}.tar.gz Packager:       Peter A. Jonsson <pj@csee.ltu.se>-BuildRoot:      %{_tmppath}/%{name}-%{version}-build+BuildRoot:      %{_tmppath}/BUILDROOT/%{name}-%{version}-%{release}.%{_arch} BuildRequires:  happy >= 1.18, ghc >= 6.10.1  Provides:       timber Summary:        The Timber Compiler@@ -35,24 +35,29 @@  %install -runhaskell Setup copy --destdir=%{_tmppath}/%{name}-%{version}-build-mv %{_tmppath}/%{name}-%{version}-build/%{_bindir}/timberc %{_tmppath}/%{name}-%{version}-build/%{_datadir}/timberc-%{version}/timberc+runhaskell Setup copy --destdir=${RPM_BUILD_ROOT}+mv ${RPM_BUILD_ROOT}%{_bindir}/timberc ${RPM_BUILD_ROOT}%{_datadir}/timberc-%{version}/timberc   # Ugly hack: construct a temporary bin/timberc by hand to build the RTS. SCRIPT="%{_bindir}/timberc"-SCRIPT_TMP="%{_tmppath}/%{name}-%{version}-build/$SCRIPT"+SCRIPT_TMP="${RPM_BUILD_ROOT}$SCRIPT" DATADIR="%{_datadir}/timberc-%{version}"-DATADIR_TMP="%{_tmppath}/%{name}-%{version}-build/$DATADIR"+DATADIR_TMP="${RPM_BUILD_ROOT}/$DATADIR" +# Build a temporary timberc for compiling things during package construction.+# We must use a relative datadir here, otherwise the path will end up in the+# file which in turn will fail the sanity check of rpm. echo "#!/bin/sh" > $SCRIPT_TMP echo " " >> $SCRIPT_TMP-echo "exec $DATADIR_TMP/timberc \${1+\"\$@\"} --datadir $DATADIR_TMP" >> $SCRIPT_TMP+echo "exec $DATADIR_TMP/timberc -v \${1+\"\$@\"} --datadir .." >> $SCRIPT_TMP chmod 755 $SCRIPT_TMP  cd rtsPOSIX sh ./configure --prefix=$DATADIR --with-timberc=$SCRIPT_TMP-make DESTDIR=%{_tmppath}/%{name}-%{version}-build install+sed 's#^TIMBERC.*#TIMBERC = %{_bindir}/timberc#g' Makefile > Makefile.new+mv Makefile.new Makefile+make TIMBERC=$SCRIPT_TMP DESTDIR=${RPM_BUILD_ROOT} install cd ..  # We're done with the temporary thing. Now make a real one.@@ -61,6 +66,10 @@ echo " " >> $SCRIPT_TMP echo "exec $DATADIR/timberc \${1+\"\$@\"} --datadir $DATADIR" >> $SCRIPT_TMP chmod 755 $SCRIPT_TMP++# Grep reports BUILDROOT inside our object files; disable that test.+QA_SKIP_BUILD_ROOT=1+export QA_SKIP_BUILD_ROOT  %clean rm -rf ${RPM_BUILD_ROOT}