diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,16 @@
+New in 0.1.5
+------------
+
+* Changed '#' to Set for the type of types
+  - old syntax works, but is deprecated and will be removed soon.
+* 'syntax' definitions
+* %spec works in pattern clauses as well as CAFs
+* Added 'Proof' type for marking computationally irrelevant terms.
+* Added List permutation proofs to the library (perm.idr)
+* Various new functions in the library.
+* Lots of bug fixes
+
+New in 0.1.4
+------------
+
+* Namespaces
diff --git a/Idris/AbsSyntax.lhs b/Idris/AbsSyntax.lhs
--- a/Idris/AbsSyntax.lhs
+++ b/Idris/AbsSyntax.lhs
@@ -49,7 +49,8 @@
 >           | CLib String | CInclude String
 >           | Fixity String Fixity Int
 >           | Transform RawTerm RawTerm
->           | Freeze Id
+>           | SynDef Id [Id] RawTerm 
+>           | Freeze String Int [Id] Id
 >    deriving Show
 
 Flags for controlling compilation. In particular, some functions exist only
@@ -80,7 +81,8 @@
 
 > data UserOps = UO { fixityDecls :: Fixities,
 >                     transforms :: [(ViewTerm, ViewTerm)],
->                     frozen :: [Id] }
+>                     frozen :: [Id],
+>                     syndefs :: [Syntax] }
 >              deriving Show
 
 Function types and clauses are given separately, so we'll parse them
@@ -100,7 +102,6 @@
 >                | PDoUsing (Id, Id) [ParseDecl]
 >                | PIdiom (Id, Id) [ParseDecl]
 >                | PNamespace Id [ParseDecl]
->                | PSyntax Id [Id] RawTerm 
 >    deriving Show
 
 > collectDecls :: [ParseDecl] -> Result [Decl]
@@ -148,7 +149,6 @@
 >                   Success d ->
 >                       cds ((Idiom up ua d):rds) fwds ds
 >                   failure -> failure
->         cds rds fwds ((PSyntax name args to):ds) = cds rds fwds ds -- TODO
 >         cds rds fwds (d:ds) = fail $ "Invalid declaration: " ++ show d
 >         cds rds fwds [] = return (reverse rds)
 
@@ -238,6 +238,7 @@
 Raw terms, as written by the programmer with no implicit arguments added.
 
 > data RawTerm = RVar String Int Id
+>              | RVars String Int [Id]
 >              | RExpVar String Int Id -- variable with all explicit args
 >              | RApp String Int RawTerm RawTerm
 >              | RAppImp String Int Id RawTerm RawTerm -- Name the argument we make explicit
@@ -255,7 +256,7 @@
 >              | RError String Int String -- Hackety. Found an error in processing, report when you can.
 >    deriving (Show, Eq)
 
-> data RBinder = Pi Plicit Laziness RawTerm
+> data RBinder = Pi Plicit [ArgOpt] RawTerm
 >              | Lam RawTerm
 >              | RLet RawTerm RawTerm
 >    deriving (Show, Eq)
@@ -263,7 +264,7 @@
 > data Plicit = Im | Ex
 >    deriving (Show, Eq, Enum)
 
-> data Laziness = Lazy | Eager
+> data ArgOpt = Lazy | Static
 >    deriving (Show, Eq, Enum)
 
 > data Do = DoBinding String Int Id RawTerm RawTerm
@@ -273,6 +274,7 @@
 
 > data ITactic = Intro [Id]
 >              | Refine Id
+>              | Exists RawTerm
 >              | Generalise RawTerm
 >              | ReflP
 >              | Induction RawTerm
@@ -288,17 +290,22 @@
 >              | Decide RawTerm
 >              | Undo
 >              | Abandon
+>              | ProofTerm
 >              | RunTactic RawTerm -- tactic computed from lib/tactics.idr
 >              | Qed
 >     deriving (Show, Eq)
 
-> getLazy :: RawTerm -> [Int]
-> getLazy tm = gl' 0 tm
->   where gl' i (RBind n (Pi _ Lazy _) sc) = i:(gl' (i+1) sc)
->         gl' i (RBind n (Pi Ex Eager _) sc) = gl' (i+1) sc
->         gl' i (RBind n (Pi Im Eager _) sc) = gl' i sc
+> getArgOpt :: ArgOpt -> RawTerm -> [Int]
+> getArgOpt ao tm = gl' 0 tm
+>   where gl' i (RBind n (Pi _ opts _) sc) 
+>               | ao `elem` opts = i:(gl' (i+1) sc)
+>         gl' i (RBind n (Pi Ex _ _) sc) = gl' (i+1) sc
+>         gl' i (RBind n (Pi Im _ _) sc) = gl' i sc
 >         gl' i x = []
 
+> getLazy = getArgOpt Lazy
+> getStatic = getArgOpt Static
+
 > mkLazy :: ViewTerm -> ViewTerm
 > mkLazy t = App (App (Name Unknown (name "__lazy")) Placeholder) t
 
@@ -372,7 +379,7 @@
 >     show (Bo b) = show b
 >     show (Ch c) = show c
 >     show (Fl d) = show d
->     show TYPE = "#"
+>     show TYPE = "Set"
 >     show IntType = "Int"
 >     show FloatType = "Float"
 >     show CharType = "Char"
@@ -384,8 +391,9 @@
 typechecker and compiler need to know how to run. First we have the usual set of infix 
 operators (plus John Major equality):
 
-> data Op = Plus | Minus | Times | Divide | Concat | JMEq
->         | OpEq | OpLT | OpLEq | OpGT | OpGEq | OpOr | OpAnd
+> data Op = Plus  | Minus | Times | Divide | Concat | JMEq
+>         | OpEq  | OpLT  | OpLEq | OpGT   | OpGEq  | OpOr 
+>         | OpAnd | ShL   | ShR
 
 Then built-in functions for coercing between types
 
@@ -398,7 +406,8 @@
 >         | StringHead | StringTail | StringCons
 >    deriving (Eq, Enum)
 
-> allOps = [Plus,Minus,Times,Divide,Concat,JMEq,OpEq,OpLT,OpLEq,OpGT,OpGEq]
+> allOps = [Plus,Minus,Times,Divide,Concat,ShL,ShR,
+>           JMEq,OpEq,OpLT,OpLEq,OpGT,OpGEq]
 
 > instance Show Op where
 >     show Plus = "+"
@@ -414,6 +423,8 @@
 >     show OpGEq = ">="
 >     show OpOr = "||"
 >     show OpAnd = "&&"
+>     show ShL = "<<"
+>     show ShR = ">>"
 
 > opFn Plus = (name "__addInt")
 > opFn Minus = (name "__subInt")
@@ -428,6 +439,8 @@
 > opFn OpGEq = (name "__intgeq")
 > opFn OpOr = (name "__or")
 > opFn OpAnd = (name "__and")
+> opFn ShL = (name "__shl")
+> opFn ShR = (name "__shr")
 
 > opFn ToInt = (name "__toInt")
 > opFn ToString = (name "__toString")
@@ -470,7 +483,8 @@
 >       ivorDef :: Maybe IvorDef,
 >       rawDecl :: Decl, -- handy to keep around for display + extra data
 >       funFlags :: [CGFlag],
->       lazyArgs :: [Int]
+>       lazyArgs :: [Int],
+>       staticArgs :: [Int]
 >     }
 >              | IvorProblem String
 >    deriving Show
@@ -483,10 +497,11 @@
 >                      [(Name, (ViewTerm, Patterns))]
 > getRawPatternDefs raw ctxt = gdefs (ctxtAlist raw) where
 >     gdefs [] = []
->     gdefs ((n, IvorFun _ _ _ _ (decl@(LatexDefs _)) _ _):ds) = gdefs ds
->     gdefs ((n, IvorFun _ _ _ _ (decl@(Fixity _ _ _)) _ _):ds) = gdefs ds
->     gdefs ((n, IvorFun _ _ _ _ (decl@(Transform _ _)) _ _):ds) = gdefs ds
->     gdefs ((n, IvorFun _ _ _ _ (decl@(Freeze _)) _ _):ds) = gdefs ds
+>     gdefs ((n, IvorFun _ _ _ _ (decl@(LatexDefs _)) _ _ _):ds) = gdefs ds
+>     gdefs ((n, IvorFun _ _ _ _ (decl@(Fixity _ _ _)) _ _ _):ds) = gdefs ds
+>     gdefs ((n, IvorFun _ _ _ _ (decl@(Transform _ _)) _ _ _):ds) = gdefs ds
+>     gdefs ((n, IvorFun _ _ _ _ (decl@(SynDef _ _ _)) _ _ _):ds) = gdefs ds
+>     gdefs ((n, IvorFun _ _ _ _ (decl@(Freeze _ _ _ _)) _ _ _):ds) = gdefs ds
 >     gdefs ((n, ifun):ds)
 >        = let Just iname = ivorFName ifun in
 >             case (ivorFType ifun, ivorDef ifun) of
@@ -514,6 +529,12 @@
 >                        (Maybe (ViewTerm -> ViewTerm)) 
 >                        (Maybe TransData)
 
+A syntax definition is a syntax level transformation from one term to another
+(macros, essentially).
+
+> data Syntax = Syntax Id [Id] RawTerm
+>   deriving Show
+
 Concrete transformation data, used for rebuilding constructor transforms
 
 > data TransData = Force (Maybe (Name, Name)) Int Name [Name] 
@@ -531,11 +552,13 @@
 >       idris_options :: [Opt], -- global options
 >       idris_fixities :: UserOps, -- infix operators and precedences
 >       idris_transforms :: [Transform], -- optimisations
->       idris_imports :: [FilePath] -- included files
+>       idris_syntax :: [Syntax], -- syntax macros
+>       idris_imports :: [FilePath], -- included files
+>       idris_names :: [(Name, Id)] -- map ivor names back to idris names
 >     }
 
 > initState :: [Opt] -> IdrisState
-> initState opts = IState newCtxt [] [] opts (UO [] [] []) [] []
+> initState opts = IState newCtxt [] [] opts (UO [] [] [] []) [] [] [] []
 
 Add implicit arguments to a raw term representing a type for each undefined 
 name in the scope, returning the number of implicit arguments the resulting
@@ -586,7 +609,7 @@
 >                             if (i `elem` nms) then return ()
 >                                 else put (i:nms, tot+1)
 >               | otherwise = return ()
->           addImplB env (RApp _ _ f a) argpos
+>           addImplB env ap@(RApp _ _ f a) argpos
 >                    = do addImplB env f False
 >                         addImplB env a True
 >           addImplB env (RAppImp _ _ _ f a) argpos 
@@ -626,7 +649,7 @@
 >           pibind :: Plicit -> [(Id, RawTerm)] -> RawTerm -> RawTerm
 >           pibind plicit [] raw = raw
 >           pibind plicit ((n, ty):ns) raw
->                      = RBind n (Pi plicit Eager ty) (pibind plicit ns raw)
+>                      = RBind n (Pi plicit [] ty) (pibind plicit ns raw)
 
 >           parambind :: [(Id, RawTerm)] -> RawTerm -> RawTerm
 >           parambind xs (RBind n b@(Pi Im strict ty) sc) = RBind n b (parambind xs sc)
@@ -646,11 +669,23 @@
 > toIvorName :: Id -> Name
 > toIvorName i = name (show i)
 
-> fromIvorName :: Name -> Id
-> fromIvorName i = UN (show i)
+Lookup the original Idris name of a name from Ivor. Makes up a name if
+the name doesn't exist.
 
-For desugaring do blocks and idiom brackets
+> fromIvorName :: IdrisState -> Name -> Id
+> fromIvorName ist i = case lookup i (idris_names ist) of
+>                        Just n -> n
+>                        _ -> UN (show i)
 
+Make up a plausible Idris name from a name from Ivor (only really useful
+for display purposes, or if it really doesn't matter whether the name exists 
+or not)
+
+> fromIvorName_ :: Name -> Id
+> fromIvorName_ i = UN (show i)
+
+For desugaring -- do blocks, idiom brackets and syntax definitions
+
 > data UndoInfo = UI Id Int -- bind, bind implicit
 >                    Id Int -- return, return implicit
 >                    Id Int -- pure, pure implicit
@@ -711,14 +746,16 @@
 
 > defDo = UI bindName 2 retName 1 retName 1 applyName 2
 
-> toIvor :: UndoInfo -> Id -> RawTerm -> ViewTerm
-> toIvor ui fname tm = evalState (toIvorS tm) (0,1)
+> toIvor :: UserOps -> UndoInfo -> Id -> RawTerm -> ViewTerm
+> toIvor uo ui fname tm = evalState (toIvorS tm) (0,1)
 >   where
 >     toIvorS :: RawTerm -> State (Int, Int) ViewTerm
 >     toIvorS (RVar f l n) = return $ Annotation (FileLoc f l) (Name Unknown (toIvorName n))
->     toIvorS (RApp file line f a) = do f' <- toIvorS f
->                                       a' <- toIvorS a
->                                       return (Annotation (FileLoc file line) (App f' a'))
+>     toIvorS (RVars f l ns) = return $ Annotation (FileLoc f l) (Overloaded (map toIvorName ns))
+>     toIvorS ap@(RApp file line f a)
+>            = do f' <- toIvorS f
+>                 a' <- toIvorS a
+>                 return (Annotation (FileLoc file line) (App f' a'))
 >     toIvorS (RBind (MN "X" 0) (Pi _ _ ty) sc) 
 >            = do ty' <- toIvorS ty
 >                 sc' <- toIvorS sc
@@ -794,38 +831,44 @@
 > makeIvorTerm :: Implicit -> UndoInfo -> UserOps -> Id -> Ctxt IvorFun -> RawTerm -> ViewTerm
 > makeIvorTerm using ui uo n ctxt tm 
 >                  = let expraw = addPlaceholders ctxt using uo tm in
->                                 toIvor ui n expraw
+>                                 toIvor uo ui n expraw
 
 Add placeholders so that implicit arguments can be filled in. Also desugar user infix apps.
 FIXME: I think this'll fail if names are shadowed.
 
 > addPlaceholders :: Ctxt IvorFun -> Implicit -> UserOps -> RawTerm -> RawTerm
-> addPlaceholders ctxt using (UO uo _ _) tm = ap [] tm
+> addPlaceholders ctxt using (UO uo _ _ syns) tm = ap [] tm
 >     -- Count the number of args we've made explicit in an application
 >     -- and don't add placeholders for them. Reset the counter if we get
 >     -- out of an application
->     where ap ex (RVar f l n)
->               = case ctxtLookupName ctxt (thisNamespace using) n of
->                   Right (IvorFun _ (Just ty) imp _ _ _ _, fulln) -> 
+>     where ap ex v@(RVar f l n)
+>            = case doSynN f l n syns of
+>               RVar _ _ n ->
+>                 case ctxtLookupName ctxt (thisNamespace using) n of
+>                   Right (IvorFun _ (Just ty) imp _ _ _ _ _, fulln) -> 
 >                     let pargs = case lookup n pnames of
 >                                   Nothing -> []
 >                                   Just ids -> map (RVar f l) ids in
 >                     mkApp f l (RVar f l fulln)
 >                               ((mkImplicitArgs 
 >                                (map fst (fst (getBinders ty []))) imp ex) ++ pargs)
->                   Left err@(Ambiguous _ _) -> RError f l (show err)
+>                   Left err@(Ambiguous _ ns) -> RError f l (show err) -- RVars f l ns
 >                   Left err@(WrongNamespace _ _) -> RError f l (show err)
 >                   Right (_, fulln) -> RVar f l fulln
 >                   _ -> RVar f l n
+>               t -> ap ex t
 >           ap ex (RExpVar f l n)
 >               = case ctxtLookupName ctxt (thisNamespace using) n of
->                   Right (IvorFun _ (Just ty) imp _ _ _ _, fulln) -> RVar f l fulln
+>                   Right (IvorFun _ (Just ty) imp _ _ _ _ _, fulln) -> RVar f l fulln
 >                   Left err@(Ambiguous _ _) -> RError f l (show err)
 >                   Left err@(WrongNamespace _ _) -> RError f l (show err)
 >                   Right (_, fulln) -> RVar f l fulln
 >                   _ -> RVar f l n
 >           ap ex (RAppImp file line n f a) = (ap ((toIvorName n,(ap [] a)):ex) f)
->           ap ex (RApp file line f a) = (RApp file line (ap ex f) (ap [] a))
+>           ap ex app@(RApp file line f a) = 
+>               case doSyn app syns f [a] of
+>                   RApp _ _ f a -> RApp file line (ap ex f) (ap [] a)
+>                   t -> ap ex t
 >           ap ex (RBind n (Pi p l ty) sc)
 >               = RBind n (Pi p l (ap [] ty)) (ap [] sc)
 >           ap ex (RBind n (Lam ty) sc)
@@ -850,6 +893,34 @@
 
 >           pnames = paramNames using
 
+>           doSyn o syns (RApp _ _ f a) args = doSyn o syns f (a:args)
+>           doSyn o syns v args 
+>                = case ap [] v of
+>                      RVar f l n -> 
+>                        case findSyn n syns of
+>                          Just (a, rhs) -> replSyn f l rhs (zip a args)
+>                          Nothing -> o
+>                      _ -> o
+
+>           doSynN f l n syns = case findSyn n syns of
+>                             Just ([], rhs) -> replSyn f l rhs []
+>                             _ -> RVar f l n
+
+>           findSyn n [] = Nothing
+>           findSyn n ((Syntax f as rhs):xs) | n == f = Just (as, rhs)
+>                                            | otherwise = findSyn n xs
+
+>           replSyn f l t@(RVar _ _ n) as = case lookup n as of
+>                                             Just v -> v
+>                                             Nothing -> RVar f l n
+>           replSyn f l (RApp _ _ fn a) as 
+>                 = RApp f l (replSyn f l fn as) (replSyn f l a as)
+>           replSyn f l (RInfix _ _ op x y) as 
+>                 = RInfix f l op (replSyn f l x as) (replSyn f l y as)
+>           replSyn f l (RAppImp _ _ x fn a) as
+>                 = RAppImp f l x (replSyn f l fn as) (replSyn f l a as)
+>           replSyn _ _ x _ = x
+
 Go through the arguments; if an implicit argument has the same name as one
 in our list of explicit names to add, add it.
 
@@ -923,7 +994,7 @@
 
 > dump :: Ctxt IvorFun -> String
 > dump ctxt = concat $ map dumpFn (ctxtAlist ctxt)
->   where dumpFn (_,IvorFun n ty imp def _ _ _) =
+>   where dumpFn (_,IvorFun n ty imp def _ _ _ _) =
 >             show n ++ " : " ++ show ty ++ "\n" ++
 >             "   " ++ show imp ++ " implicit\n" ++
 >             show def ++ "\n\n"
@@ -968,7 +1039,7 @@
 >            _ -> unwind (RVar "[val]" 0 (mkRName v)) args
 >     unI (App f a) args = unI f ((unI a []):args)
 >     unI (Lambda v ty sc) args = unwind (RBind (mkRName v) (Lam (unI ty [])) (unI sc [])) args
->     unI (Forall v ty sc) args = unwind (RBind (mkRName v) (Pi Ex Eager (unI ty [])) (unI sc [])) args
+>     unI (Forall v ty sc) args = unwind (RBind (mkRName v) (Pi Ex [] (unI ty [])) (unI sc [])) args
 >     unI (Let v ty val sc) args = unwind (RBind (mkRName v) 
 >                                          (RLet (unI val []) (unI ty [])) 
 >                                          (unI sc [])) args
@@ -976,6 +1047,9 @@
 >     unI (Constant c) [] = let try f = fmap (RConst "[val]" 0 . f) $ cast c
 >                           in  fromJust $ msum [try Num, try Str, try Ch, try Fl]
 >     unI (Annotation _ x) args = unI x args
+>     unI (Metavar n) args = RMetavar (mkRName n)
+>     unI Placeholder args = RPlaceholder
+>     unI x args = error (show x)
 
 >     unwind = mkImpApp "[val]" 0 0 []
 
diff --git a/Idris/Compiler.lhs b/Idris/Compiler.lhs
--- a/Idris/Compiler.lhs
+++ b/Idris/Compiler.lhs
@@ -52,7 +52,7 @@
 >                       = -- trace (show (x,def)) $
 >                         let lifted = lambdaLift ctxt ist x args def
 >                             scfuns = map (\ (n,args,sc) -> 
->                                          (n, scFun ctxt ist (fromIvorName n) args sc)) lifted
+>                                          (n, scFun ctxt ist (fromIvorName ist n) args sc)) lifted
 >                             xs' = allSCs xs in
 >                             mkGen gen scfuns ++ xs'
 >          mkGen gen ((n, d):ds) = (n,gen,d):(mkGen True ds)
@@ -226,6 +226,8 @@
 >   writeSC' (SApp (SVar n) [arg1, arg2])
 >     | n == name "__strEq" =
 >         "__epic_streq("++writeSC' arg1++", " ++ writeSC' arg2 ++ ")"
+>     | n == name "__charEq" =
+>         "__epic_chareq("++writeSC' arg1++", " ++ writeSC' arg2 ++ ")"
 >     | n == name "__strLT" =
 >         "__epic_strlt("++writeSC' arg1++", " ++ writeSC' arg2 ++ ")"
 
diff --git a/Idris/ConTrans.lhs b/Idris/ConTrans.lhs
--- a/Idris/ConTrans.lhs
+++ b/Idris/ConTrans.lhs
@@ -55,7 +55,7 @@
 
 >          lhsSafe (Trans nm _ _) = not (isSuffixOf "_ID" nm)
 
-> allTrans ts tm = foldl (\tm (l,r) -> Ivor.ViewTerm.transform l r tm) tm ts
+> allTrans ts tm = foldl (\tm (l,r) -> Ivor.ViewTerm.transform l r tm) tm (ts++ts)
 
 Look at all the definitions in the context, and make the relevant constructor
 transformations for forcing, detagging and collapsing.
@@ -126,7 +126,7 @@
 >          forceable = nub (map (\ (x,y) -> (x, force ctxt y acc, Ivor.TT.getArgTypes y)) cons)
 >          detaggable = pdisjoint ctxt detagin
 >          recursive = nub (map (\ (x,y) -> (x, recArgs n y acc, Ivor.TT.getArgTypes y)) cons)
->          collapsible = detaggable && all droppedAll (combine forceable recursive)
+>          collapsible = (detaggable && all droppedAll (combine forceable recursive)) || (n == name "Proof")
 >          nattable = isNat forceable recursive
 >               in
 >          -- trace (show n ++ " " ++ show (nattable) ++ " " ++ show (forceable, recursive)) $ -- FORCING \n\t" ++ show forceable) 
diff --git a/Idris/Fontlock.lhs b/Idris/Fontlock.lhs
--- a/Idris/Fontlock.lhs
+++ b/Idris/Fontlock.lhs
@@ -73,7 +73,7 @@
 >             "import","export","inline","where","partial","syntax","lazy",
 >             "infix","infixl","infixr","do","refl","if","then","else","let",
 >             "in","return","include","exists", "with"]
-> types = ["String","Int","Char","Float","Ptr","Lock","Handle"]
+> types = ["String","Int","Char","Float","Ptr","Lock","Handle","Set"]
 
 > markupSpecial ms cs = case span isAllowed cs of
 >      (var,rest) -> (None, '%':var):(markupText ms rest)
diff --git a/Idris/LambdaLift.lhs b/Idris/LambdaLift.lhs
--- a/Idris/LambdaLift.lhs
+++ b/Idris/LambdaLift.lhs
@@ -280,7 +280,7 @@
 
 > scapply ist (SVar n) args
 >         = let raw = idris_context ist in
->           case ctxtLookup raw [] (fromIvorName n) of
+>           case ctxtLookup raw [] (fromIvorName ist n) of
 >             Left _ -> SApp (SVar n) args
 >             Right ifn -> let ia = implicitArgs ifn
 >                              lz = lazyArgs ifn 
@@ -288,7 +288,7 @@
 >                              SApp (SVar n) args'
 > scapply ist (SCon n i) args
 >         = let raw = idris_context ist in
->           case ctxtLookup raw [] (fromIvorName n) of
+>           case ctxtLookup raw [] (fromIvorName ist n) of
 >             Left _ -> SApp (SCon n i) args
 >             Right ifn -> let ia = implicitArgs ifn
 >                              lz = lazyArgs ifn 
diff --git a/Idris/Latex.lhs b/Idris/Latex.lhs
--- a/Idris/Latex.lhs
+++ b/Idris/Latex.lhs
@@ -25,17 +25,17 @@
 >         = case lookup n (defs++ldefs) of
 >             Just l -> l
 >             Nothing -> case ctxtLookup ctxt [] n of
->                          Right (IvorFun _ _ _ _ d _ _) -> ty d (show n)
+>                          Right (IvorFun _ _ _ _ d _ _ _) -> ty d (show n)
 >                          Left _ -> "\\VV{" ++ show n ++ "}"
 >         where ty (DataDecl _) n = "\\TC{" ++ n ++ "}"          
 >               ty Constructor n = "\\DC{" ++ n ++ "}"
 >               ty _ n = "\\FN{" ++ n ++ "}"
 >               ldefs = case ctxtLookup ctxt [] (MN "latex" 0) of
->                         Right (IvorFun _ _ _ _ (LatexDefs ds) _ _) -> ds
+>                         Right (IvorFun _ _ _ _ (LatexDefs ds) _ _ _) -> ds
 >                         Left _ -> []
 
 > instance LaTeX IvorFun where
->     latex ctxt defs (IvorFun nm ty _ _ decl _ _) = latex ctxt defs decl
+>     latex ctxt defs (IvorFun nm ty _ _ decl _ _ _) = latex ctxt defs decl
 
 > instance LaTeX Decl where
 >     latex ctxt defs (DataDecl (Datatype id ty cons _ _ _ _))
diff --git a/Idris/Lexer.hs b/Idris/Lexer.hs
--- a/Idris/Lexer.hs
+++ b/Idris/Lexer.hs
@@ -80,6 +80,7 @@
       | TokenPartial
       | TokenSyntax
       | TokenLazy
+      | TokenStatic
       | TokenWhere
       | TokenWith
       | TokenType
@@ -95,7 +96,7 @@
       | TokenCSB
       | TokenOId
       | TokenCId
-      | TokenExists
+--      | TokenExists
       | TokenConcat
       | TokenTilde
       | TokenPlus
@@ -149,6 +150,7 @@
       | TokenProof
       | TokenIntro
       | TokenRefine
+      | TokenExists
       | TokenGeneralise
       | TokenReflP
       | TokenRewrite
@@ -164,6 +166,7 @@
       | TokenUse
       | TokenDecide
       | TokenAbandon
+      | TokenProofTerm
       | TokenQED
 -- Directives
       | TokenLaTeX
@@ -287,11 +290,13 @@
       ("partial",rest) -> cont TokenPartial rest
       ("syntax",rest) -> cont TokenSyntax rest
       ("lazy",rest) -> cont TokenLazy rest
+      ("static",rest) -> cont TokenStatic rest
       ("infix",rest) -> cont TokenInfix rest
       ("infixl",rest) -> cont TokenInfixL rest
       ("infixr",rest) -> cont TokenInfixR rest
       ("exists",rest) -> cont TokenExists rest
 -- Types
+      ("Set",rest) -> cont TokenType rest
       ("Int",rest) -> cont TokenIntType rest
       ("Char",rest) -> cont TokenCharType rest
       ("Float",rest) -> cont TokenFloatType rest
@@ -364,6 +369,7 @@
 -- don't need the ugly syntax...
       ("intro",rest) -> cont TokenIntro rest
       ("refine",rest) -> cont TokenRefine rest
+      ("exists",rest) -> cont TokenExists rest
       ("generalise",rest) -> cont TokenGeneralise rest
       ("refl",rest) -> cont TokenReflP rest
       ("rewrite",rest) -> cont TokenRewrite rest
@@ -379,6 +385,7 @@
       ("use", rest) -> cont TokenUse rest
       ("decide", rest) -> cont TokenDecide rest
       ("abandon", rest) -> cont TokenAbandon rest
+      ("prf", rest) -> cont TokenProofTerm rest
       ("qed", rest) -> cont TokenQED rest
       (thing,rest) -> lexError '%' rest
 
diff --git a/Idris/MakeTerm.lhs b/Idris/MakeTerm.lhs
--- a/Idris/MakeTerm.lhs
+++ b/Idris/MakeTerm.lhs
@@ -20,23 +20,25 @@
 >     = let (rty, imp) = addImplWith using ctxt ty
 >           ity = makeIvorTerm using ui uo n ctxt rty
 >           extCtxt = addEntry ctxt (thisNamespace using) n (IvorFun Nothing (Just ity) 
->                                       imp Nothing decl flags (getLazy ty))
+>                                       imp Nothing decl flags (map (+p) (getLazy ty)) (map (+p) (getStatic ty)))
 >           pclauses = map (mkPat extCtxt imp) clauses in
 >       IvorFun (Just (toIvorName (fullName using n))) 
 >                   (Just (Annotation (FileLoc file line) ity)) imp 
->                   (Just (PattDef (Patterns pclauses))) decl flags (getLazy ty)
->   where mkPat ectx imp (id,(RawClause lhs rhs)) 
+>                   (Just (PattDef (Patterns pclauses))) decl flags 
+>                   (map (+p) (getLazy ty)) (map (+p) (getStatic ty))
+>   where p = length (params using)
+>         mkPat ectx imp (id,(RawClause lhs rhs)) 
 >               = let lhs' = addPlaceholders ectx using uo lhs in
 >                     case (getFn lhs', getRawArgs lhs') of
 >                          (fid, pats) ->
->                            let vpats = map (toIvor ui n) pats
+>                            let vpats = map (toIvor uo ui n) pats
 >                                vrhs = makeIvorTerm using ui uo n ectx rhs in
 >                                PClause vpats [] vrhs
 >         mkPat ectx imp (id,(RawWithClause lhs prf scr def))
 >               = let lhs' = addPlaceholders ectx using uo lhs in
 >                     case (getFn lhs', getRawArgs lhs') of
 >                          (fid, pats) ->
->                            let vpats = map (toIvor ui n) pats
+>                            let vpats = map (toIvor uo ui n) pats
 >                                vscr = makeIvorTerm using ui uo n ectx scr
 >                                vdef = Patterns $ map (mkPat ectx imp) (zip (repeat id) def) in
 >                                PWithClause prf vpats vscr vdef
@@ -98,17 +100,17 @@
 >            mif opt ctxt (addEntry acc (thisNamespace using) n 
 >                         (IvorFun (Just (toIvorName (fullName using n))) 
 >                            (Just (Annotation (FileLoc file line) ity))
->                              imp (Just Later) decl flags (getLazy ty))) using ui uo ds
+>                              imp (Just Later) decl flags (getLazy ty) (getStatic ty))) using ui uo ds
 > mif opt ctxt acc using' ui uo (decl@(DataDecl d):ds) 
 >      = let using = addParamName using' (tyId d) in
 >            addDataEntries opt ctxt acc decl d using ui uo ds -- will call mif on ds
-> mif opt ctxt acc using ui uo@(UO _ trans _) (decl@(TermDef n tm flags):ds) 
+> mif opt ctxt acc using ui uo@(UO _ trans _ _) (decl@(TermDef n tm flags):ds) 
 >     | null $ params using
 >         = let (itmraw, imp) = addImplWith using (appCtxt ctxt acc) tm
 >               itm = makeIvorTerm using ui uo n (appCtxt ctxt acc) itmraw in
 >               mif opt ctxt (addEntry acc (thisNamespace using) n 
 >                   (IvorFun (Just (toIvorName (fullName using n))) Nothing imp 
->                            (Just (SimpleDef itm)) decl flags [])) using ui uo ds
+>                            (Just (SimpleDef itm)) decl flags [] [])) using ui uo ds
 >     | otherwise = let (f,l) = getFileLine tm in
 >                       mif opt ctxt (addEntry acc (thisNamespace using) n 
 >                                (IvorProblem (f ++ ":" ++ show l ++ ":" ++
@@ -116,12 +118,12 @@
 >                                 using ui uo ds
 > mif opt ctxt acc using ui uo (decl@(LatexDefs ls):ds) 
 >         = mif opt ctxt (addEntry acc (thisNamespace using) (MN "latex" 0) 
->              (IvorFun Nothing Nothing 0 Nothing decl [] [])) using ui uo ds
-> mif opt ctxt acc using ui (UO fix trans fr) (decl@(Fixity op assoc prec):ds) 
+>              (IvorFun Nothing Nothing 0 Nothing decl [] [] [])) using ui uo ds
+> mif opt ctxt acc using ui (UO fix trans fr syns) (decl@(Fixity op assoc prec):ds) 
 >         = mif opt ctxt (addEntry acc (thisNamespace using) (MN "fixity" (length ds)) 
->              (IvorFun Nothing Nothing 0 Nothing decl [] [])) using ui 
->                   (UO ((op,(assoc,prec)):fix) trans fr) ds
-> mif opt ctxt acc using ui uo@(UO fix trans fr) (decl@(Transform lhs rhs):ds) 
+>              (IvorFun Nothing Nothing 0 Nothing decl [] [] [])) using ui 
+>                   (UO ((op,(assoc,prec)):fix) trans fr syns) ds
+> mif opt ctxt acc using ui uo@(UO fix trans fr syns) (decl@(Transform lhs rhs):ds) 
 >         = let lhsraw = addPlaceholders (appCtxt ctxt acc) using uo lhs
 >               rhsraw = addPlaceholders (appCtxt ctxt acc) using uo rhs
 >               lhstm = makeIvorTerm using ui uo (MN "LHS" 0) ctxt lhsraw
@@ -129,26 +131,31 @@
 >               trans' = if (NoSpec `elem` opt) then trans else
 >                            (lhstm,rhstm):trans in
 >           mif opt ctxt (addEntry acc (thisNamespace using) (MN "transform" (length ds)) 
->              (IvorFun Nothing Nothing 0 Nothing decl [] [])) using ui 
->                   (UO fix trans' fr) ds
+>              (IvorFun Nothing Nothing 0 Nothing decl [] [] [])) using ui 
+>                   (UO fix trans' fr syns) ds
+> mif opt ctxt acc using ui uo@(UO fix trans fr syns) (decl@(SynDef f args rhs):ds) 
+>         = let sname = mkName (thisNamespace using) f in
+>               mif opt ctxt (addEntry acc (thisNamespace using) f
+>                 (IvorFun Nothing Nothing 0 Nothing decl [] [] []))
+>               using ui (UO fix trans fr ((Syntax sname args rhs):syns)) ds
 
 Don't add yet! Or everything will be frozen in advance, rather than being 
 frozen after they are needed.
 
-> mif opt ctxt acc using ui uo@(UO fix trans fr) (decl@(Freeze frfn):ds) 
+> mif opt ctxt acc using ui uo@(UO fix trans fr syns) (decl@(Freeze _ _ _ _):ds) 
 >     = mif opt ctxt (addEntry acc (thisNamespace using) (MN "freeze" (length ds))
->                 (IvorFun Nothing Nothing 0 Nothing decl [] [])) using ui 
->                 (UO fix trans fr) ds
+>                 (IvorFun Nothing Nothing 0 Nothing decl [] [] [])) using ui 
+>                 (UO fix trans fr syns) ds
 > mif opt ctxt acc using ui uo (decl@(Prf (Proof n _ scr)):ds) 
 >     = case ctxtLookup acc (thisNamespace using) n of
 >          Left _ -> -- add the script and process the type later, should
 >                    -- be a metavariable
 >             mif opt ctxt (addEntry acc (thisNamespace using) n
->               (IvorFun (Just (toIvorName (fullName using n))) Nothing 0 (Just (IProof scr)) decl [] [])) 
+>               (IvorFun (Just (toIvorName (fullName using n))) Nothing 0 (Just (IProof scr)) decl [] [] [])) 
 >                  using ui uo ds
->          Right (IvorFun _ (Just ty) imp _ _ _ _) -> 
+>          Right (IvorFun _ (Just ty) imp _ _ _ _ _) -> 
 >             mif opt ctxt (addEntry acc (thisNamespace using) n
->               (IvorFun (Just (toIvorName (fullName using n))) (Just ty) imp (Just (IProof scr)) decl [] []))
+>               (IvorFun (Just (toIvorName (fullName using n))) (Just ty) imp (Just (IProof scr)) decl [] [] []))
 >                   using ui uo ds
 
 Just pass these on to epic to do the right thing
@@ -171,18 +178,18 @@
 >     let (tyraw, imp) = addImplWith using (appCtxt ctxt acc) tty
 >         tytm = Annotation (FileLoc f l) $ makeIvorTerm using ui uo tid (appCtxt ctxt acc) tyraw 
 >         acc' = addEntry acc (thisNamespace using) tid 
->                   (IvorFun (Just (toIvorName (fullName using tid))) (Just tytm) imp (Just LataDef) decl [] []) in
+>                   (IvorFun (Just (toIvorName (fullName using tid))) (Just tytm) imp (Just LataDef) decl [] [] []) in
 >         mif opt ctxt acc' using ui uo ds
 > addDataEntries opt ctxt acc decl (Datatype tid tty cons u e f l) using ui uo ds = 
 >     let (tyraw, imp) = addImplWith using (appCtxt ctxt acc) tty
 >         tytm = Annotation (FileLoc f l) $ makeIvorTerm using ui uo tid (appCtxt ctxt acc) tyraw
 >         acctmp = addEntry (appCtxt ctxt acc) (thisNamespace using) tid 
->                     (IvorFun (Just (toIvorName (fullName using tid))) (Just tytm) imp Nothing decl [] [])
+>                     (IvorFun (Just (toIvorName (fullName using tid))) (Just tytm) imp Nothing decl [] [] [])
 >         ddef = makeInductive acctmp tid (getBinders tytm []) cons 
 >                    (addUsing using (Imp u [] [] (thisNamespace using))) ui uo []
 >         acc' = addEntry acc (thisNamespace using) tid 
 >                   (IvorFun (Just (toIvorName (fullName using tid))) (Just tytm) imp 
->                              (Just (DataDef ddef (not (elem NoElim e)))) decl [] []) in
+>                              (Just (DataDef ddef (not (elem NoElim e)))) decl [] [] []) in
 >         addConEntries opt ctxt acc' cons u using ui uo ds f l
 
      Inductive (toIvorName tid) [] 
@@ -270,7 +277,7 @@
 >           (tyraw, imp) = addImplWith (addUsing (Imp u [] [] (thisNamespace using)) using) (appCtxt ctxt acc) ty
 >           tytm = Annotation (FileLoc f l) $ makeIvorTerm using ui uo cid (appCtxt ctxt acc) tyraw
 >           acc' = addEntry acc (thisNamespace using) cid 
->                      (IvorFun (Just (toIvorName (fullName using cid))) (Just tytm) (imp+length (params using')) (Just IDataCon) Constructor [] (getLazy ty)) in
+>                      (IvorFun (Just (toIvorName (fullName using cid))) (Just tytm) (imp+length (params using')) (Just IDataCon) Constructor [] (getLazy ty) (getStatic ty)) in
 >           addConEntries opt ctxt acc' cs u using ui uo ds f l
 
 Add definitions to the Ivor Context. Return the new context and a list
@@ -298,20 +305,24 @@
 >               Ctxt IvorFun -> UserOps -> (Context, [(Name, ViewTerm)]) -> 
 >                (Id, IvorFun) -> 
 >               TTM ((Context, [(Name, ViewTerm)]), UserOps)
-> addIvorDef opt raw uo (ctxt, metas) (n,IvorFun name tyin _ def (LatexDefs _) _ _) 
+> addIvorDef opt raw uo (ctxt, metas) (n,IvorFun name tyin _ def (LatexDefs _) _ _ _) 
 >                = return ((ctxt, metas), uo)
-> addIvorDef opt raw (UO fix trans fr) (ctxt, metas) (n,IvorFun name tyin _ def f@(Fixity op assoc prec) _ _) 
->                = return ((ctxt, metas), UO fix trans fr)
-> addIvorDef opt raw (UO fix trans fr) (ctxt, metas) (n,IvorFun name tyin _ def f@(Transform lhs rhs) _ _)
->                = return ((ctxt, metas), UO fix trans fr)
-> addIvorDef opt raw (UO fix trans fr) (ctxt, metas) (n,IvorFun name tyin _ def f@(Freeze frfn) _ _)
->                = return ((ctxt, metas), UO fix trans (frfn:fr))
-> addIvorDef opt raw uo@(UO fix trans fr) (ctxt, metas) (n,IvorFun (Just name) tyin _ (Just def') _ flags lazy) 
+> addIvorDef opt raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(Fixity op assoc prec) _ _ _) 
+>                = return ((ctxt, metas), UO fix trans fr syns)
+> addIvorDef opt raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(SynDef _ _ _) _ _ _) 
+>                = return ((ctxt, metas), UO fix trans fr syns)
+> addIvorDef opt raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(Transform lhs rhs) _ _ _)
+>                = return ((ctxt, metas), UO fix trans fr syns)
+> addIvorDef opt raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(Freeze file line ns frfn) _ _ _)
+>        = case ctxtLookupName raw ns frfn of
+>            Right (_,fn') -> return ((ctxt, metas), UO fix trans (fn':fr) syns)
+>            Left err -> Left (ErrContext (file ++ ":" ++ show line ++ ":") (Message (show err)))
+> addIvorDef opt raw uo@(UO fix trans fr syns) (ctxt, metas) (n,IvorFun (Just name) tyin _ (Just def') _ flags lazy static) 
 >   = let def = if (Verbose `elem` opt) 
 >                  then trace ("Processing " ++ show n) def' else def' in
 >       case def of
->         PattDef ps -> -- trace (show ps) $
->                       do (ctxt, newdefs) <- addPatternDefSC ctxt name (unjust tyin) ps
+>         PattDef ps -> -- trace (show (ps, getSpec flags fr)) $
+>                       do (ctxt, newdefs) <- addPatternDefSC ctxt name (unjust tyin) ps (getSpec flags fr)
 >                          if (null newdefs) then return ((ctxt, metas), uo)
 >                            else do r <- addMeta (Verbose `elem` opt) raw ctxt metas newdefs
 >                                    return (r, uo)
@@ -332,7 +343,8 @@
 >         LataDef -> case tyin of
 >                       Just ty -> do ctxt <- declareData ctxt name ty
 >                                     return ((ctxt, metas), uo)
->         DataDef ind e -> do c <- addDataNoElim ctxt ind
+>         DataDef ind e -> -- trace (show ind) $
+>                          do c <- addDataNoElim ctxt ind
 >                           -- add once to fill in placeholders
 >                             ctxt <- if e then do
 >                                     d <- getInductive c name 
diff --git a/Idris/Parser.y b/Idris/Parser.y
--- a/Idris/Parser.y
+++ b/Idris/Parser.y
@@ -105,6 +105,7 @@
       partial         { TokenPartial }
       syntax          { TokenSyntax }
       lazy            { TokenLazy }
+      static          { TokenStatic }
       refl            { TokenRefl }
       empty           { TokenEmptyType }
       unit            { TokenUnitType }
@@ -136,6 +137,7 @@
       use             { TokenUse }
       decide          { TokenDecide }
       abandon         { TokenAbandon }
+      proofterm       { TokenProofTerm }
       qed             { TokenQED }
       latex           { TokenLaTeX }
       nocg            { TokenNoCG }
@@ -161,16 +163,16 @@
 %left concat
 %left '\\'
 %right arrow
-%left '(' '{' lazybracket
+%left '(' '{' lazybracket '['
 %nonassoc '.'
 %right IMP
 %nonassoc CONST
 -- All the things I don't want to cause a reduction inside a lam...
 %nonassoc name inttype chartype floattype stringtype int char string float bool refl do type
-          empty unit '_' if then else ptrtype handletype locktype metavar NONE brackname lazy
-          oid '[' '~' lpair PAIR return transarrow exists
+          empty unit '_' ptrtype handletype locktype metavar NONE brackname lazy
+          oid '~' lpair PAIR return transarrow exists
 %left APP
-
+%nonassoc if then else
 
 %%
 
@@ -194,14 +196,14 @@
 Declaration: Function { $1 }
            | Datatype { RealDecl (DataDecl $1) }
            | Latex { RealDecl $1 }
-           | freeze name ';' { RealDecl (Freeze $2) }
+           | freeze name File Line ';' { RealDecl (Freeze $3 $4 [] $2) }
            | Using '{' Program '}' { PUsing $1 $3 }
            | DoUsing '{' Program '}' { PDoUsing $1 $3 } 
            | Idiom '{' Program '}' { PIdiom $1 $3 }
            | Params '{' Program '}' { PParams $1 $3 }
            | Namespace '{' Program '}' { PNamespace $1 $3 }
            | Transform { RealDecl $1 }
-           | syntax Name NamesS '=' Term ';' { PSyntax $2 $3 $5 }
+           | syntax Name NamesS '=' Term ';' { RealDecl (SynDef $2 $3 $5) }
            | cinclude string { RealDecl (CInclude $2) }
            | clib string { RealDecl (CLib $2) }
 
@@ -388,7 +390,7 @@
       | brackname ',' Names { $1:$3 }
 
 NamesS :: { [Id] }
-NamesS : Name { [$1] }
+NamesS : { [] }
        | Name NamesS { $1:$2 }
 
 LetBinds :: { [(Id, RawTerm, RawTerm)] }
@@ -414,7 +416,7 @@
 --          | Term le Term File Line { RInfix $4 $5  OpLEq $1 $3 }
           | Term '>' Term File Line { RUserInfix $4 $5 False ">" $1 $3 }
 --          | Term ge Term File Line { RInfix $4 $5  OpGEq $1 $3 }
-          | Term arrow Term File Line { RBind (MN "X" 0) (Pi Ex Eager $1) $3 }
+          | Term arrow Term File Line { RBind (MN "X" 0) (Pi Ex [] $1) $3 }
           | UserInfixTerm { $1 }
           | NoAppTerm '=' NoAppTerm File Line { RInfix $4 $5 JMEq $1 $3 }
 
@@ -442,14 +444,14 @@
 
         | '(' Term arrow File Line ')'
                { RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex Eager $2) (RVar $4 $5 (MN "X" 0))) }
+                       (RBind (MN "X" 1) (Pi Ex [] $2) (RVar $4 $5 (MN "X" 0))) }
         | '(' arrow Term File Line ')'
                { RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex Eager (RVar $4 $5 (MN "X" 0))) $3) }       
+                       (RBind (MN "X" 1) (Pi Ex [] (RVar $4 $5 (MN "X" 0))) $3) }       
         | '(' arrow File Line ')'
                { RBind (MN "X" 0) (Lam RPlaceholder)
                        (RBind (MN "X" 1) (Lam RPlaceholder)
-                    (RBind (MN "X" 2) (Pi Ex Eager (RVar $3 $4 (MN "X" 0)))
+                    (RBind (MN "X" 2) (Pi Ex [] (RVar $3 $4 (MN "X" 0)))
                        (RVar $3 $4 (MN "X" 1)))) }
 
  -- Special cases for pairing
@@ -487,15 +489,15 @@
 
 Type :: { RawTerm }
 Type : BrackNames MaybeAType '}' arrow Type
-               { doBind (Pi Im Eager) (map (\x -> (x, $2)) $1) $5 }
+               { doBind (Pi Im []) (map (\x -> (x, $2)) $1) $5 }
      | TypeTerm { $1 }
 
 TypeTerm :: { RawTerm }
-TypeTerm : TypeTerm arrow TypeTerm { RBind (MN "X" 0) (Pi Ex Eager $1) $3 }
-         | '(' TypedBinds ')' arrow TypeTerm
-                { doBind (Pi Ex Eager) $2 $5 }
+TypeTerm : TypeTerm arrow TypeTerm { RBind (MN "X" 0) (Pi Ex [] $1) $3 }
+         | '(' TypedBinds ')' ArgOpts arrow TypeTerm
+                { doBind (Pi Ex $4) $2 $6 }
          | lazybracket TypedBinds ')' arrow TypeTerm
-                { doBind (Pi Ex Lazy) $2 $5 }
+                { doBind (Pi Ex [Lazy]) $2 $5 }
          | '(' TypeTerm ')' { bracket $2 }
          | '(' TypeTerm '=' TypeTerm File Line ')' { RInfix $5 $6 JMEq $2 $4 }
          | SimpleAppTerm { $1 }
@@ -504,6 +506,18 @@
          | '(' TypeList ')' File Line { pairDesugar $4 $5 (RVar $4 $5 (UN "Pair")) $2 }
          | SigmaType { $1 }
 
+ArgOpt :: { ArgOpt }
+ArgOpt : lazy { Lazy }
+       | static { Static }
+
+ArgOpts :: { [ArgOpt] }
+ArgOpts : '[' ArgOptList ']' { $2 }
+        | { [] }
+
+ArgOptList :: { [ArgOpt] }
+ArgOptList : ArgOpt ',' ArgOptList { $1:$3 }
+           | ArgOpt { [$1] }
+
 SigmaType :: { RawTerm }
 SigmaType : '(' Name MaybeType stars TypeTerm ')' File Line 
                   { sigDesugar $7 $8 ($2, $3) $5 }
@@ -539,9 +553,9 @@
 
 SigmaTerm :: { RawTerm }
 SigmaTerm : lpair Term ',' Term rpair File Line %prec PAIR
-                { RApp $6 $7 (RAppImp $6 $7 (UN "a") (RVar $6 $7 (UN "Exists")) $2) $4 }
+                { RApp $6 $7 (RApp $6 $7 (RVar $6 $7 (UN "Exists")) $2) $4 }
           | lpair Term rpair File Line %prec PAIR
-                { RApp $4 $5 (RVar $4 $5 (UN "Exists")) $2 }
+                { RApp $4 $5 (RApp $4 $5 (RVar $4 $5 (UN "Exists")) RPlaceholder) $2 }
 
 TermList :: { [RawTerm] }
          : Term ',' Term { $1:$3:[] }
@@ -635,6 +649,7 @@
 Tactic : intro Names { Intro $2 }
        | intro { Intro [] }
        | refine Name { Refine $2 }
+       | exists Term { Exists $2 }
        | generalise Term { Generalise $2 }
        | reflp { ReflP }
        | rewrite Term { Rewrite False False $2 }
@@ -652,6 +667,7 @@
        | use Term { Use $2 }
        | decide Term { Decide $2 }
        | abandon { Abandon }
+       | proofterm { ProofTerm }
        | qed { Qed }
 
 ProofScript :: { [ITactic] }
@@ -723,7 +739,7 @@
 mkCon _ (Full n t) = (n,t)
 mkCon ty (Simple n args) = (n, mkConTy args ty)
    where mkConTy [] ty = ty
-         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex Eager a) (mkConTy as ty)
+         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex [] a) (mkConTy as ty)
 
 mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
    where mkImpApp f [] = f
@@ -745,7 +761,7 @@
 
 mkTyParams :: String -> Int -> [Id] -> RawTerm
 mkTyParams f l [] = RConst f l TYPE
-mkTyParams f l (x:xs) = RBind x (Pi Ex Eager (RConst f l TYPE)) (mkTyParams f l xs)
+mkTyParams f l (x:xs) = RBind x (Pi Ex [] (RConst f l TYPE)) (mkTyParams f l xs)
 
 mkDatatype :: String -> Int ->
               Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
diff --git a/Idris/Prover.lhs b/Idris/Prover.lhs
--- a/Idris/Prover.lhs
+++ b/Idris/Prover.lhs
@@ -102,6 +102,9 @@
 >     at ctxt (Intro ns) = introsNames (map toIvorName ns) defaultGoal ctxt
 >     at ctxt (Refine n) = refine (Name Unknown (toIvorName n)) defaultGoal ctxt
 >     at ctxt (Generalise t) = generalise (ivor t) defaultGoal ctxt
+>     at ctxt (Exists t) = refine (App (App (App (Name Unknown (name "Exists"))
+>                                           Placeholder) Placeholder)
+>                                           (ivor t)) defaultGoal ctxt
 >     at ctxt ReflP = refine reflN defaultGoal ctxt
 >     at ctxt (Fill t) = fill (ivor t) defaultGoal ctxt
 >     at ctxt Trivial = (trivial >|> refine reflN) defaultGoal ctxt
@@ -114,6 +117,8 @@
 >     at ctxt Compute = compute defaultGoal ctxt
 >     at ctxt (Unfold n) = unfold (toIvorName n) defaultGoal ctxt
 >     at ctxt (RunTactic tm) = runtac (ivor tm) defaultGoal ctxt
+>     at ctxt ProofTerm = do tm <- proofterm ctxt
+>                            fail (showVT raw (view tm))
 >     at ctxt Qed = qed ctxt
 
 >     ivor t = makeIvorTerm noImplicit defDo uo (UN "__prf") raw t
diff --git a/Idris/Serialise.lhs b/Idris/Serialise.lhs
--- a/Idris/Serialise.lhs
+++ b/Idris/Serialise.lhs
@@ -93,7 +93,7 @@
 >     get = do t <- get
 >              return (toEnum t)
 
-> instance Binary Laziness where
+> instance Binary ArgOpt where
 >     put x = put (fromEnum x)
 >     get = do t <- get
 >              return (toEnum t)
@@ -205,16 +205,20 @@
 >                            Just a' -> Just (rebuildTrans a')
 >              return (Trans n trans a)
 
+> instance Binary Syntax where
+>     put (Syntax f n t) = do put f; put n; put t
+>     get = liftM3 Syntax get get get
+
 > instance Binary UserOps where
->     put (UO ds ts f) = do put ds; put ts; put f
->     get = do ds <- get; ts <- get; f <- get;
->              return (UO ds ts f)
+>     put (UO ds ts f s) = do put ds; put ts; put f; put s
+>     get = do ds <- get; ts <- get; f <- get; s <- get;
+>              return (UO ds ts f s)
 
 > instance Binary IvorFun where
->     put (IvorFun a b c d e f g) = 
->         do put a; put b; put c; put d; put e; put f; put g;
->     get = do a <- get; b <- get; c <- get; d <- get; e <- get; f <- get; g <- get
->              return (IvorFun a b c d e f g)
+>     put (IvorFun a b c d e f g h) = 
+>         do put a; put b; put c; put d; put e; put f; put g; put h
+>     get = do a <- get; b <- get; c <- get; d <- get; e <- get; f <- get; g <- get; h <- get
+>              return (IvorFun a b c d e f g h)
 
 > instance Binary CGFlag where
 >     put NoCG = put (0 :: Word8)
@@ -247,7 +251,7 @@
 >     put (CInclude d) = do put (12 :: Word8); put d
 >     put (Fixity a b c) = do put (13 :: Word8); put a; put b; put c
 >     put (Transform a b) = do put (14 :: Word8); put a; put b
->     put (Freeze a) = do put (15 :: Word8); put a
+>     put (Freeze a b c d) = do put (15 :: Word8); put a; put b; put c; put d
 
 >     get = do tag <- getWord8
 >              case tag of
@@ -266,7 +270,7 @@
 >                12 -> liftM CInclude get
 >                13 -> liftM3 Fixity get get get
 >                14 -> liftM2 Transform get get
->                15 -> liftM Freeze get
+>                15 -> liftM4 Freeze get get get get
 
 > instance Binary Datatype where
 >     put (Datatype a b c d e f g) = do put (0 :: Word8)
@@ -374,9 +378,9 @@
 >                7 -> return LataDef
 
 > instance Binary IdrisState where
->     put (IState a b c d e f g) 
->        = do put a; put b; put c; put d; put e; put f; put g
+>     put (IState a b c d e f g h i) 
+>        = do put a; put b; put c; put d; put e; put f; put g; put h; put i
 >     get = do a <- get; b <- get; c <- get;
->              d <- get; e <- get; f <- get; g <- get
->              return (IState a b c d e f g)
+>              d <- get; e <- get; f <- get; g <- get; h <- get; i <- get
+>              return (IState a b c d e f g h i)
 
diff --git a/Idris/SimpleCase.lhs b/Idris/SimpleCase.lhs
--- a/Idris/SimpleCase.lhs
+++ b/Idris/SimpleCase.lhs
@@ -49,8 +49,8 @@
 >                    let newname = name (show (MN (show root) i))
 >                    let newfn = (newname, newty, newdef)
 >                    put (i+1, newfn:fns)
->                    trace (show (newname, params, newdef)) $
->                      return (apply (Name Unknown newname) (paramArgs++[scrutinee]))
+>                    -- trace (show (newname, params, newdef)) $
+>                    return (apply (Name Unknown newname) (paramArgs++[scrutinee]))
 >                 else return tm
 >  lc' (App f a) = do f' <- lc' f; a' <- lc' a; return (App f' a')
 >  lc' (Lambda n t sc) 
@@ -85,11 +85,15 @@
 > deAnnot (App f a) = App (deAnnot f) (deAnnot a)
 > deAnnot x = x
 
-> addPatternDefSC :: Context -> Name -> ViewTerm -> Patterns ->
+> addPatternDefSC :: Context -> Name -> ViewTerm -> Patterns -> 
+>                    Maybe [(Name, Int)] ->
 >                    TTM (Context, [(Name, ViewTerm)])
-> addPatternDefSC ctxt nm ty ps = do
+> addPatternDefSC ctxt nm ty ps spec = do
 >     -- just allow general recursion for now
->     (ctxt', newdefs) <- addPatternDef ctxt nm ty ps [Holey,Partial,GenRec]
+>     let opts = case spec of
+>                  Nothing -> [Holey, Partial, GenRec]
+>                  Just fns -> [Holey, Partial, GenRec, Specialise fns]
+>     (ctxt', newdefs) <- addPatternDef ctxt nm ty ps opts
 >     (_, patts) <- getPatternDef ctxt' nm
 >     let (ps', ds) = liftCases nm patts
 >     if (null ds) then return (ctxt', newdefs)
@@ -99,7 +103,7 @@
 >          return (ctxt', newdefs++newdefs')
 >  where addAll ctxt [] nds = return (ctxt, nds)
 >        addAll ctxt ((n,ty,ps):rs) nds = do
->          (ctxt', newdefs') <- addPatternDefSC ctxt n ty ps
+>          (ctxt', newdefs') <- addPatternDefSC ctxt n ty ps spec
 >          addAll ctxt' rs (newdefs'++nds) 
 
 > addMeta :: Bool ->
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,9 +1,9 @@
-Copyright (c) 2006 Edwin Brady
+Copyright (c) 2006-2010 Edwin Brady
     School of Computer Science, University of St Andrews
 All rights reserved.
 
 This code is derived from software written by Edwin Brady
-(eb@dcs.st-and.ac.uk).
+(eb@cs.st-andrews.ac.uk).
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
diff --git a/Main.lhs b/Main.lhs
--- a/Main.lhs
+++ b/Main.lhs
@@ -15,7 +15,9 @@
 > import Control.Monad
 > import Control.Exception
 > import List
+> import Maybe
 > import Debug.Trace
+> import Distribution.Version
 > import Prelude hiding (catch)
 
 > import Idris.AbsSyntax
@@ -28,9 +30,10 @@
 > import Idris.ConTrans
 > import Idris.Fontlock
 > import Idris.Serialise
-
 > import Idris.RunIO
 
+> import Paths_idris
+
 Load things in this order:
 
 * Introduce equality
@@ -39,7 +42,11 @@
 * Load prelude
 * Load users program
 
-> idris_version = "0.1.2"
+> idris_version = showV (versionBranch version)
+>   where
+>     showV [] = ""
+>     showV [a] = show a
+>     showV (x:xs) = show x ++ "." ++ showV xs
 
 > data Args = Batch [String]
 >           | NoArgs
@@ -54,6 +61,9 @@
 >           (ctxt, defs) <- processInput ctxt defs infile
 >           repl defs ctxt batch
 
+> usage opts@(('-':_):_) = do o <- mkArgs opts
+>                             putStrLn "No input file"
+>                             umessage
 > usage [fname] = return (fname, (NoArgs, []))
 > usage (fname:opts) = do o <- mkArgs opts
 >                         return (fname, o)
@@ -70,6 +80,7 @@
 >      putStrLn $ "\t\t --nospec          Turn off specialisation and transformation rules"
 >      putStrLn $ "\t\t --noerasure       Turn off erasure optimisations"
 >      putStrLn $ "\t\t --cmd <command>   Run a command in batch mode"
+>      putStrLn $ "\t\t --dir             Show support file location"
 >      putStrLn $ "\t\t --verbose         Debugging output"
 >      putStrLn $ "\n"
 >      exitWith (ExitFailure 1)
@@ -91,6 +102,10 @@
 >           = mkA' args (NoErasure:opts) xs
 >     mkA' args opts ("--cmd":b:xs)
 >           = mkA' (b:args) opts xs
+>     mkA' args opts ("--dir":xs)
+>           = do d <- getDataDir
+>                putStrLn d
+>                exitWith ExitSuccess
 >     mkA' args opts (x:xs) = do putStrLn $ "Unrecognised option " ++ x ++ "\n"
 >                                umessage
 
@@ -129,9 +144,15 @@
 >             OK x fixes' -> return (x, fixes')
 >             Err x fixes' err -> do putStrLn err 
 >                                    return (x, fixes')
->     let ist = addTransforms (IState alldefs (decls++ptree) metas opts ops [] imps) ctxt 
+>     let ist = addTransforms (IState alldefs (decls++ptree) metas opts ops [] [] imps (mkNameMap alldefs)) ctxt 
 >     return (ctxt, ist { idris_fixities = fixes' })
 
+> mkNameMap :: Ctxt IvorFun -> [(Name, Id)]
+> mkNameMap ctxt = mapMaybe mknm (ctxtAlist ctxt)
+>   where mknm (n, IvorProblem _) = Nothing
+>         mknm (n, i) = do iname <- ivorFName i
+>                          return (iname, n)
+
 > data REPLRes = Quit | Continue | NewCtxt IdrisState Context
 
 Command; minimal abbreviation; function to run it; description; visibility
@@ -162,7 +183,7 @@
 > debug, norm, help, options, showdef, html, ssave :: Command
 
 > quit _ _ _ = do return Quit
-> tmtype (IState raw _ _ _ uo _ _) ctxt tms 
+> tmtype (IState raw _ _ _ uo _ _ _ _) ctxt tms 
 >            = do icheckType raw uo ctxt (unwords tms)
 >                 return Continue
 > prove ist ctxt (nm:[]) 
@@ -271,7 +292,7 @@
 
 > repl :: IdrisState -> Context -> Args -> IO ()
 > repl ist ctxt (Batch []) = return () 
-> repl ist@(IState raw decls metas opts fixes trans imps) ctxt inp' 
+> repl ist@(IState raw decls metas opts fixes trans syns imps nms) ctxt inp' 
 >          = do (inp, next) <- case inp' of 
 >                        Batch (b:bs) -> return (Just b, Batch bs)
 >                        _ -> do x <- readline ("Idris> ")
@@ -425,7 +446,10 @@
 >                                "String->String->String"
 >              c <- addBinOp c (opFn StringGetIndex) ((!!)::String->Int->Char)
 >                                "String->Int->Char"
+>              c <- addBinOp c (opFn ShL) (shl::Int->Int->Int) "Int->Int->Int"
+>              c <- addBinOp c (opFn ShR) (shr::Int->Int->Int) "Int->Int->Int"
 >              c <- addExternalFn c (opFn OpEq) 2 constEq "Int->Int->Bool"
+>              c <- addExternalFn c (name "__charEq") 2 constEq "Char->Char->Bool"
 >              c <- addExternalFn c (name "__strEq") 2 constEq "String->String->Bool"
 >              c <- addExternalFn c (name "__strLT") 2 constLT "String->String->Bool"
 >              c <- addExternalFn c (opFn OpLT) 2 intlt "Int->Int->Bool"
@@ -443,6 +467,14 @@
 >              c <- addExternalFn c (name "__lazy") 1 runLazy "(A:*)A->A"
 >              c <- addExternalFn c (name "__effect") 1 runEffect "(A:*)A->A"
 >              return c
+
+> shl :: Int -> Int -> Int
+> shl x 0 = x
+> shl x n = shl (x*2) (n-1)
+
+> shr :: Int -> Int -> Int
+> shr x 0 = x
+> shr x n = shr (x `div` 2) (n-1)
 
 > constEq :: [ViewTerm] -> Maybe ViewTerm
 > constEq [Constant x, Constant y]
diff --git a/Setup.lhs b/Setup.lhs
--- a/Setup.lhs
+++ b/Setup.lhs
@@ -1,4 +1,38 @@
 > import Distribution.Simple
+> import Distribution.Simple.InstallDirs
+> import Distribution.Simple.LocalBuildInfo
+> import Distribution.PackageDescription
 
-> main = defaultMain
+> import System
+
+After Idris is built, we need to check and install the .idr library files,
+and the C support they need.
+
+FIXME: This is probably all done the wrong way, I don't really understand
+Cabal properly... This is all stolen from the Epic build system.
+
+> buildLib args flags desc local 
+>     = do exit <- system "make -C lib"
+>          return ()
+
+This is a hack. I don't know how to tell cabal that a data file needs
+installing but shouldn't be in the distribution. And it won't make the
+distribution if it's not there, so instead I just delete
+the file after configure.
+
+> postConfLib args flags desc local
+>    = do exit <- system "make -C lib clean"
+>         return ()
+
+> addPrefix pfx var c = "export " ++ var ++ "=" ++ show pfx ++ "/" ++ c ++ ":$" ++ var
+
+> postInstLib args flags desc local
+>     = do let pfx = prefix (installDirTemplates local)
+>          exit <- system $ "make -C lib install PREFIX=" ++ show pfx
+>          return ()
+
+> main = defaultMainWithHooks (simpleUserHooks { postBuild = buildLib,
+>                                                postConf = postConfLib,
+>                                                postInst = postInstLib })
+
 
diff --git a/dist/build/Idris/Parser.hs b/dist/build/Idris/Parser.hs
--- a/dist/build/Idris/Parser.hs
+++ b/dist/build/Idris/Parser.hs
@@ -29,3400 +29,3490 @@
 
 -- parser produced by Happy Version 1.18.4
 
-newtype HappyAbsSyn t69 = HappyAbsSyn HappyAny
-#if __GLASGOW_HASKELL__ >= 607
-type HappyAny = Happy_GHC_Exts.Any
-#else
-type HappyAny = forall a . a
-#endif
-happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t69)
-happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn6 #-}
-happyOut6 :: (HappyAbsSyn t69) -> ([ParseDecl])
-happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut6 #-}
-happyIn7 :: (ParseDecl) -> (HappyAbsSyn t69)
-happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn7 #-}
-happyOut7 :: (HappyAbsSyn t69) -> (ParseDecl)
-happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut7 #-}
-happyIn8 :: (Decl) -> (HappyAbsSyn t69)
-happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn8 #-}
-happyOut8 :: (HappyAbsSyn t69) -> (Decl)
-happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut8 #-}
-happyIn9 :: (ParseDecl) -> (HappyAbsSyn t69)
-happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn9 #-}
-happyOut9 :: (HappyAbsSyn t69) -> (ParseDecl)
-happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut9 #-}
-happyIn10 :: (CGFlag) -> (HappyAbsSyn t69)
-happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn10 #-}
-happyOut10 :: (HappyAbsSyn t69) -> (CGFlag)
-happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut10 #-}
-happyIn11 :: (Bool) -> (HappyAbsSyn t69)
-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn11 #-}
-happyOut11 :: (HappyAbsSyn t69) -> (Bool)
-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut11 #-}
-happyIn12 :: ([RawTerm]) -> (HappyAbsSyn t69)
-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn12 #-}
-happyOut12 :: (HappyAbsSyn t69) -> ([RawTerm])
-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut12 #-}
-happyIn13 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn13 #-}
-happyOut13 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut13 #-}
-happyIn14 :: ([ParseDecl]) -> (HappyAbsSyn t69)
-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn14 #-}
-happyOut14 :: (HappyAbsSyn t69) -> ([ParseDecl])
-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut14 #-}
-happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t69)
-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn15 #-}
-happyOut15 :: (HappyAbsSyn t69) -> ([CGFlag])
-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut15 #-}
-happyIn16 :: ([CGFlag]) -> (HappyAbsSyn t69)
-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn16 #-}
-happyOut16 :: (HappyAbsSyn t69) -> ([CGFlag])
-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut16 #-}
-happyIn17 :: ([CGFlag]) -> (HappyAbsSyn t69)
-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn17 #-}
-happyOut17 :: (HappyAbsSyn t69) -> ([CGFlag])
-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut17 #-}
-happyIn18 :: ([Decl]) -> (HappyAbsSyn t69)
-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn18 #-}
-happyOut18 :: (HappyAbsSyn t69) -> ([Decl])
-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut18 #-}
-happyIn19 :: ([String]) -> (HappyAbsSyn t69)
-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn19 #-}
-happyOut19 :: (HappyAbsSyn t69) -> ([String])
-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut19 #-}
-happyIn20 :: (String) -> (HappyAbsSyn t69)
-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn20 #-}
-happyOut20 :: (HappyAbsSyn t69) -> (String)
-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut20 #-}
-happyIn21 :: (Fixity) -> (HappyAbsSyn t69)
-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn21 #-}
-happyOut21 :: (HappyAbsSyn t69) -> (Fixity)
-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut21 #-}
-happyIn22 :: (Decl) -> (HappyAbsSyn t69)
-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn22 #-}
-happyOut22 :: (HappyAbsSyn t69) -> (Decl)
-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut22 #-}
-happyIn23 :: ([(Id,String)]) -> (HappyAbsSyn t69)
-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn23 #-}
-happyOut23 :: (HappyAbsSyn t69) -> ([(Id,String)])
-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut23 #-}
-happyIn24 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t69)
-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn24 #-}
-happyOut24 :: (HappyAbsSyn t69) -> ((Id, [(RawTerm, Maybe Id)]))
-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut24 #-}
-happyIn25 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t69)
-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn25 #-}
-happyOut25 :: (HappyAbsSyn t69) -> ([(RawTerm,Maybe Id)])
-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut25 #-}
-happyIn26 :: (Datatype) -> (HappyAbsSyn t69)
-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn26 #-}
-happyOut26 :: (HappyAbsSyn t69) -> (Datatype)
-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut26 #-}
-happyIn27 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t69)
-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn27 #-}
-happyOut27 :: (HappyAbsSyn t69) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
-happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut27 #-}
-happyIn28 :: ([TyOpt]) -> (HappyAbsSyn t69)
-happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn28 #-}
-happyOut28 :: (HappyAbsSyn t69) -> ([TyOpt])
-happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut28 #-}
-happyIn29 :: ([TyOpt]) -> (HappyAbsSyn t69)
-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn29 #-}
-happyOut29 :: (HappyAbsSyn t69) -> ([TyOpt])
-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut29 #-}
-happyIn30 :: (TyOpt) -> (HappyAbsSyn t69)
-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn30 #-}
-happyOut30 :: (HappyAbsSyn t69) -> (TyOpt)
-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut30 #-}
-happyIn31 :: (Id) -> (HappyAbsSyn t69)
-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn31 #-}
-happyOut31 :: (HappyAbsSyn t69) -> (Id)
-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut31 #-}
-happyIn32 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn32 #-}
-happyOut32 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut32 #-}
-happyIn33 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn33 #-}
-happyOut33 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut33 #-}
-happyIn34 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn34 #-}
-happyOut34 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut34 #-}
-happyIn35 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn35 #-}
-happyOut35 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut35 #-}
-happyIn36 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn36 #-}
-happyOut36 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut36 #-}
-happyIn37 :: ([Id]) -> (HappyAbsSyn t69)
-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn37 #-}
-happyOut37 :: (HappyAbsSyn t69) -> ([Id])
-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut37 #-}
-happyIn38 :: ([(Id, Int)]) -> (HappyAbsSyn t69)
-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn38 #-}
-happyOut38 :: (HappyAbsSyn t69) -> ([(Id, Int)])
-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut38 #-}
-happyIn39 :: ([Id]) -> (HappyAbsSyn t69)
-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn39 #-}
-happyOut39 :: (HappyAbsSyn t69) -> ([Id])
-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut39 #-}
-happyIn40 :: ([Id]) -> (HappyAbsSyn t69)
-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn40 #-}
-happyOut40 :: (HappyAbsSyn t69) -> ([Id])
-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut40 #-}
-happyIn41 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn41 #-}
-happyOut41 :: (HappyAbsSyn t69) -> ([(Id, RawTerm, RawTerm)])
-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut41 #-}
-happyIn42 :: ((Id, RawTerm)) -> (HappyAbsSyn t69)
-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn42 #-}
-happyOut42 :: (HappyAbsSyn t69) -> ((Id, RawTerm))
-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut42 #-}
-happyIn43 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn43 #-}
-happyOut43 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut43 #-}
-happyIn44 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn44 #-}
-happyOut44 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut44 #-}
-happyIn45 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn45 #-}
-happyOut45 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut45 #-}
-happyIn46 :: (String) -> (HappyAbsSyn t69)
-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn46 #-}
-happyOut46 :: (HappyAbsSyn t69) -> (String)
-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut46 #-}
-happyIn47 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn47 #-}
-happyOut47 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut47 #-}
-happyIn48 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn48 #-}
-happyOut48 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut48 #-}
-happyIn49 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn49 #-}
-happyOut49 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut49 #-}
-happyIn50 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn50 #-}
-happyOut50 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut50 #-}
-happyIn51 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn51 #-}
-happyOut51 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut51 #-}
-happyIn52 :: ([RawTerm]) -> (HappyAbsSyn t69)
-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn52 #-}
-happyOut52 :: (HappyAbsSyn t69) -> ([RawTerm])
-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut52 #-}
-happyIn53 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn53 #-}
-happyOut53 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut53 #-}
-happyIn54 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn54 #-}
-happyOut54 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut54 #-}
-happyIn55 :: ([RawTerm]) -> (HappyAbsSyn t69)
-happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn55 #-}
-happyOut55 :: (HappyAbsSyn t69) -> ([RawTerm])
-happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut55 #-}
-happyIn56 :: ([Do]) -> (HappyAbsSyn t69)
-happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn56 #-}
-happyOut56 :: (HappyAbsSyn t69) -> ([Do])
-happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut56 #-}
-happyIn57 :: ([Do]) -> (HappyAbsSyn t69)
-happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn57 #-}
-happyOut57 :: (HappyAbsSyn t69) -> ([Do])
-happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut57 #-}
-happyIn58 :: (Do) -> (HappyAbsSyn t69)
-happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn58 #-}
-happyOut58 :: (HappyAbsSyn t69) -> (Do)
-happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut58 #-}
-happyIn59 :: (Constant) -> (HappyAbsSyn t69)
-happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn59 #-}
-happyOut59 :: (HappyAbsSyn t69) -> (Constant)
-happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut59 #-}
-happyIn60 :: ([RawTerm]) -> (HappyAbsSyn t69)
-happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn60 #-}
-happyOut60 :: (HappyAbsSyn t69) -> ([RawTerm])
-happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut60 #-}
-happyIn61 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t69)
-happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn61 #-}
-happyOut61 :: (HappyAbsSyn t69) -> ((RawTerm, [(Id, RawTerm)]))
-happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut61 #-}
-happyIn62 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn62 #-}
-happyOut62 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut62 #-}
-happyIn63 :: ((Id,Id)) -> (HappyAbsSyn t69)
-happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn63 #-}
-happyOut63 :: (HappyAbsSyn t69) -> ((Id,Id))
-happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut63 #-}
-happyIn64 :: ((Id,Id)) -> (HappyAbsSyn t69)
-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn64 #-}
-happyOut64 :: (HappyAbsSyn t69) -> ((Id,Id))
-happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut64 #-}
-happyIn65 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn65 #-}
-happyOut65 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut65 #-}
-happyIn66 :: (Id) -> (HappyAbsSyn t69)
-happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn66 #-}
-happyOut66 :: (HappyAbsSyn t69) -> (Id)
-happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut66 #-}
-happyIn67 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn67 #-}
-happyOut67 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut67 #-}
-happyIn68 :: ([Id]) -> (HappyAbsSyn t69)
-happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn68 #-}
-happyOut68 :: (HappyAbsSyn t69) -> ([Id])
-happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut68 #-}
-happyIn69 :: t69 -> (HappyAbsSyn t69)
-happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn69 #-}
-happyOut69 :: (HappyAbsSyn t69) -> t69
-happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut69 #-}
-happyIn70 :: ([ConParse]) -> (HappyAbsSyn t69)
-happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn70 #-}
-happyOut70 :: (HappyAbsSyn t69) -> ([ConParse])
-happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut70 #-}
-happyIn71 :: (ConParse) -> (HappyAbsSyn t69)
-happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn71 #-}
-happyOut71 :: (HappyAbsSyn t69) -> (ConParse)
-happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut71 #-}
-happyIn72 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn72 #-}
-happyOut72 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut72 #-}
-happyIn73 :: (ITactic) -> (HappyAbsSyn t69)
-happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn73 #-}
-happyOut73 :: (HappyAbsSyn t69) -> (ITactic)
-happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut73 #-}
-happyIn74 :: ([ITactic]) -> (HappyAbsSyn t69)
-happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn74 #-}
-happyOut74 :: (HappyAbsSyn t69) -> ([ITactic])
-happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut74 #-}
-happyIn75 :: ([ITactic]) -> (HappyAbsSyn t69)
-happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn75 #-}
-happyOut75 :: (HappyAbsSyn t69) -> ([ITactic])
-happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut75 #-}
-happyIn76 :: (LineNumber) -> (HappyAbsSyn t69)
-happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn76 #-}
-happyOut76 :: (HappyAbsSyn t69) -> (LineNumber)
-happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut76 #-}
-happyIn77 :: (String) -> (HappyAbsSyn t69)
-happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn77 #-}
-happyOut77 :: (HappyAbsSyn t69) -> (String)
-happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut77 #-}
-happyIn78 :: (Fixities) -> (HappyAbsSyn t69)
-happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn78 #-}
-happyOut78 :: (HappyAbsSyn t69) -> (Fixities)
-happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut78 #-}
-happyInTok :: (Token) -> (HappyAbsSyn t69)
-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn t69) -> (Token)
-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOutTok #-}
-
-
-happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\x1a\x00\x44\x05\x1e\x0e\x00\x00\xf2\x03\x13\x01\x13\x01\x44\x05\x00\x00\x46\x03\xf1\x02\x00\x00\x13\x01\x00\x00\x44\x05\x44\x05\x00\x00\x44\x05\x44\x05\x44\x05\x44\x05\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x01\x23\x09\x47\x02\x44\x05\x44\x05\x17\x08\x44\x05\x00\x00\x13\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x05\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x44\x05\x6a\x00\xeb\x03\x01\x00\x00\x00\x00\x00\x01\x00\x5a\x04\x00\x00\x36\x04\x00\x00\x0d\x02\x4a\x04\x40\x04\x3f\x04\x3d\x04\x35\x04\x5d\x09\xb9\x01\x27\x04\x00\x00\x00\x00\x00\x00\x31\x04\x30\x04\x2a\x04\x6a\x00\x6a\x00\x34\x04\xf6\x03\x1d\x04\x2b\x04\x44\x05\x18\x04\x17\x04\x00\x00\x00\x00\x8b\x03\x0f\x04\x6a\x00\x06\x04\x0e\x04\x6a\x00\x00\x00\x6a\x00\x6a\x00\x6a\x00\x6a\x00\x12\x02\x03\x04\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\x17\x00\x00\x00\x00\x00\x9c\x02\x00\x00\x00\x00\x00\x00\xcf\x00\xcf\x00\xcf\x00\xcf\x00\xcf\x00\x00\x00\xdd\x07\x08\x04\x0e\x01\xe9\x08\x00\x04\xe9\xff\x5d\x09\xb9\x01\x00\x00\x00\x00\x07\x04\xb7\x03\x8c\x02\x00\x00\x05\x04\xef\x04\x00\x00\x00\x00\x0b\x04\x00\x00\x0b\x04\x00\x00\x0c\x0a\xa8\x0a\xca\x01\xfc\x09\x9a\x04\xfb\x03\x9a\x04\x9a\x04\xf9\x03\xf8\x03\x9a\x04\x9a\x04\xb2\x01\x4e\x00\x00\x00\x9a\x04\xaf\x08\x6a\x00\xfd\x03\xce\x03\x00\x00\x17\x08\xe7\x03\x00\x00\x9a\x04\xdc\x03\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x00\x00\x8a\x01\x76\x01\x68\x01\x54\x01\x46\x01\x32\x01\x00\x00\x24\x01\x9a\x04\x10\x01\x9a\x04\xc4\x00\x00\x00\xd5\x03\x00\x00\x6a\x00\x5b\x00\x05\x00\x00\x00\xef\x03\xef\x03\xef\x03\xef\x03\xef\x03\x00\x00\x9a\x04\xef\x03\x17\x08\x00\x00\x00\x00\x00\x00\x9a\x04\xc7\x03\x23\x09\xe2\x03\xda\x03\xc0\x03\xb7\x01\xd4\x03\x86\x00\xcf\x03\x8f\x0a\x23\x09\x00\x00\x23\x09\xd0\x03\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x9a\x04\x00\x00\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x9a\x04\xcd\x03\x00\x00\x00\x00\x9a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\x17\x09\xc4\x03\x45\x04\x6a\x00\x96\x03\x00\x00\xf0\x03\xf0\x03\xa6\x03\xba\x03\x9e\x03\xb3\x03\xf0\x03\xf0\x03\xf0\x03\x67\x03\x1e\x0e\xb4\x03\x97\x00\x03\x00\x97\x03\xdd\x07\xf0\x03\x00\x00\x00\x00\xa9\x03\xa8\x03\xa4\x03\xa2\x03\xa1\x03\x00\x00\x00\x00\xef\x09\x9f\x03\x00\x00\x00\x00\xf0\x03\xf0\x03\xf0\x03\x00\x00\x9a\x03\x86\x03\x00\x00\x00\x00\xe3\x00\x9d\x03\x94\x03\x80\x03\x87\x03\x6a\x00\x7d\x03\x01\x00\x6a\x00\x83\x03\x77\x03\x00\x00\xf0\x03\x82\x0a\x8d\x03\x00\x00\x69\x03\x00\x00\xf0\x03\x00\x00\x00\x00\x6a\x00\x00\x00\xe9\x08\x00\x00\x6a\x00\x6a\x00\x70\x03\xe9\x08\x00\x00\x00\x00\x12\x02\x00\x00\x80\x0a\x6d\x0a\x5a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x0a\x00\x00\x6a\x00\x00\x00\x00\x00\xcd\x01\xcd\x01\x82\x03\x00\x00\x00\x00\x00\x00\x7c\x03\x78\x03\x23\x09\x7f\x03\x76\x03\x00\x00\x46\x0a\xac\x01\x32\x0a\x00\x00\xb9\x01\x00\x00\xf0\x03\xa7\x00\x45\x00\xf0\x03\x7b\x03\x00\x00\x00\x00\x00\x00\x57\x03\x76\x08\x00\x00\x51\x08\x29\x0a\x00\x00\x23\x09\x00\x00\x0e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x03\x00\x00\x6f\x03\x00\x00\x17\x08\x00\x00\x55\x03\x00\x00\x00\x00\x00\x00\x00\x00\x23\x09\x23\x09\x54\x03\xe9\x08\x6a\x00\x53\x03\xe9\x08\x03\x00\x6a\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x08\x51\x08\x51\x08\x51\x08\x51\x08\x51\x08\x00\x00\x00\x00\x00\x00\x00\x00\x23\x09\x00\x00\x88\x00\x23\x09\x1d\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x07\x00\x00\x69\x07\x00\x00\x2f\x07\x00\x00\xf5\x06\x65\x03\x63\x03\x62\x03\x5b\x03\x59\x03\x1c\x00\x00\x00\x00\x00\xf0\x03\xbb\x06\x49\x03\x17\x09\xf0\x03\x0a\x02\x00\x00\x82\x01\x5d\x03\x4c\x03\x00\x00\x1e\x0e\x03\x00\x36\x03\x6a\x00\x00\x00\x4d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x81\x06\x00\x00\x82\x01\x00\x00\x4b\x03\x00\x00\x00\x00\x00\x00\xf6\xff\x00\x00\x47\x06\x52\x03\x4e\x03\x00\x00\x00\x00\x31\x03\x47\x03\x19\x0a\x6a\x00\x2b\x03\x00\x00\x6a\x00\x42\x03\x00\x00\x00\x00\x6a\x00\x00\x00\x6a\x00\x00\x00\x17\x08\x00\x00\x00\x00\xe9\x08\x00\x00\x08\x03\x00\x00\x00\x00\x00\x00\x6a\x00\x82\x01\x3f\x03\x00\x00\x00\x00\x00\x00\x3d\x03\x00\x00\xfe\xff\x32\x03\xe9\x08\x00\x00\x6a\x00\x00\x00\x2f\x03\x6a\x00\x3e\x03\x00\x00\xf0\x03\x00\x00\x17\x09\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\x0d\x03\x0d\x03\x29\x03\x00\x00\x00\x00\x00\x00\x0a\x02\x0d\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x03\x00\x00\x00\x00\x12\x03\x6a\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x76\x08\x9b\x03\x00\x00\xd3\x05\x00\x00\x00\x00\x00\x00\x99\x05\x20\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x67\x09\x43\x0e\xef\x02\x00\x00\x00\x00\x91\x01\x16\x03\x32\x0e\x00\x00\x21\x0e\x10\x0e\x00\x00\x13\x03\x00\x00\xff\x0d\xee\x0d\x00\x00\xdd\x0d\xcc\x0d\xbb\x0d\xaa\x0d\x00\x00\x00\x00\xda\x02\x41\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x01\xaf\x06\xab\x0a\x99\x0d\x88\x0d\x58\x05\x77\x0d\x00\x00\x05\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x0d\x00\x00\xd6\x02\xd5\x02\x00\x00\xd1\x02\x55\x0d\x4d\x01\x00\x00\xf4\x08\x00\x00\x00\x00\x72\x05\x00\x00\x00\x00\x11\x03\x00\x00\xb8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x07\x03\xfe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x02\xf9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x44\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x41\x01\x00\x00\x86\x01\x00\x00\x00\x00\x0f\x01\x00\x00\x60\x00\xf6\x02\x48\x00\xf4\x02\x1f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x03\xc4\x02\x40\x01\x00\x00\xc3\x02\xbe\x0a\x00\x00\xb7\x02\xb6\x02\x1d\x05\xc8\x04\x73\x04\x1e\x04\xc9\x03\x00\x00\x04\x04\x00\x00\x00\x00\xce\x07\x00\x00\xc1\x02\xff\xff\x0b\x02\x00\x00\x00\x00\xd3\x02\x00\x00\x3d\x01\xad\x02\xd2\x02\xf1\x0a\xa8\x02\xa7\x02\x39\x01\xa5\x02\x36\x01\x00\x00\x17\x01\x17\x01\x27\x01\x8d\x00\x33\x0d\x00\x00\x22\x0d\x11\x0d\x00\x00\x00\x00\xbe\x09\xba\x09\x15\x01\x00\x00\x00\x00\x00\x0d\xc7\x05\x11\x02\xbb\x02\x00\x00\xa1\x02\x36\x05\x00\x00\xa0\x02\xef\x0c\x9e\x02\xde\x0c\xcd\x0c\xbc\x0c\xab\x0c\x9a\x0c\x9b\x02\x14\x01\x14\x01\x14\x01\x14\x01\x14\x01\x14\x01\x00\x00\x14\x01\x89\x0c\x14\x01\x78\x0c\x14\x01\x00\x00\x00\x00\x00\x00\x87\x01\x14\x01\x14\x01\x00\x00\x0c\x01\x07\x01\x06\x01\x05\x01\xf8\x00\x9a\x02\x67\x0c\xe5\x00\x03\x05\x98\x02\x96\x02\x00\x00\x56\x0c\x00\x00\x75\x06\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\xde\x00\x3b\x06\x00\x00\x39\x06\x00\x00\x95\x02\xd7\x00\x92\x02\xd2\x00\x91\x02\xd1\x00\x82\x02\xc1\x00\x81\x02\x9f\x09\x00\x00\x9b\x09\x45\x0c\x34\x0c\x40\x03\x80\x09\x00\x00\x00\x00\x80\x02\x23\x0c\x7f\x02\x7d\x02\x7c\x02\x00\x00\x00\x00\xe2\xff\xba\x00\x00\x00\xe0\x0a\x3f\x01\x00\x00\x00\x00\x12\x0c\x01\x0c\x00\x00\x00\x00\x00\x00\xba\x02\xf0\x0b\xdf\x0b\xce\x0b\x00\x00\xa6\x01\xbc\x01\x48\x02\x00\x00\x00\x00\xaf\x03\xbd\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x02\x76\x02\xb8\x00\x00\x00\x75\x02\x6f\x02\xac\x0b\x9b\x0b\x8a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\xca\x02\x9f\x02\x00\x00\x00\x00\x00\x00\x79\x0b\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x0b\x00\x00\x00\x00\x9d\x02\x00\x00\x94\x07\x6a\x02\x08\x00\x30\x00\x00\x00\x5a\x07\x69\x02\x66\x02\xf1\x01\x00\x00\xb8\x00\xb8\x00\xb8\x00\x00\x00\x00\x00\x61\x02\x00\x00\x02\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x60\x02\x53\x01\x5f\x02\x00\x00\xee\x01\xbd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x06\x00\x00\x00\x00\x00\x00\xb8\x00\x0c\x00\xb8\x00\x00\x00\x95\x01\x00\x00\x57\x0b\xb8\x00\xb8\x00\x46\x0b\xd6\x01\x00\x00\x00\x00\x53\x02\x00\x00\xe1\x04\x00\x00\xe1\x04\xb8\x00\x52\x02\x7b\x05\x51\x02\xb8\x00\x00\x00\x4c\x02\x4b\x02\x43\x02\x41\x02\x40\x02\x3b\x02\x32\x02\x00\x00\x31\x02\x00\x00\x30\x02\xae\x04\x2c\x02\x00\x00\x2b\x02\x00\x00\x1e\x02\x00\x00\x01\x03\x57\x02\x00\x00\x20\x07\xd9\x01\x00\x00\xe6\x06\x00\x00\xf3\xff\xb8\x00\x25\x02\x22\x02\x00\x00\x20\x02\xb8\x00\x00\x00\x18\x02\x0e\x02\x04\x02\x01\x02\xf8\x01\x00\x00\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x01\x00\x00\x00\x00\xa0\x01\x00\x00\x00\x00\xed\x01\xf3\x01\xe5\x01\xe0\x01\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\x35\x0b\x8c\x04\x00\x00\xb5\x00\x24\x0b\x99\x00\x00\x00\x21\x02\x00\x00\x00\x00\x00\x00\x9f\x01\x00\x00\x00\x00\x85\x01\x00\x00\x00\x00\x00\x00\xc5\x01\x00\x00\xaf\x01\x5b\x02\xaa\x01\x99\x01\x00\x00\x00\x00\x00\x00\x97\x01\x7c\x01\x71\x01\x4a\x01\x1d\x09\x00\x00\x00\x00\x00\x00\x38\x01\x00\x00\x00\x00\x99\x00\x31\x01\x00\x00\x00\x00\x56\x01\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\xf9\xff\x00\x00\x59\x04\x00\x00\x00\x00\x72\x06\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x01\x77\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x01\x00\x00\x0b\x01\xd9\x00\x00\x00\xe1\x00\x7b\x00\xa6\x00\x13\x0b\x00\x00\x3f\x00\x82\x00\x70\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\x6d\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x50\x00\xef\xff\x37\x04\x4b\x00\x00\x00\x38\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x01\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\x5c\x01\x28\x00\x00\x00\xdf\xff\x37\x04\xcf\x0a\xda\xff\x37\x04\x00\x00\x00\x00\x00\x00\x37\x04\x00\x00\x00\x00\xc8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\x32\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xff\x00\x00\x00\x00\x1c\xff\x00\x00\x00\x00\x17\xff\x00\x00\x15\xff\x00\x00\x00\x00\x12\xff\x00\x00\x00\x00\x00\x00\x00\x00\x0d\xff\x0c\xff\x07\xff\x07\xff\x9e\xff\x83\xff\x51\xff\x52\xff\xa5\xff\x50\xff\x55\xff\x07\xff\xae\xff\x3a\xff\x3c\xff\x38\xff\x3b\xff\x39\xff\x5c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xff\x00\x00\x42\xff\x41\xff\x40\xff\x43\xff\x3e\xff\x3f\xff\x3d\xff\x44\xff\x00\x00\x59\xff\x07\xff\x07\xff\x00\x00\x07\xff\x00\x00\x00\x00\x00\x00\x32\xff\xef\xff\xf8\xff\x32\xff\x00\x00\xf6\xff\xdb\xff\xf7\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xff\xc1\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\xed\xff\x07\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\xc6\xff\xc5\xff\xc4\xff\x00\x00\x07\xff\x07\xff\xd9\xff\x07\xff\x00\x00\xa8\xff\x07\xff\x07\xff\x32\xff\x32\xff\x32\xff\x32\xff\x32\xff\xbd\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x73\xff\x00\x00\x07\xff\x08\xff\x73\xff\x00\x00\x08\xff\x08\xff\x07\xff\x07\xff\x07\xff\x5d\xff\x07\xff\x07\xff\x07\xff\x07\xff\x00\x00\x00\x00\xc7\xff\xc6\xff\x75\xff\x74\xff\x07\xff\x07\xff\x07\xff\x00\x00\x64\xff\x00\x00\x00\x00\x00\x00\x73\xff\x00\x00\x08\xff\x00\x00\x00\x00\x08\xff\x00\x00\x07\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x16\xff\x07\xff\x00\x00\x07\xff\x00\x00\x07\xff\x1e\xff\x97\xff\x20\xff\x00\x00\x07\xff\x07\xff\x60\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x08\xff\x00\x00\x07\xff\x00\x00\x07\xff\x07\xff\x5a\xff\x00\x00\x9c\xff\x00\x00\x00\x00\x00\x00\x99\xff\x07\xff\x00\x00\x00\x00\x00\x00\x07\xff\x00\x00\xa4\xff\x00\x00\x00\x00\x08\xff\x07\xff\x08\xff\x07\xff\x08\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x5e\xff\x07\xff\x75\xff\x74\xff\x07\xff\x07\xff\x00\x00\x54\xff\x07\xff\x00\x00\x08\xff\x08\xff\x08\xff\x58\xff\x57\xff\x07\xff\x07\xff\x00\x00\x48\xff\x00\x00\x00\x00\x5f\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xdb\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\x71\xff\xd2\xff\x6e\xff\x91\xff\xbc\xff\x00\x00\xe9\xff\xbb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xff\x08\xff\x07\xff\x00\x00\x08\xff\x08\xff\x00\x00\x00\x00\x00\x00\xad\xff\x00\x00\xb2\xff\xb0\xff\xaf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x32\xff\x00\x00\x00\x00\x00\x00\xf5\xff\x00\x00\x07\xff\x00\x00\xc0\xff\x00\x00\xf9\xff\x00\x00\x8e\xff\x2e\xff\x00\x00\x31\xff\x00\x00\x07\xff\x2a\xff\x26\xff\x00\x00\x00\x00\x07\xff\x07\xff\x00\x00\xb3\xff\x07\xff\x07\xff\x07\xff\xaa\xff\xa9\xff\x07\xff\xd8\xff\x00\x00\xa7\xff\xa6\xff\xf0\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\x07\xff\x07\xff\x00\x00\x07\xff\xd4\xff\xd2\xff\xd2\xff\x00\x00\xcc\xff\xd0\xff\xcf\xff\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\x07\xff\x07\xff\x07\xff\xdc\xff\x00\x00\xca\xff\x00\x00\x07\xff\x07\xff\x00\x00\x73\xff\x49\xff\x4b\xff\x08\xff\x00\x00\xa1\xff\x5b\xff\x89\xff\x07\xff\x08\xff\x00\x00\x08\xff\x07\xff\x4c\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x00\x00\x08\xff\x00\x00\x08\xff\x00\x00\x07\xff\x6d\xff\x07\xff\x67\xff\x07\xff\x6a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\xff\x00\x00\x07\xff\x08\xff\x08\xff\xa3\xff\x08\xff\x07\xff\x8b\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x96\xff\x84\xff\x87\xff\x85\xff\x86\xff\x88\xff\x81\xff\xa2\xff\x82\xff\x9b\xff\x98\xff\x00\x00\x9a\xff\x72\xff\x00\x00\x62\xff\x61\xff\x07\xff\x08\xff\x08\xff\x08\xff\xac\xff\x00\x00\x79\xff\x00\x00\x78\xff\x00\x00\x53\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xff\x07\xff\x00\x00\x00\x00\x00\x00\x07\xff\x00\x00\x07\xff\xc8\xff\x00\x00\x00\x00\x00\x00\x0b\xff\x0a\xff\x70\xff\x00\x00\x00\x00\xcb\xff\x00\x00\xd1\xff\x08\xff\x90\xff\x08\xff\xbc\xff\x08\xff\x00\x00\xe5\xff\x00\x00\xb1\xff\x08\xff\x08\xff\x32\xff\x07\xff\x37\xff\x00\x00\x25\xff\x29\xff\x08\xff\x2c\xff\x00\x00\x07\xff\x00\x00\xbf\xff\xeb\xff\x00\x00\x00\x00\xee\xff\x2f\xff\x00\x00\xb8\xff\x26\xff\xb7\xff\x37\xff\x22\xff\x23\xff\x00\x00\x08\xff\x00\x00\xb6\xff\xb5\xff\x34\xff\x00\x00\xd5\xff\x00\x00\xd7\xff\xb9\xff\xba\xff\x00\x00\xd3\xff\x94\xff\x00\x00\x00\x00\x09\xff\x00\x00\x07\xff\x00\x00\x00\x00\x07\xff\x08\xff\x00\x00\x45\xff\x07\xff\x08\xff\x07\xff\x7b\xff\x77\xff\x7c\xff\x7f\xff\x7d\xff\x7e\xff\x80\xff\x76\xff\x7a\xff\xab\xff\x66\xff\x65\xff\x08\xff\x6c\xff\x6b\xff\x00\x00\x08\xff\x4f\xff\x08\xff\x07\xff\x00\x00\x08\xff\x8c\xff\x07\xff\x08\xff\x00\x00\x6f\xff\xce\xff\x95\xff\x00\x00\xea\xff\xe3\xff\xd6\xff\x00\x00\x35\xff\x33\xff\x21\xff\x36\xff\x24\xff\x2b\xff\x30\xff\xbe\xff\xe4\xff\x93\xff\x00\x00\x07\xff\xe6\xff\x08\xff\x9d\xff\x00\x00\x08\xff\x00\x00\x63\xff\x69\xff\x47\xff\x00\x00\x00\x00\xe8\xff\x08\xff\x92\xff\xe7\xff\x4a\xff\x46\xff"#
-
-happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x0b\x00\x01\x00\x05\x00\x0a\x00\x02\x00\x07\x00\x02\x00\x03\x00\x20\x00\x21\x00\x29\x00\x19\x00\x0c\x00\x46\x00\x1c\x00\x0b\x00\x10\x00\x19\x00\x24\x00\x13\x00\x09\x00\x0a\x00\x0b\x00\x19\x00\x1a\x00\x03\x00\x01\x00\x20\x00\x21\x00\x02\x00\x02\x00\x46\x00\x19\x00\x1d\x00\x0c\x00\x26\x00\x46\x00\x0c\x00\x22\x00\x23\x00\x47\x00\x10\x00\x31\x00\x27\x00\x11\x00\x19\x00\x30\x00\x24\x00\x2e\x00\x49\x00\x2e\x00\x35\x00\x3f\x00\x47\x00\x20\x00\x21\x00\x40\x00\x41\x00\x07\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x27\x00\x49\x00\x3e\x00\x02\x00\x03\x00\x19\x00\x2e\x00\x2e\x00\x4b\x00\x19\x00\x1a\x00\x46\x00\x02\x00\x50\x00\x3d\x00\x47\x00\x53\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x02\x00\x03\x00\x11\x00\x49\x00\x19\x00\x1d\x00\x24\x00\x30\x00\x4b\x00\x0b\x00\x22\x00\x23\x00\x35\x00\x50\x00\x01\x00\x27\x00\x53\x00\x6d\x00\x47\x00\x40\x00\x41\x00\x71\x00\x2e\x00\x73\x00\x74\x00\x75\x00\x76\x00\x1d\x00\x19\x00\x10\x00\x76\x00\x2e\x00\x22\x00\x23\x00\x47\x00\x02\x00\x03\x00\x27\x00\x02\x00\x03\x00\x3d\x00\x47\x00\x6d\x00\x02\x00\x2e\x00\x02\x00\x71\x00\x0b\x00\x73\x00\x74\x00\x75\x00\x76\x00\x46\x00\x11\x00\x12\x00\x13\x00\x14\x00\x46\x00\x11\x00\x17\x00\x11\x00\x19\x00\x1d\x00\x57\x00\x3d\x00\x1d\x00\x24\x00\x22\x00\x23\x00\x46\x00\x22\x00\x23\x00\x27\x00\x20\x00\x26\x00\x27\x00\x02\x00\x03\x00\x14\x00\x2e\x00\x27\x00\x26\x00\x2e\x00\x2f\x00\x24\x00\x0b\x00\x46\x00\x2e\x00\x28\x00\x2e\x00\x47\x00\x11\x00\x12\x00\x13\x00\x14\x00\x03\x00\x24\x00\x17\x00\x29\x00\x19\x00\x15\x00\x47\x00\x19\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x46\x00\x22\x00\x23\x00\x12\x00\x22\x00\x26\x00\x27\x00\x0b\x00\x01\x00\x76\x00\x51\x00\x52\x00\x47\x00\x2e\x00\x2f\x00\x56\x00\x57\x00\x24\x00\x59\x00\x0c\x00\x24\x00\x47\x00\x24\x00\x10\x00\x47\x00\x1d\x00\x13\x00\x37\x00\x01\x00\x24\x00\x22\x00\x23\x00\x51\x00\x52\x00\x3e\x00\x27\x00\x46\x00\x0a\x00\x0b\x00\x6e\x00\x6f\x00\x70\x00\x2e\x00\x10\x00\x76\x00\x24\x00\x24\x00\x76\x00\x51\x00\x52\x00\x19\x00\x24\x00\x47\x00\x56\x00\x57\x00\x47\x00\x59\x00\x47\x00\x24\x00\x20\x00\x23\x00\x6e\x00\x6f\x00\x70\x00\x47\x00\x24\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x02\x00\x03\x00\x01\x00\x6e\x00\x6f\x00\x70\x00\x47\x00\x47\x00\x4b\x00\x0b\x00\x24\x00\x76\x00\x47\x00\x50\x00\x47\x00\x13\x00\x53\x00\x10\x00\x19\x00\x47\x00\x02\x00\x03\x00\x19\x00\x24\x00\x24\x00\x24\x00\x47\x00\x1d\x00\x20\x00\x0b\x00\x24\x00\x22\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x24\x00\x24\x00\x76\x00\x24\x00\x6d\x00\x0b\x00\x2e\x00\x47\x00\x71\x00\x1d\x00\x73\x00\x74\x00\x75\x00\x46\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x47\x00\x47\x00\x47\x00\x1d\x00\x29\x00\x0b\x00\x2e\x00\x47\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x24\x00\x47\x00\x47\x00\x24\x00\x47\x00\x0b\x00\x2e\x00\x24\x00\x23\x00\x1d\x00\x24\x00\x24\x00\x19\x00\x11\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x47\x00\x19\x00\x23\x00\x1d\x00\x1f\x00\x0b\x00\x2e\x00\x19\x00\x22\x00\x23\x00\x02\x00\x03\x00\x03\x00\x27\x00\x20\x00\x47\x00\x46\x00\x08\x00\x47\x00\x0b\x00\x2e\x00\x01\x00\x47\x00\x1d\x00\x76\x00\x47\x00\x47\x00\x12\x00\x22\x00\x23\x00\x02\x00\x03\x00\x0c\x00\x27\x00\x19\x00\x47\x00\x10\x00\x1d\x00\x19\x00\x0b\x00\x2e\x00\x11\x00\x22\x00\x23\x00\x76\x00\x20\x00\x03\x00\x27\x00\x19\x00\x19\x00\x19\x00\x08\x00\x0d\x00\x0e\x00\x2e\x00\x20\x00\x1f\x00\x1d\x00\x76\x00\x38\x00\x19\x00\x12\x00\x22\x00\x23\x00\x02\x00\x03\x00\x1f\x00\x27\x00\x19\x00\x19\x00\x02\x00\x03\x00\x1c\x00\x0b\x00\x2e\x00\x19\x00\x1a\x00\x02\x00\x76\x00\x0b\x00\x0c\x00\x0d\x00\x14\x00\x0a\x00\x46\x00\x11\x00\x0d\x00\x13\x00\x14\x00\x0a\x00\x0b\x00\x1d\x00\x76\x00\x13\x00\x2c\x00\x2d\x00\x22\x00\x23\x00\x47\x00\x19\x00\x20\x00\x27\x00\x0a\x00\x35\x00\x1d\x00\x0d\x00\x26\x00\x27\x00\x2e\x00\x22\x00\x23\x00\x46\x00\x76\x00\x27\x00\x2e\x00\x2f\x00\x43\x00\x31\x00\x45\x00\x2d\x00\x2a\x00\x2f\x00\x30\x00\x43\x00\x32\x00\x45\x00\x76\x00\x35\x00\x19\x00\x1a\x00\x46\x00\x3f\x00\x19\x00\x19\x00\x1a\x00\x46\x00\x1d\x00\x1e\x00\x0a\x00\x0b\x00\x48\x00\x21\x00\x44\x00\x51\x00\x52\x00\x29\x00\x76\x00\x2c\x00\x2d\x00\x51\x00\x52\x00\x2b\x00\x2c\x00\x2d\x00\x17\x00\x18\x00\x35\x00\x46\x00\x02\x00\x03\x00\x01\x00\x35\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0d\x00\x0e\x00\x6e\x00\x6f\x00\x70\x00\x10\x00\x51\x00\x52\x00\x6e\x00\x6f\x00\x70\x00\x16\x00\x03\x00\x18\x00\x46\x00\x1d\x00\x1b\x00\x08\x00\x19\x00\x46\x00\x22\x00\x23\x00\x1d\x00\x1e\x00\x26\x00\x27\x00\x25\x00\x12\x00\x47\x00\x28\x00\x17\x00\x18\x00\x2e\x00\x46\x00\x19\x00\x6e\x00\x6f\x00\x70\x00\x46\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x46\x00\x01\x00\x02\x00\x46\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x09\x00\x0a\x00\x0b\x00\x46\x00\x0e\x00\x0f\x00\x10\x00\x46\x00\x47\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\x46\x00\x18\x00\x53\x00\x54\x00\x1b\x00\x59\x00\x1d\x00\x47\x00\x46\x00\x5a\x00\x46\x00\x22\x00\x23\x00\x46\x00\x25\x00\x26\x00\x13\x00\x28\x00\x19\x00\x1a\x00\x47\x00\x47\x00\x19\x00\x2e\x00\x46\x00\x46\x00\x46\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x46\x00\x27\x00\x2c\x00\x2d\x00\x2e\x00\x46\x00\x46\x00\x2d\x00\x46\x00\x2f\x00\x30\x00\x35\x00\x32\x00\x02\x00\x03\x00\x35\x00\x46\x00\x46\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x46\x00\x46\x00\x46\x00\x53\x00\x54\x00\x55\x00\x01\x00\x02\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x47\x00\x47\x00\x47\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x47\x00\x22\x00\x23\x00\x47\x00\x47\x00\x16\x00\x27\x00\x18\x00\x46\x00\x19\x00\x1b\x00\x19\x00\x1d\x00\x2e\x00\x46\x00\x46\x00\x46\x00\x22\x00\x23\x00\x06\x00\x25\x00\x46\x00\x46\x00\x28\x00\x46\x00\x05\x00\x47\x00\x47\x00\x47\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x46\x00\x46\x00\x0f\x00\x10\x00\x46\x00\x12\x00\x47\x00\x14\x00\x47\x00\x46\x00\x46\x00\x56\x00\x19\x00\x29\x00\x47\x00\x46\x00\x46\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x47\x00\x46\x00\x46\x00\x53\x00\x54\x00\x55\x00\x01\x00\x46\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x29\x00\x29\x00\x47\x00\x47\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x05\x00\x18\x00\x47\x00\x47\x00\x1b\x00\x19\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x19\x00\x19\x00\x16\x00\x0e\x00\x25\x00\x06\x00\x47\x00\x28\x00\x19\x00\x1a\x00\x47\x00\x47\x00\x19\x00\x11\x00\x47\x00\x47\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x19\x00\x2c\x00\x2d\x00\x19\x00\x22\x00\x23\x00\x43\x00\x13\x00\x26\x00\x27\x00\x35\x00\x15\x00\x26\x00\x15\x00\x11\x00\x2e\x00\x2e\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x03\x00\x13\x00\x11\x00\x53\x00\x54\x00\x55\x00\x01\x00\x0b\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x48\x00\x26\x00\x13\x00\x11\x00\x0e\x00\x0f\x00\x10\x00\x26\x00\x11\x00\x19\x00\x0c\x00\x1b\x00\x16\x00\x0b\x00\x18\x00\x14\x00\x14\x00\x1b\x00\x15\x00\x1d\x00\x2e\x00\x25\x00\x26\x00\x27\x00\x0b\x00\x20\x00\x11\x00\x25\x00\x11\x00\x2d\x00\x28\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x11\x00\x11\x00\x35\x00\x11\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x11\x00\x2e\x00\x2e\x00\x2e\x00\x11\x00\x0a\x00\x04\x00\x47\x00\x31\x00\x13\x00\x0b\x00\x13\x00\x10\x00\x02\x00\x03\x00\x26\x00\x20\x00\x04\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x13\x00\x20\x00\x11\x00\x53\x00\x54\x00\x55\x00\x01\x00\x20\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x11\x00\x26\x00\x0a\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x26\x00\x22\x00\x23\x00\x15\x00\x11\x00\x16\x00\x27\x00\x18\x00\x13\x00\x13\x00\x1b\x00\x13\x00\x1d\x00\x2e\x00\x2f\x00\x13\x00\x13\x00\x26\x00\x0a\x00\x0c\x00\x25\x00\x5a\x00\x13\x00\x28\x00\x26\x00\x0b\x00\x20\x00\x31\x00\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\x13\x00\x0f\x00\x10\x00\x0d\x00\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\x11\x00\x32\x00\x19\x00\x13\x00\x35\x00\x11\x00\x26\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x11\x00\x0a\x00\x26\x00\x53\x00\x54\x00\x55\x00\x01\x00\x03\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x13\x00\x26\x00\x20\x00\x2f\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x0a\x00\x18\x00\x11\x00\x11\x00\x1b\x00\x11\x00\x1d\x00\x03\x00\x0a\x00\x59\x00\x0a\x00\x12\x00\x0b\x00\x11\x00\x25\x00\x10\x00\x13\x00\x28\x00\x0b\x00\x0b\x00\x04\x00\x04\x00\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\x01\x00\x0f\x00\x10\x00\x12\x00\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\x3f\x00\x32\x00\x19\x00\x04\x00\x35\x00\x10\x00\x14\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x10\x00\x10\x00\x0c\x00\x53\x00\x54\x00\x55\x00\x01\x00\x12\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x12\x00\x19\x00\x12\x00\x12\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x12\x00\x18\x00\x27\x00\x05\x00\x1b\x00\x76\x00\x1d\x00\x20\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x76\x00\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\x36\x00\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x19\x00\x1a\x00\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x35\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\x0e\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\x1d\x00\x1e\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\x2e\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\x35\x00\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x02\x00\x03\x00\xff\xff\x53\x00\x54\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x01\x00\x02\x00\x13\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\x4d\x00\x4e\x00\x4f\x00\x27\x00\xff\xff\xff\xff\x53\x00\x54\x00\xff\xff\x1d\x00\x2e\x00\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x25\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\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x0f\x00\x10\x00\x1d\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\x2e\x00\xff\xff\xff\xff\x25\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x42\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x0c\x00\xff\xff\x18\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x25\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\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\x19\x00\x35\x00\x1b\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x25\x00\x26\x00\x27\x00\x47\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x2d\x00\x32\x00\x2f\x00\x30\x00\x35\x00\x32\x00\xff\xff\x19\x00\x35\x00\x1b\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\x47\x00\x25\x00\x26\x00\x27\x00\x47\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x2d\x00\x32\x00\x2f\x00\x30\x00\x35\x00\x32\x00\x02\x00\x03\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\x11\x00\x47\x00\xff\xff\xff\xff\xff\xff\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x11\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\xff\xff\x1d\x00\xff\xff\x02\x00\x03\x00\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\x0b\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\x02\x00\x03\x00\x1d\x00\xff\xff\xff\xff\xff\xff\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x19\x00\xff\xff\x12\x00\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x1d\x00\x27\x00\x0b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x2e\x00\xff\xff\x27\x00\x02\x00\x03\x00\x02\x00\x03\x00\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x13\x00\x12\x00\x27\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x2e\x00\x1d\x00\xff\xff\x1d\x00\x0b\x00\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\x02\x00\x03\x00\x02\x00\x03\x00\x2e\x00\xff\xff\x2e\x00\xff\xff\x1d\x00\x0b\x00\xff\xff\x0b\x00\xff\xff\x22\x00\x23\x00\x02\x00\x03\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x1d\x00\xff\xff\x1d\x00\x11\x00\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\x02\x00\x03\x00\x1d\x00\xff\xff\x2e\x00\xff\xff\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x1d\x00\x1b\x00\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x0e\x00\xff\xff\xff\xff\x27\x00\x25\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\x2e\x00\x19\x00\x2d\x00\x1b\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\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"#
-
-happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\x0c\x02\x22\x00\x42\x02\xdc\x00\xe5\x00\x0d\x01\xb3\x00\xb4\x00\x10\x01\x11\x01\x7d\x01\xac\x00\x51\x00\x61\x02\xb7\x01\x18\xff\x52\x00\xf2\x01\xb0\x00\xfc\xff\xdb\x01\x62\x01\x63\x01\x76\x00\x77\x00\xb4\x00\x22\x00\x28\x01\x29\x01\xe5\x00\xe5\x00\x5c\x02\x47\x01\xb5\x00\xda\xff\x43\x02\x5e\x02\x51\x00\xb6\x00\xb7\x00\xb9\x00\x52\x00\x73\xff\xb8\x00\x25\x02\x2f\x01\x78\x00\xb0\x00\xe7\x00\x12\x01\xb9\x00\x79\x00\x57\x00\x57\x02\xda\xff\xda\xff\x4b\x02\xf4\x01\x75\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x9b\x01\x12\x01\xf5\x01\xb3\x00\xb4\x00\xf2\x01\xe7\x00\xe7\x00\x5b\x00\x76\x00\x77\x00\x53\x02\xe5\x00\x5c\x00\x4c\x02\xb1\x00\x5d\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xb3\x00\xb4\x00\xe6\x00\xda\xff\x2f\x01\xb5\x00\xb0\x00\x78\x00\x5b\x00\x1a\xff\xb6\x00\xb7\x00\x79\x00\x5c\x00\x22\x00\xb8\x00\x5d\x00\x5e\x00\x5f\x02\xf3\x01\xf4\x01\x5f\x00\xb9\x00\x60\x00\x61\x00\x62\x00\xfc\xff\xb5\x00\x2f\x01\x52\x00\x18\xff\xe7\x00\xb6\x00\xb7\x00\x54\x02\xb3\x00\xb4\x00\xb8\x00\xb3\x00\xb4\x00\x30\x01\x37\x02\x5e\x00\xe5\x00\xb9\x00\xe5\x00\x5f\x00\xa0\xff\x60\x00\x61\x00\x62\x00\xfc\xff\x55\x02\xa0\xff\xa0\xff\xa0\xff\xa0\xff\x58\x02\x99\x01\xa0\xff\x6e\xff\xa0\xff\xb5\x00\xd8\x01\x32\x01\xb5\x00\xb0\x00\xb6\x00\xb7\x00\x59\x02\xb6\x00\xb7\x00\xb8\x00\x9a\x01\xa0\xff\xb8\x00\xb3\x00\xb4\x00\x65\x01\xb9\x00\x9b\x01\x6e\xff\xb9\x00\xa0\xff\xb0\x00\x9f\xff\x34\x02\xe7\x00\xf0\x00\xe7\x00\x35\x02\x9f\xff\x9f\xff\x9f\xff\x9f\xff\x93\x00\xb0\x00\x9f\xff\xf8\x00\x9f\xff\x46\x01\x3a\x02\x33\x01\xb5\x00\x47\x01\xb3\x00\xb4\x00\x36\x02\xb6\x00\xb7\x00\x94\x00\x41\x01\x9f\xff\xb8\x00\x1d\xff\x22\x00\x1a\xff\xa0\xff\xa0\xff\xb1\x00\xb9\x00\x9f\xff\xa0\xff\xa0\xff\xb0\x00\xa0\xff\x51\x00\xb0\x00\x25\x01\xb0\x00\x52\x00\xb1\x00\xb5\x00\xfc\xff\x48\x01\x22\x00\xb0\x00\xb6\x00\xb7\x00\x66\x01\x67\x01\x49\x01\xb8\x00\x39\x02\x4b\x01\x4c\x01\xa0\xff\xa0\xff\xa0\xff\xb9\x00\x52\x00\xff\xff\xb0\x00\xb0\x00\xa0\xff\x9f\xff\x9f\xff\x8e\x00\xb0\x00\x1f\x02\x9f\xff\x9f\xff\xb1\x00\x9f\xff\x7c\x01\xb0\x00\x4d\x01\x3b\x02\x68\x01\x69\x01\x6a\x01\x8b\x01\xb0\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xb3\x00\xb4\x00\x22\x00\x9f\xff\x9f\xff\x9f\xff\x8d\x01\x8f\x01\x5b\x00\x1b\xff\xb0\x00\x9f\xff\x91\x01\x5c\x00\x3d\x02\x18\x01\x5d\x00\x52\x00\x3e\x02\xb1\x00\xb3\x00\xb4\x00\x33\x01\xb0\x00\xb0\x00\xb0\x00\xa6\x01\xb5\x00\x19\x01\x19\xff\xb0\x00\x34\x01\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x46\x02\xb8\x00\xb0\x00\xe7\x00\x1d\xff\xb0\x00\x5e\x00\x14\xff\xb9\x00\xa9\x01\x5f\x00\xb5\x00\x60\x00\x61\x00\x62\x00\x48\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xfe\x01\xb8\x00\xaa\x01\xab\x01\xac\x01\xb5\x00\xf8\x00\x13\xff\xb9\x00\xad\x01\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x79\x01\xb8\x00\xb0\x00\xb1\x00\xe8\x00\xb0\x00\xb1\x00\x11\xff\xb9\x00\xb0\x00\x8f\x00\xb5\x00\xe7\x00\xb0\x00\x8e\x00\x4e\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xc7\x00\xb8\x00\xb9\x00\x38\x01\x8f\x00\xb5\x00\xe6\x01\x10\xff\xb9\x00\x16\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x0f\x02\xb8\x00\x60\x02\xfc\x00\x02\x02\x45\x02\xfe\x00\x0f\xff\xb9\x00\x22\x00\xb1\x00\xb5\x00\x1b\xff\xe8\x00\xb1\x00\x48\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x51\x00\xb8\x00\x4a\x00\x09\x02\x52\x00\xb5\x00\x16\x02\x0e\xff\xb9\x00\x37\x01\xb6\x00\xb7\x00\x19\xff\x50\x02\x0f\x02\xb8\x00\x16\x02\x38\x01\xc7\x00\x10\x02\xd9\x01\x0c\x01\xb9\x00\x17\x02\xae\x01\xb5\x00\x14\xff\x0a\x02\xc7\x00\x48\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xc8\x00\xb8\x00\x4a\x00\xac\x00\x68\xff\xb4\x00\xad\x00\xd2\xff\xb9\x00\x76\x00\xa6\x00\x72\x00\x13\xff\x68\xff\x68\xff\x68\xff\x65\x01\x9d\x01\x0c\x02\x68\xff\x73\xff\x68\xff\x68\xff\xe3\x01\x63\x01\xb5\x00\x11\xff\x83\x00\x32\x02\xa8\x00\xb6\x00\xb7\x00\x23\x02\x17\x00\x68\xff\xb8\x00\xdc\x00\x79\x00\x73\x00\x73\xff\x68\xff\x68\xff\xb9\x00\x74\x00\x75\x00\x0d\x02\x10\xff\x1b\x00\x68\xff\x68\xff\x6c\x01\x68\xff\x19\x02\x1c\x00\x6a\x01\x84\x00\x1e\x00\x6c\x01\x1f\x00\x6d\x01\x0f\xff\x20\x00\x76\x00\xa6\x00\x11\x02\x68\xff\xdc\x00\x76\x00\xa6\x00\x13\x02\xba\x01\xde\x00\xe4\x01\x63\x01\x68\xff\x13\x01\x85\x00\x66\x01\x67\x01\xd5\x01\x0e\xff\x33\x02\xa8\x00\x68\xff\x68\xff\x3f\x02\x15\x01\xa8\x00\xed\x01\x2b\x01\x79\x00\x14\x02\xb3\x00\xb4\x00\x22\x00\x79\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x88\x00\x0b\x01\x0c\x01\x68\x01\x69\x01\x6a\x01\x2b\x00\x66\x01\x67\x01\x68\xff\x68\xff\x68\xff\x2c\x00\x0f\x02\x2d\x00\x2e\x02\xb5\x00\x2e\x00\x1c\x02\xdc\x00\x2f\x02\xb6\x00\xb7\x00\xdd\x00\xde\x00\x1e\x02\xb8\x00\x30\x00\x48\x00\x31\x02\x31\x00\x2a\x01\x2b\x01\xb9\x00\x30\x02\x4a\x00\x68\x01\x69\x01\x6a\x01\xaf\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xb0\x01\x22\x00\xa1\x00\xb1\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x61\x01\x62\x01\x63\x01\xb2\x01\x29\x00\x2a\x00\x2b\x00\x2d\x01\x2e\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\xb3\x01\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x8d\xff\xa2\x00\xc0\x01\xb4\x01\x89\x00\xb5\x01\xa3\x00\xa4\x00\xb6\x01\x30\x00\xa5\x00\x12\x02\x31\x00\x76\x00\xa6\x00\xc1\x01\xc2\x01\x17\x00\xa6\x00\xc4\x01\xc6\x01\xc8\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xc9\x01\x1b\x00\xbd\x01\xa8\x00\xbe\x01\xca\x01\xcb\x01\x1c\x00\xcc\x01\x84\x00\x1e\x00\x79\x00\x1f\x00\xb3\x00\xb4\x00\x20\x00\xcd\x01\xce\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xcf\x01\xd1\x01\xd4\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x72\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xe5\x01\xe7\x01\xe9\x01\xb5\x00\x29\x00\x2a\x00\x2b\x00\xee\x01\xb6\x00\xb7\x00\xef\x01\xf6\x01\x2c\x00\xb8\x00\x2d\x00\x52\x01\xf8\x01\x2e\x00\x3e\x01\xa2\x00\xb9\x00\x53\x01\x57\x01\x58\x01\x74\x00\x75\x00\x72\x01\x30\x00\x7e\x01\x7f\x01\x31\x00\x80\x01\x0e\x01\x82\x01\x8a\x01\x8c\x01\x3f\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x8e\x01\x90\x01\x46\x00\x47\x00\x92\x01\x48\x00\xa3\x01\x49\x00\xa4\x01\xa8\x01\xcc\x00\x09\x01\x4a\x00\xda\x00\xd2\x00\xd5\x00\xd8\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xfd\x00\xff\x00\x00\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x07\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x06\x01\x0a\x01\x20\x01\x21\x01\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x26\x01\x2d\x00\x24\x01\x25\x01\x2e\x00\x2e\x01\x2f\x00\x31\x01\xb3\x00\xb4\x00\x69\x00\x6a\x00\x6e\x00\x70\x00\x30\x00\x89\x00\x91\x00\x31\x00\x76\x00\xa6\x00\x94\x00\x95\x00\x97\x00\x4d\xff\xae\x00\xb9\x00\xc3\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xb5\x00\xc0\x00\xbf\x01\xa8\x00\xc6\x00\xb6\x00\xb7\x00\x04\x00\x63\x02\x57\x01\xb8\x00\x79\x00\x50\x02\x52\x02\x53\x02\x5b\x02\xe7\x00\xb9\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x3d\x02\x41\x02\x3e\x00\x3f\x00\x40\x00\x22\x00\x44\x02\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x48\x02\xfe\x01\x45\x02\x4e\x02\x29\x00\x2a\x00\x2b\x00\x02\x02\x01\x02\x17\x00\x04\x02\x85\x01\x2c\x00\x05\x02\x2d\x00\x0f\x02\x1b\x02\x2e\x00\x16\x02\x2f\x00\x19\x02\x19\x00\x1a\x00\x1b\x00\x1c\x02\x21\x02\x26\x02\x30\x00\x27\x02\x1c\x00\x31\x00\x1d\x00\x1e\x00\x86\x01\x1f\x00\x28\x02\x29\x02\x20\x00\x2a\x02\xc5\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xc6\x01\xba\x01\xbd\x01\xe7\x00\xc8\x01\xdc\x00\xe3\x01\x87\x01\xd4\x01\xde\x01\xdf\x01\xe1\x01\xe2\x01\xb3\x00\xb4\x00\xfb\x01\xf2\x01\xfc\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x01\x3d\x01\x43\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x41\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x45\x01\x44\x01\x46\x01\xb5\x00\x29\x00\x2a\x00\x2b\x00\x4e\x01\xb6\x00\xb7\x00\x4f\x01\x55\x01\x2c\x00\xb8\x00\x2d\x00\x5a\x01\x5b\x01\x2e\x00\x5c\x01\x2f\x00\xb9\x00\x3b\x01\x5d\x01\x5e\x01\x61\x01\x6c\x01\x8b\x00\x30\x00\x6f\x01\x5f\x01\x31\x00\x74\x01\x75\x01\x76\x01\x79\x01\x17\x00\x1b\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x7c\x01\x46\x00\x47\x00\x84\x01\x48\x00\x1c\x00\x49\x00\x84\x00\x1e\x00\x98\x01\x1f\x00\x4a\x00\x94\x01\x20\x00\x9c\x01\x9e\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x9f\x01\xa0\x01\xa2\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xd7\x00\xca\x00\xd4\x00\xda\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\xdc\x00\x2d\x00\xc4\xff\xc5\xff\x2e\x00\xef\x00\x2f\x00\x00\x00\xdc\x00\x0a\x01\xdc\x00\x13\x01\x1a\x01\x2a\x01\x30\x00\x37\x01\x1a\x01\x31\x00\x36\x01\x3a\x01\x63\x00\x64\x00\x17\x00\x1c\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x66\x00\x46\x00\x47\x00\x67\x00\x48\x00\x1c\x00\x49\x00\x84\x00\x1e\x00\x68\x00\x1f\x00\x4a\x00\x69\x00\x20\x00\x6c\x00\x70\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x6d\x00\x6e\x00\x8b\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x7f\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x80\x00\x17\x00\x81\x00\x82\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x83\x00\x2d\x00\x1b\x00\x8c\x00\x2e\x00\xff\xff\x2f\x00\xb0\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\xff\xff\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1d\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\x05\x02\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x4a\x02\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1e\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\xc3\x01\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1f\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xd7\x00\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x8c\x00\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\x99\x00\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x76\x00\xa6\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x64\x02\x00\x00\x00\x00\xd0\x01\xa8\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x79\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x70\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x5c\x02\x00\x00\xdf\x00\xa6\x00\x00\x00\x2b\x00\xe0\x00\xde\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00\xa8\x00\xe2\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x57\x02\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x09\x02\x76\x00\xa6\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x94\x01\xa8\x00\x95\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x79\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x49\x02\x15\x01\xa8\x00\x00\x00\xa0\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x22\x02\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2b\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xb8\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xb8\x01\xbb\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2d\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xf0\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2e\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xf7\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x14\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\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\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\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\x3b\x00\x3c\x00\x3d\x00\xb3\x00\xb4\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x72\x00\x8a\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\x00\x00\xaa\x00\xab\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\xb9\x00\x00\x00\x00\x00\x00\x00\x74\x00\x75\x00\x00\x00\x7c\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\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x00\x00\x17\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x8d\x00\x42\x00\x43\x00\x44\x00\xaa\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x00\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x00\xb4\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x00\x00\xaa\x00\xab\x00\xb5\x00\x00\x00\x17\x00\x7d\x00\x7e\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\xb9\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x1c\x00\x00\x00\x05\x02\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x06\x02\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x07\x02\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x41\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x45\x00\x00\x00\x2d\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x7c\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\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcd\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x17\x00\x20\x00\xd1\x00\x00\x00\x17\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x84\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1c\x00\x1f\x00\x1d\x00\x1e\x00\x20\x00\x1f\x00\x00\x00\x17\x00\x20\x00\xe9\x00\x00\x00\x17\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x88\x01\x19\x00\x1a\x00\x1b\x00\x89\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1c\x00\x1f\x00\x1d\x00\x1e\x00\x20\x00\x1f\x00\xb3\x00\xb4\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x00\xb4\x00\x56\x01\xea\x00\x00\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xf3\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x57\x01\xb8\x00\x00\x00\x00\x00\xf4\x00\x00\x00\xb3\x00\xb4\x00\xb9\x00\xf5\x00\xf6\x00\x00\x00\x00\x00\xf7\x00\xb8\x00\x00\x02\xfb\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xf8\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\xfc\x00\xb8\x00\xb3\x00\xb4\x00\xb5\x00\x00\x00\x00\x00\x00\x00\xb9\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\xd3\x01\x00\x00\xdb\x01\x00\x00\xb5\x00\xb9\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\xb5\x00\xb8\x00\xdd\x01\x00\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\xb9\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb3\x00\xb4\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x00\x00\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\xe9\x01\xeb\x01\xb8\x00\x00\x00\xb3\x00\xb4\x00\x00\x00\x00\x00\x00\x00\xb9\x00\xb5\x00\x00\x00\xb5\x00\xec\x01\x00\x00\xb6\x00\xb7\x00\xb6\x00\xb7\x00\x00\x00\xb8\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb3\x00\xb4\x00\xb9\x00\x00\x00\xb9\x00\x00\x00\xb5\x00\xed\x01\x00\x00\xfd\x01\x00\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\xb5\x00\x00\x00\xb5\x00\x97\x01\x00\x00\xb6\x00\xb7\x00\xb6\x00\xb7\x00\x00\x00\xb8\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb5\x00\x00\x00\xb9\x00\x00\x00\xb9\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x00\xb5\x00\x9d\x00\x00\x00\x00\x00\x00\x00\xb6\x00\xb7\x00\x70\x00\x00\x00\x00\x00\xb8\x00\x19\x00\x1a\x00\x1b\x00\x9e\x00\x00\x00\x00\x00\xb9\x00\x17\x00\x1c\x00\x22\x01\x1d\x00\x1e\x00\x9f\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x23\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x5d\x02\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x7a\x01\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x85\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x03\x01\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x38\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x86\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x1e\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x22\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd6\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd8\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xf9\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x3b\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x50\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x51\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x5e\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x6f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x70\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x71\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x76\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x77\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x81\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xa2\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xa7\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xca\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xce\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd1\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd4\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xe3\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x98\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xed\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xef\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x64\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x90\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x96\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x98\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9a\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9b\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xba\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbc\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbe\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc1\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc3\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc5\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x18\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\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 = Happy_Data_Array.array (3, 249) [
-	(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)
-	]
-
-happy_n_terms = 119 :: Int
-happy_n_nonterms = 73 :: Int
-
-happyReduce_3 = happySpecReduce_0  0# happyReduction_3
-happyReduction_3  =  happyIn6
-		 ([]
-	)
-
-happyReduce_4 = happySpecReduce_2  0# happyReduction_4
-happyReduction_4 happy_x_2
-	happy_x_1
-	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_5 = happySpecReduce_2  0# happyReduction_5
-happyReduction_5 happy_x_2
-	happy_x_1
-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (map RealDecl happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_6 = happyReduce 4# 0# happyReduction_6
-happyReduction_6 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	case happyOut6 happy_x_4 of { happy_var_4 -> 
-	happyIn6
-		 (RealDecl (PInclude happy_var_2) : happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_7 = happySpecReduce_1  1# happyReduction_7
-happyReduction_7 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (happy_var_1
-	)}
-
-happyReduce_8 = happySpecReduce_1  1# happyReduction_8
-happyReduction_8 happy_x_1
-	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl (DataDecl happy_var_1)
-	)}
-
-happyReduce_9 = happySpecReduce_1  1# happyReduction_9
-happyReduction_9 happy_x_1
-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_10 = happySpecReduce_3  1# happyReduction_10
-happyReduction_10 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
-	happyIn7
-		 (RealDecl (Freeze happy_var_2)
-	)}
-
-happyReduce_11 = happyReduce 4# 1# happyReduction_11
-happyReduction_11 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut62 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_12 = happyReduce 4# 1# happyReduction_12
-happyReduction_12 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut63 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PDoUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_13 = happyReduce 4# 1# happyReduction_13
-happyReduction_13 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut64 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PIdiom happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_14 = happyReduce 4# 1# happyReduction_14
-happyReduction_14 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut65 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PParams happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_15 = happyReduce 4# 1# happyReduction_15
-happyReduction_15 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut66 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PNamespace happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_16 = happySpecReduce_1  1# happyReduction_16
-happyReduction_16 happy_x_1
-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_17 = happyReduce 6# 1# happyReduction_17
-happyReduction_17 (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 happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut40 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	happyIn7
-		 (PSyntax happy_var_2 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_18 = happySpecReduce_2  1# happyReduction_18
-happyReduction_18 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CInclude happy_var_2)
-	)}
-
-happyReduce_19 = happySpecReduce_2  1# happyReduction_19
-happyReduction_19 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CLib happy_var_2)
-	)}
-
-happyReduce_20 = happyReduce 5# 2# happyReduction_20
-happyReduction_20 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn8
-		 (Transform happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_21 = happyReduce 7# 3# happyReduction_21
-happyReduction_21 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	case happyOut15 happy_x_4 of { happy_var_4 -> 
-	case happyOut77 happy_x_5 of { happy_var_5 -> 
-	case happyOut76 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (FunType happy_var_1 happy_var_3 (nub happy_var_4) happy_var_5 happy_var_6
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_22 = happySpecReduce_3  3# happyReduction_22
-happyReduction_22 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	happyIn9
-		 (ProofScript happy_var_1 happy_var_2
-	)}}
-
-happyReduce_23 = happyReduce 9# 3# happyReduction_23
-happyReduction_23 (happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	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 happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut14 happy_x_6 of { happy_var_6 -> 
-	case happyOut77 happy_x_8 of { happy_var_8 -> 
-	case happyOut76 happy_x_9 of { happy_var_9 -> 
-	happyIn9
-		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}}}}
-
-happyReduce_24 = happyReduce 10# 3# happyReduction_24
-happyReduction_24 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	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 happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_7 of { happy_var_7 -> 
-	case happyOut77 happy_x_9 of { happy_var_9 -> 
-	case happyOut76 happy_x_10 of { happy_var_10 -> 
-	happyIn9
-		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_25 = happyReduce 8# 3# happyReduction_25
-happyReduction_25 (happy_x_8 `HappyStk`
-	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 happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut15 happy_x_5 of { happy_var_5 -> 
-	case happyOut77 happy_x_7 of { happy_var_7 -> 
-	case happyOut76 happy_x_8 of { happy_var_8 -> 
-	happyIn9
-		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_5)
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_26 = happyReduce 5# 3# happyReduction_26
-happyReduction_26 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn9
-		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
-	) `HappyStk` happyRest}}
-
-happyReduce_27 = happyReduce 8# 3# happyReduction_27
-happyReduction_27 (happy_x_8 `HappyStk`
-	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 happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_7 of { happy_var_7 -> 
-	happyIn9
-		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}
-
-happyReduce_28 = happyReduce 7# 3# happyReduction_28
-happyReduction_28 (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 happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut14 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_29 = happySpecReduce_1  4# happyReduction_29
-happyReduction_29 happy_x_1
-	 =  happyIn10
-		 (Vis Public
-	)
-
-happyReduce_30 = happySpecReduce_1  4# happyReduction_30
-happyReduction_30 happy_x_1
-	 =  happyIn10
-		 (Vis Private
-	)
-
-happyReduce_31 = happySpecReduce_1  4# happyReduction_31
-happyReduction_31 happy_x_1
-	 =  happyIn10
-		 (Vis Abstract
-	)
-
-happyReduce_32 = happySpecReduce_0  4# happyReduction_32
-happyReduction_32  =  happyIn10
-		 (Vis Public
-	)
-
-happyReduce_33 = happySpecReduce_1  5# happyReduction_33
-happyReduction_33 happy_x_1
-	 =  happyIn11
-		 (False
-	)
-
-happyReduce_34 = happySpecReduce_2  5# happyReduction_34
-happyReduction_34 happy_x_2
-	happy_x_1
-	 =  happyIn11
-		 (True
-	)
-
-happyReduce_35 = happySpecReduce_3  6# happyReduction_35
-happyReduction_35 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut12 happy_x_3 of { happy_var_3 -> 
-	happyIn12
-		 (happy_var_2:happy_var_3
-	)}}
-
-happyReduce_36 = happySpecReduce_0  6# happyReduction_36
-happyReduction_36  =  happyIn12
-		 ([]
-	)
-
-happyReduce_37 = happySpecReduce_1  7# happyReduction_37
-happyReduction_37 happy_x_1
-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
-	happyIn13
-		 (happy_var_1
-	)}
-
-happyReduce_38 = happySpecReduce_1  7# happyReduction_38
-happyReduction_38 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn13
-		 (happy_var_1
-	)}
-
-happyReduce_39 = happySpecReduce_3  7# happyReduction_39
-happyReduction_39 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn13
-		 (happy_var_2
-	)}
-
-happyReduce_40 = happyReduce 5# 7# happyReduction_40
-happyReduction_40 (happy_x_5 `HappyStk`
-	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 happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn13
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_41 = happySpecReduce_2  8# happyReduction_41
-happyReduction_41 happy_x_2
-	happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	case happyOut14 happy_x_2 of { happy_var_2 -> 
-	happyIn14
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_42 = happySpecReduce_1  8# happyReduction_42
-happyReduction_42 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn14
-		 ([happy_var_1]
-	)}
-
-happyReduce_43 = happySpecReduce_1  9# happyReduction_43
-happyReduction_43 happy_x_1
-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
-	happyIn15
-		 (happy_var_1
-	)}
-
-happyReduce_44 = happySpecReduce_3  9# happyReduction_44
-happyReduction_44 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut16 happy_x_2 of { happy_var_2 -> 
-	happyIn15
-		 (happy_var_2
-	)}
-
-happyReduce_45 = happySpecReduce_0  10# happyReduction_45
-happyReduction_45  =  happyIn16
-		 ([]
-	)
-
-happyReduce_46 = happySpecReduce_2  10# happyReduction_46
-happyReduction_46 happy_x_2
-	happy_x_1
-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
-	case happyOut16 happy_x_2 of { happy_var_2 -> 
-	happyIn16
-		 (happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_47 = happySpecReduce_1  11# happyReduction_47
-happyReduction_47 happy_x_1
-	 =  happyIn17
-		 ([NoCG]
-	)
-
-happyReduce_48 = happySpecReduce_1  11# happyReduction_48
-happyReduction_48 happy_x_1
-	 =  happyIn17
-		 ([CGEval, Inline]
-	)
-
-happyReduce_49 = happyReduce 4# 11# happyReduction_49
-happyReduction_49 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut38 happy_x_3 of { happy_var_3 -> 
-	happyIn17
-		 ([CGSpec happy_var_3]
-	) `HappyStk` happyRest}
-
-happyReduce_50 = happySpecReduce_1  11# happyReduction_50
-happyReduction_50 happy_x_1
-	 =  happyIn17
-		 ([CGSpec []]
-	)
-
-happyReduce_51 = happySpecReduce_1  11# happyReduction_51
-happyReduction_51 happy_x_1
-	 =  happyIn17
-		 ([Inline]
-	)
-
-happyReduce_52 = happySpecReduce_2  11# happyReduction_52
-happyReduction_52 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn17
-		 ([CExport happy_var_2]
-	)}
-
-happyReduce_53 = happyReduce 4# 12# happyReduction_53
-happyReduction_53 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut21 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	happyIn18
-		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
-	) `HappyStk` happyRest}}}
-
-happyReduce_54 = happySpecReduce_1  13# happyReduction_54
-happyReduction_54 happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	happyIn19
-		 ([happy_var_1]
-	)}
-
-happyReduce_55 = happySpecReduce_3  13# happyReduction_55
-happyReduction_55 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	happyIn19
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_56 = happySpecReduce_1  14# happyReduction_56
-happyReduction_56 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
-	happyIn20
-		 (happy_var_1
-	)}
-
-happyReduce_57 = happySpecReduce_1  14# happyReduction_57
-happyReduction_57 happy_x_1
-	 =  happyIn20
-		 ("-"
-	)
-
-happyReduce_58 = happySpecReduce_1  14# happyReduction_58
-happyReduction_58 happy_x_1
-	 =  happyIn20
-		 ("<"
-	)
-
-happyReduce_59 = happySpecReduce_1  14# happyReduction_59
-happyReduction_59 happy_x_1
-	 =  happyIn20
-		 (">"
-	)
-
-happyReduce_60 = happySpecReduce_1  15# happyReduction_60
-happyReduction_60 happy_x_1
-	 =  happyIn21
-		 (LeftAssoc
-	)
-
-happyReduce_61 = happySpecReduce_1  15# happyReduction_61
-happyReduction_61 happy_x_1
-	 =  happyIn21
-		 (RightAssoc
-	)
-
-happyReduce_62 = happySpecReduce_1  15# happyReduction_62
-happyReduction_62 happy_x_1
-	 =  happyIn21
-		 (NonAssoc
-	)
-
-happyReduce_63 = happyReduce 4# 16# happyReduction_63
-happyReduction_63 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut23 happy_x_3 of { happy_var_3 -> 
-	happyIn22
-		 (LatexDefs happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_64 = happySpecReduce_3  17# happyReduction_64
-happyReduction_64 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	happyIn23
-		 ([(happy_var_1,happy_var_3)]
-	)}}
-
-happyReduce_65 = happyReduce 5# 17# happyReduction_65
-happyReduction_65 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	case happyOut23 happy_x_5 of { happy_var_5 -> 
-	happyIn23
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_66 = happySpecReduce_2  18# happyReduction_66
-happyReduction_66 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	happyIn24
-		 ((happy_var_1, happy_var_2)
-	)}}
-
-happyReduce_67 = happySpecReduce_0  19# happyReduction_67
-happyReduction_67  =  happyIn25
-		 ([]
-	)
-
-happyReduce_68 = happySpecReduce_2  19# happyReduction_68
-happyReduction_68 happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	happyIn25
-		 ((happy_var_1,Nothing):happy_var_2
-	)}}
-
-happyReduce_69 = happyReduce 5# 19# happyReduction_69
-happyReduction_69 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn25
-		 ((RVar happy_var_4 happy_var_5 happy_var_1, Just happy_var_1):happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_70 = happyReduce 5# 19# happyReduction_70
-happyReduction_70 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut25 happy_x_5 of { happy_var_5 -> 
-	happyIn25
-		 ((happy_var_3, Just happy_var_1):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_71 = happyReduce 6# 20# happyReduction_71
-happyReduction_71 (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 happyOut28 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut27 happy_x_4 of { happy_var_4 -> 
-	case happyOut77 happy_x_5 of { happy_var_5 -> 
-	case happyOut76 happy_x_6 of { happy_var_6 -> 
-	happyIn26
-		 (mkDatatype happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_72 = happySpecReduce_3  21# happyReduction_72
-happyReduction_72 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
-	case happyOut70 happy_x_2 of { happy_var_2 -> 
-	happyIn27
-		 (Right (happy_var_1,happy_var_2)
-	)}}
-
-happyReduce_73 = happySpecReduce_3  21# happyReduction_73
-happyReduction_73 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
-	happyIn27
-		 (Left happy_var_2
-	)}
-
-happyReduce_74 = happySpecReduce_3  21# happyReduction_74
-happyReduction_74 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn27
-		 (Left (RConst happy_var_2 happy_var_3 TYPE)
-	)}}
-
-happyReduce_75 = happySpecReduce_0  22# happyReduction_75
-happyReduction_75  =  happyIn28
-		 ([]
-	)
-
-happyReduce_76 = happySpecReduce_3  22# happyReduction_76
-happyReduction_76 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
-	happyIn28
-		 (happy_var_2
-	)}
-
-happyReduce_77 = happySpecReduce_1  23# happyReduction_77
-happyReduction_77 happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	happyIn29
-		 ([happy_var_1]
-	)}
-
-happyReduce_78 = happySpecReduce_3  23# happyReduction_78
-happyReduction_78 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	case happyOut29 happy_x_3 of { happy_var_3 -> 
-	happyIn29
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_79 = happySpecReduce_1  24# happyReduction_79
-happyReduction_79 happy_x_1
-	 =  happyIn30
-		 (NoElim
-	)
-
-happyReduce_80 = happySpecReduce_1  24# happyReduction_80
-happyReduction_80 happy_x_1
-	 =  happyIn30
-		 (Collapsible
-	)
-
-happyReduce_81 = happySpecReduce_1  25# happyReduction_81
-happyReduction_81 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
-	happyIn31
-		 (happy_var_1
-	)}
-
-happyReduce_82 = happySpecReduce_3  25# happyReduction_82
-happyReduction_82 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut20 happy_x_2 of { happy_var_2 -> 
-	happyIn31
-		 (useropFn happy_var_2
-	)}
-
-happyReduce_83 = happyReduce 4# 26# happyReduction_83
-happyReduction_83 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	case happyOut53 happy_x_4 of { happy_var_4 -> 
-	happyIn32
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_84 = happyReduce 5# 26# happyReduction_84
-happyReduction_84 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
-	case happyOut42 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn32
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_85 = happySpecReduce_3  26# happyReduction_85
-happyReduction_85 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_86 = happySpecReduce_3  26# happyReduction_86
-happyReduction_86 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_87 = happySpecReduce_1  26# happyReduction_87
-happyReduction_87 happy_x_1
-	 =  happyIn32
-		 (RPlaceholder
-	)
-
-happyReduce_88 = happySpecReduce_3  26# happyReduction_88
-happyReduction_88 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_89 = happySpecReduce_3  26# happyReduction_89
-happyReduction_89 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_90 = happySpecReduce_1  27# happyReduction_90
-happyReduction_90 happy_x_1
-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_91 = happySpecReduce_3  27# happyReduction_91
-happyReduction_91 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn33
-		 (happy_var_2
-	)}
-
-happyReduce_92 = happyReduce 4# 27# happyReduction_92
-happyReduction_92 (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 happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	case happyOut53 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_93 = happyReduce 5# 27# happyReduction_93
-happyReduction_93 (happy_x_5 `HappyStk`
-	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 happyOut42 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn33
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_94 = happyReduce 4# 27# happyReduction_94
-happyReduction_94 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy")) RPlaceholder) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_95 = happyReduce 4# 27# happyReduction_95
-happyReduction_95 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (doBind Lam happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_96 = happyReduce 4# 27# happyReduction_96
-happyReduction_96 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut41 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (doLetBind happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_97 = happySpecReduce_1  27# happyReduction_97
-happyReduction_97 happy_x_1
-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_98 = happyReduce 8# 27# happyReduction_98
-happyReduction_98 (happy_x_8 `HappyStk`
-	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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut33 happy_x_6 of { happy_var_6 -> 
-	case happyOut77 happy_x_7 of { happy_var_7 -> 
-	case happyOut76 happy_x_8 of { happy_var_8 -> 
-	happyIn33
-		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else")) [happy_var_2,happy_var_4,happy_var_6]
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_99 = happySpecReduce_2  28# happyReduction_99
-happyReduction_99 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	happyIn34
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_100 = happyReduce 4# 28# happyReduction_100
-happyReduction_100 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut34 happy_x_4 of { happy_var_4 -> 
-	happyIn34
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_101 = happySpecReduce_3  29# happyReduction_101
-happyReduction_101 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
-	case happyOut35 happy_x_3 of { happy_var_3 -> 
-	happyIn35
-		 (happy_var_1 ++ happy_var_3
-	)}}
-
-happyReduce_102 = happySpecReduce_1  29# happyReduction_102
-happyReduction_102 happy_x_1
-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
-	happyIn35
-		 (happy_var_1
-	)}
-
-happyReduce_103 = happySpecReduce_3  30# happyReduction_103
-happyReduction_103 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	happyIn36
-		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
-	)}}
-
-happyReduce_104 = happySpecReduce_1  31# happyReduction_104
-happyReduction_104 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn37
-		 ([happy_var_1]
-	)}
-
-happyReduce_105 = happySpecReduce_3  31# happyReduction_105
-happyReduction_105 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut37 happy_x_3 of { happy_var_3 -> 
-	happyIn37
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_106 = happySpecReduce_2  32# happyReduction_106
-happyReduction_106 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	happyIn38
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_107 = happySpecReduce_1  32# happyReduction_107
-happyReduction_107 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn38
-		 ([(happy_var_1, 0)]
-	)}
-
-happyReduce_108 = happySpecReduce_3  32# happyReduction_108
-happyReduction_108 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut38 happy_x_3 of { happy_var_3 -> 
-	happyIn38
-		 ((happy_var_1,0):happy_var_3
-	)}}
-
-happyReduce_109 = happyReduce 4# 32# happyReduction_109
-happyReduction_109 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut38 happy_x_4 of { happy_var_4 -> 
-	happyIn38
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_110 = happySpecReduce_1  33# happyReduction_110
-happyReduction_110 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	happyIn39
-		 ([happy_var_1]
-	)}
-
-happyReduce_111 = happySpecReduce_3  33# happyReduction_111
-happyReduction_111 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut37 happy_x_3 of { happy_var_3 -> 
-	happyIn39
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_112 = happySpecReduce_1  34# happyReduction_112
-happyReduction_112 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn40
-		 ([happy_var_1]
-	)}
-
-happyReduce_113 = happySpecReduce_2  34# happyReduction_113
-happyReduction_113 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut40 happy_x_2 of { happy_var_2 -> 
-	happyIn40
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_114 = happyReduce 4# 35# happyReduction_114
-happyReduction_114 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn41
-		 ([(happy_var_1,happy_var_2,happy_var_4)]
-	) `HappyStk` happyRest}}}
-
-happyReduce_115 = happyReduce 6# 35# happyReduction_115
-happyReduction_115 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut41 happy_x_6 of { happy_var_6 -> 
-	happyIn41
-		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_116 = happySpecReduce_3  36# happyReduction_116
-happyReduction_116 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn42
-		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1)
-	)}}}
-
-happyReduce_117 = happySpecReduce_3  36# happyReduction_117
-happyReduction_117 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn42
-		 ((happy_var_1, happy_var_3)
-	)}}
-
-happyReduce_118 = happyReduce 4# 37# happyReduction_118
-happyReduction_118 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn43
-		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_119 = happyReduce 5# 37# happyReduction_119
-happyReduction_119 (happy_x_5 `HappyStk`
-	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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_120 = happyReduce 5# 37# happyReduction_120
-happyReduction_120 (happy_x_5 `HappyStk`
-	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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) [happy_var_1, happy_var_3]
-	) `HappyStk` happyRest}}}}
-
-happyReduce_121 = happyReduce 5# 37# happyReduction_121
-happyReduction_121 (happy_x_5 `HappyStk`
-	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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_122 = happyReduce 5# 37# happyReduction_122
-happyReduction_122 (happy_x_5 `HappyStk`
-	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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_123 = happyReduce 5# 37# happyReduction_123
-happyReduction_123 (happy_x_5 `HappyStk`
-	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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_124 = happySpecReduce_1  37# happyReduction_124
-happyReduction_124 happy_x_1
-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
-	happyIn43
-		 (happy_var_1
-	)}
-
-happyReduce_125 = happyReduce 5# 37# happyReduction_125
-happyReduction_125 (happy_x_5 `HappyStk`
-	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 happyOut53 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_126 = happyReduce 5# 38# happyReduction_126
-happyReduction_126 (happy_x_5 `HappyStk`
-	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 happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn44
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_127 = happyReduce 6# 39# happyReduction_127
-happyReduction_127 (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 happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_128 = happyReduce 6# 39# happyReduction_128
-happyReduction_128 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_129 = happyReduce 6# 39# happyReduction_129
-happyReduction_129 (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 happyOut46 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_130 = happyReduce 6# 39# happyReduction_130
-happyReduction_130 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut46 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_131 = happyReduce 6# 39# happyReduction_131
-happyReduction_131 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_132 = happyReduce 6# 39# happyReduction_132
-happyReduction_132 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex Eager happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_133 = happyReduce 6# 39# happyReduction_133
-happyReduction_133 (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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex Eager (RVar happy_var_4 happy_var_5 (MN "X" 0))) happy_var_3)
-	) `HappyStk` happyRest}}}
-
-happyReduce_134 = happyReduce 5# 39# happyReduction_134
-happyReduction_134 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (RBind (MN "X" 1) (Lam RPlaceholder)
-                    (RBind (MN "X" 2) (Pi Ex Eager (RVar happy_var_3 happy_var_4 (MN "X" 0)))
-                       (RVar happy_var_3 happy_var_4 (MN "X" 1))))
-	) `HappyStk` happyRest}}
-
-happyReduce_135 = happyReduce 5# 39# 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 happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                   (RBind (MN "X" 1) (Lam RPlaceholder)
-                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair"))
-                                    [RVar happy_var_3 happy_var_4 (MN "X" 0),
-                                     RVar happy_var_3 happy_var_4 (MN "X" 1)]))
-	) `HappyStk` happyRest}}
-
-happyReduce_136 = happyReduce 6# 39# 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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [happy_var_2,
-                                     RVar happy_var_4 happy_var_5 (MN "X" 0)])
-	) `HappyStk` happyRest}}}
-
-happyReduce_137 = happyReduce 6# 39# happyReduction_137
-happyReduction_137 (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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [RVar happy_var_4 happy_var_5 (MN "X" 0), happy_var_3])
-	) `HappyStk` happyRest}}}
-
-happyReduce_138 = happySpecReduce_1  40# happyReduction_138
-happyReduction_138 happy_x_1
-	 =  happyIn46
-		 ("<"
-	)
-
-happyReduce_139 = happySpecReduce_1  40# happyReduction_139
-happyReduction_139 happy_x_1
-	 =  happyIn46
-		 (">"
-	)
-
-happyReduce_140 = happySpecReduce_0  41# happyReduction_140
-happyReduction_140  =  happyIn47
-		 (RPlaceholder
-	)
-
-happyReduce_141 = happySpecReduce_2  41# happyReduction_141
-happyReduction_141 happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn47
-		 (happy_var_2
-	)}
-
-happyReduce_142 = happySpecReduce_0  42# happyReduction_142
-happyReduction_142  =  happyIn48
-		 (RPlaceholder
-	)
-
-happyReduce_143 = happySpecReduce_2  42# happyReduction_143
-happyReduction_143 happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn48
-		 (happy_var_2
-	)}
-
-happyReduce_144 = happyReduce 5# 43# happyReduction_144
-happyReduction_144 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut39 happy_x_1 of { happy_var_1 -> 
-	case happyOut48 happy_x_2 of { happy_var_2 -> 
-	case happyOut49 happy_x_5 of { happy_var_5 -> 
-	happyIn49
-		 (doBind (Pi Im Eager) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_145 = happySpecReduce_1  43# happyReduction_145
-happyReduction_145 happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	happyIn49
-		 (happy_var_1
-	)}
-
-happyReduce_146 = happySpecReduce_3  44# happyReduction_146
-happyReduction_146 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	happyIn50
-		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
-	)}}
-
-happyReduce_147 = happyReduce 5# 44# happyReduction_147
-happyReduction_147 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
-	case happyOut50 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (doBind (Pi Ex Eager) happy_var_2 happy_var_5
-	) `HappyStk` happyRest}}
-
-happyReduce_148 = happyReduce 5# 44# happyReduction_148
-happyReduction_148 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
-	case happyOut50 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (doBind (Pi Ex Lazy) happy_var_2 happy_var_5
-	) `HappyStk` happyRest}}
-
-happyReduce_149 = happySpecReduce_3  44# happyReduction_149
-happyReduction_149 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn50
-		 (bracket happy_var_2
-	)}
-
-happyReduce_150 = happyReduce 7# 44# happyReduction_150
-happyReduction_150 (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 happyOut50 happy_x_2 of { happy_var_2 -> 
-	case happyOut50 happy_x_4 of { happy_var_4 -> 
-	case happyOut77 happy_x_5 of { happy_var_5 -> 
-	case happyOut76 happy_x_6 of { happy_var_6 -> 
-	happyIn50
-		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_151 = happySpecReduce_1  44# happyReduction_151
-happyReduction_151 happy_x_1
-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
-	happyIn50
-		 (happy_var_1
-	)}
-
-happyReduce_152 = happySpecReduce_3  44# happyReduction_152
-happyReduction_152 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn50
-		 (happy_var_2
-	)}
-
-happyReduce_153 = happyReduce 5# 44# happyReduction_153
-happyReduction_153 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_154 = happyReduce 5# 44# happyReduction_154
-happyReduction_154 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut52 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_155 = happySpecReduce_1  44# happyReduction_155
-happyReduction_155 happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	happyIn50
-		 (happy_var_1
-	)}
-
-happyReduce_156 = happyReduce 8# 45# happyReduction_156
-happyReduction_156 (happy_x_8 `HappyStk`
-	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 happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut50 happy_x_5 of { happy_var_5 -> 
-	case happyOut77 happy_x_7 of { happy_var_7 -> 
-	case happyOut76 happy_x_8 of { happy_var_8 -> 
-	happyIn51
-		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_157 = happySpecReduce_3  46# happyReduction_157
-happyReduction_157 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	happyIn52
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_158 = happySpecReduce_3  46# happyReduction_158
-happyReduction_158 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut52 happy_x_3 of { happy_var_3 -> 
-	happyIn52
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_159 = happySpecReduce_3  47# happyReduction_159
-happyReduction_159 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_160 = happySpecReduce_3  47# happyReduction_160
-happyReduction_160 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (RReturn happy_var_2 happy_var_3
-	)}}
-
-happyReduce_161 = happySpecReduce_3  47# happyReduction_161
-happyReduction_161 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn53
-		 (bracket happy_var_2
-	)}
-
-happyReduce_162 = happySpecReduce_2  47# happyReduction_162
-happyReduction_162 happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_2 of { happy_var_2 -> 
-	happyIn53
-		 (RPure happy_var_2
-	)}
-
-happyReduce_163 = happySpecReduce_1  47# happyReduction_163
-happyReduction_163 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
-	happyIn53
-		 (RMetavar happy_var_1
-	)}
-
-happyReduce_164 = happyReduce 4# 47# happyReduction_164
-happyReduction_164 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn53
-		 (RExpVar happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_165 = happySpecReduce_3  47# happyReduction_165
-happyReduction_165 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_166 = happySpecReduce_1  47# happyReduction_166
-happyReduction_166 happy_x_1
-	 =  happyIn53
-		 (RRefl
-	)
-
-happyReduce_167 = happySpecReduce_3  47# happyReduction_167
-happyReduction_167 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_168 = happySpecReduce_3  47# happyReduction_168
-happyReduction_168 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_169 = happySpecReduce_1  47# happyReduction_169
-happyReduction_169 happy_x_1
-	 =  happyIn53
-		 (RPlaceholder
-	)
-
-happyReduce_170 = happySpecReduce_1  47# happyReduction_170
-happyReduction_170 happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 (RDo happy_var_1
-	)}
-
-happyReduce_171 = happySpecReduce_3  47# happyReduction_171
-happyReduction_171 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn53
-		 (RIdiom happy_var_2
-	)}
-
-happyReduce_172 = happyReduce 5# 47# happyReduction_172
-happyReduction_172 (happy_x_5 `HappyStk`
-	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 happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn53
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_173 = happySpecReduce_1  47# happyReduction_173
-happyReduction_173 happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 (happy_var_1
-	)}
-
-happyReduce_174 = happySpecReduce_1  47# happyReduction_174
-happyReduction_174 happy_x_1
-	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 (happy_var_1
-	)}
-
-happyReduce_175 = happySpecReduce_1  47# happyReduction_175
-happyReduction_175 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 (happy_var_1
-	)}
-
-happyReduce_176 = happyReduce 7# 48# happyReduction_176
-happyReduction_176 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut77 happy_x_6 of { happy_var_6 -> 
-	case happyOut76 happy_x_7 of { happy_var_7 -> 
-	happyIn54
-		 (RApp happy_var_6 happy_var_7 (RAppImp happy_var_6 happy_var_7 (UN "a") (RVar happy_var_6 happy_var_7 (UN "Exists")) happy_var_2) happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_177 = happyReduce 5# 48# happyReduction_177
-happyReduction_177 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn54
-		 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_178 = happySpecReduce_3  49# happyReduction_178
-happyReduction_178 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn55
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_179 = happySpecReduce_3  49# happyReduction_179
-happyReduction_179 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut55 happy_x_3 of { happy_var_3 -> 
-	happyIn55
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_180 = happyReduce 4# 50# happyReduction_180
-happyReduction_180 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut57 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_181 = happyReduce 10# 50# happyReduction_181
-happyReduction_181 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	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 happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	case happyOut77 happy_x_6 of { happy_var_6 -> 
-	case happyOut76 happy_x_7 of { happy_var_7 -> 
-	case happyOut57 happy_x_9 of { happy_var_9 -> 
-	happyIn56
-		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_182 = happySpecReduce_2  51# happyReduction_182
-happyReduction_182 happy_x_2
-	happy_x_1
-	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
-	case happyOut57 happy_x_2 of { happy_var_2 -> 
-	happyIn57
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_183 = happySpecReduce_1  51# happyReduction_183
-happyReduction_183 happy_x_1
-	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
-	happyIn57
-		 ([happy_var_1]
-	)}
-
-happyReduce_184 = happyReduce 7# 52# happyReduction_184
-happyReduction_184 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut77 happy_x_5 of { happy_var_5 -> 
-	case happyOut76 happy_x_6 of { happy_var_6 -> 
-	happyIn58
-		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_185 = happyReduce 8# 52# happyReduction_185
-happyReduction_185 (happy_x_8 `HappyStk`
-	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 happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	case happyOut77 happy_x_6 of { happy_var_6 -> 
-	case happyOut76 happy_x_7 of { happy_var_7 -> 
-	happyIn58
-		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_186 = happyReduce 4# 52# happyReduction_186
-happyReduction_186 (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 happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn58
-		 (DoExp happy_var_2 happy_var_3 happy_var_1
-	) `HappyStk` happyRest}}}
-
-happyReduce_187 = happySpecReduce_1  53# happyReduction_187
-happyReduction_187 happy_x_1
-	 =  happyIn59
-		 (TYPE
-	)
-
-happyReduce_188 = happySpecReduce_1  53# happyReduction_188
-happyReduction_188 happy_x_1
-	 =  happyIn59
-		 (StringType
-	)
-
-happyReduce_189 = happySpecReduce_1  53# happyReduction_189
-happyReduction_189 happy_x_1
-	 =  happyIn59
-		 (IntType
-	)
-
-happyReduce_190 = happySpecReduce_1  53# happyReduction_190
-happyReduction_190 happy_x_1
-	 =  happyIn59
-		 (CharType
-	)
-
-happyReduce_191 = happySpecReduce_1  53# happyReduction_191
-happyReduction_191 happy_x_1
-	 =  happyIn59
-		 (FloatType
-	)
-
-happyReduce_192 = happySpecReduce_1  53# happyReduction_192
-happyReduction_192 happy_x_1
-	 =  happyIn59
-		 (PtrType
-	)
-
-happyReduce_193 = happySpecReduce_1  53# happyReduction_193
-happyReduction_193 happy_x_1
-	 =  happyIn59
-		 (Builtin "Handle"
-	)
-
-happyReduce_194 = happySpecReduce_1  53# happyReduction_194
-happyReduction_194 happy_x_1
-	 =  happyIn59
-		 (Builtin "Lock"
-	)
-
-happyReduce_195 = happySpecReduce_1  53# happyReduction_195
-happyReduction_195 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
-	happyIn59
-		 (Num happy_var_1
-	)}
-
-happyReduce_196 = happySpecReduce_1  53# happyReduction_196
-happyReduction_196 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
-	happyIn59
-		 (Ch happy_var_1
-	)}
-
-happyReduce_197 = happySpecReduce_1  53# happyReduction_197
-happyReduction_197 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
-	happyIn59
-		 (Str happy_var_1
-	)}
-
-happyReduce_198 = happySpecReduce_1  53# happyReduction_198
-happyReduction_198 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
-	happyIn59
-		 (Bo happy_var_1
-	)}
-
-happyReduce_199 = happySpecReduce_1  53# happyReduction_199
-happyReduction_199 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
-	happyIn59
-		 (Fl happy_var_1
-	)}
-
-happyReduce_200 = happySpecReduce_0  54# happyReduction_200
-happyReduction_200  =  happyIn60
-		 ([]
-	)
-
-happyReduce_201 = happySpecReduce_2  54# happyReduction_201
-happyReduction_201 happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
-	case happyOut60 happy_x_2 of { happy_var_2 -> 
-	happyIn60
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_202 = happyReduce 4# 55# happyReduction_202
-happyReduction_202 (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 happyOut62 happy_x_3 of { happy_var_3 -> 
-	happyIn61
-		 ((happy_var_2, happy_var_3)
-	) `HappyStk` happyRest}}
-
-happyReduce_203 = happySpecReduce_3  55# happyReduction_203
-happyReduction_203 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn61
-		 ((RConst happy_var_2 happy_var_3 TYPE, [])
-	)}}
-
-happyReduce_204 = happyReduce 4# 55# happyReduction_204
-happyReduction_204 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn61
-		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
-	) `HappyStk` happyRest}}}
-
-happyReduce_205 = happySpecReduce_0  56# happyReduction_205
-happyReduction_205  =  happyIn62
-		 ([]
-	)
-
-happyReduce_206 = happyReduce 4# 56# happyReduction_206
-happyReduction_206 (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 -> 
-	happyIn62
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_207 = happyReduce 7# 57# happyReduction_207
-happyReduction_207 (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 happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_6 of { happy_var_6 -> 
-	happyIn63
-		 ((happy_var_4,happy_var_6)
-	) `HappyStk` happyRest}}
-
-happyReduce_208 = happyReduce 6# 58# happyReduction_208
-happyReduction_208 (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 happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_5 of { happy_var_5 -> 
-	happyIn64
-		 ((happy_var_3,happy_var_5)
-	) `HappyStk` happyRest}}
-
-happyReduce_209 = happyReduce 4# 59# happyReduction_209
-happyReduction_209 (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 -> 
-	happyIn65
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_210 = happySpecReduce_2  60# happyReduction_210
-happyReduction_210 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn66
-		 (happy_var_2
-	)}
-
-happyReduce_211 = happySpecReduce_3  61# happyReduction_211
-happyReduction_211 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	happyIn67
-		 ([(happy_var_1, happy_var_3)]
-	)}}
-
-happyReduce_212 = happyReduce 5# 61# happyReduction_212
-happyReduction_212 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	case happyOut67 happy_x_5 of { happy_var_5 -> 
-	happyIn67
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_213 = happySpecReduce_1  62# happyReduction_213
-happyReduction_213 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn68
-		 ([happy_var_1]
-	)}
-
-happyReduce_214 = happySpecReduce_2  62# happyReduction_214
-happyReduction_214 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut68 happy_x_2 of { happy_var_2 -> 
-	happyIn68
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_215 = happySpecReduce_1  63# happyReduction_215
-happyReduction_215 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn69
-		 (happy_var_1
-	)}
-
-happyReduce_216 = happySpecReduce_1  63# happyReduction_216
-happyReduction_216 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn69
-		 (happy_var_1
-	)}
-
-happyReduce_217 = happySpecReduce_0  64# happyReduction_217
-happyReduction_217  =  happyIn70
-		 ([]
-	)
-
-happyReduce_218 = happySpecReduce_1  64# happyReduction_218
-happyReduction_218 happy_x_1
-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
-	happyIn70
-		 ([happy_var_1]
-	)}
-
-happyReduce_219 = happySpecReduce_3  64# happyReduction_219
-happyReduction_219 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
-	case happyOut70 happy_x_3 of { happy_var_3 -> 
-	happyIn70
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_220 = happySpecReduce_2  65# happyReduction_220
-happyReduction_220 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut72 happy_x_2 of { happy_var_2 -> 
-	happyIn71
-		 (Full happy_var_1 happy_var_2
-	)}}
-
-happyReduce_221 = happySpecReduce_2  65# happyReduction_221
-happyReduction_221 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut60 happy_x_2 of { happy_var_2 -> 
-	happyIn71
-		 (Simple happy_var_1 happy_var_2
-	)}}
-
-happyReduce_222 = happySpecReduce_2  66# happyReduction_222
-happyReduction_222 happy_x_2
-	happy_x_1
-	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
-	happyIn72
-		 (happy_var_2
-	)}
-
-happyReduce_223 = happySpecReduce_2  67# happyReduction_223
-happyReduction_223 happy_x_2
-	happy_x_1
-	 =  case happyOut37 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Intro happy_var_2
-	)}
-
-happyReduce_224 = happySpecReduce_1  67# happyReduction_224
-happyReduction_224 happy_x_1
-	 =  happyIn73
-		 (Intro []
-	)
-
-happyReduce_225 = happySpecReduce_2  67# happyReduction_225
-happyReduction_225 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Refine happy_var_2
-	)}
-
-happyReduce_226 = happySpecReduce_2  67# happyReduction_226
-happyReduction_226 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Generalise happy_var_2
-	)}
-
-happyReduce_227 = happySpecReduce_1  67# happyReduction_227
-happyReduction_227 happy_x_1
-	 =  happyIn73
-		 (ReflP
-	)
-
-happyReduce_228 = happySpecReduce_2  67# happyReduction_228
-happyReduction_228 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Rewrite False False happy_var_2
-	)}
-
-happyReduce_229 = happySpecReduce_3  67# happyReduction_229
-happyReduction_229 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn73
-		 (Rewrite False True happy_var_3
-	)}
-
-happyReduce_230 = happySpecReduce_2  67# happyReduction_230
-happyReduction_230 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Rewrite True False happy_var_2
-	)}
-
-happyReduce_231 = happySpecReduce_3  67# happyReduction_231
-happyReduction_231 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn73
-		 (Rewrite True True happy_var_3
-	)}
-
-happyReduce_232 = happySpecReduce_1  67# happyReduction_232
-happyReduction_232 happy_x_1
-	 =  happyIn73
-		 (Compute
-	)
-
-happyReduce_233 = happySpecReduce_2  67# happyReduction_233
-happyReduction_233 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Unfold happy_var_2
-	)}
-
-happyReduce_234 = happySpecReduce_1  67# happyReduction_234
-happyReduction_234 happy_x_1
-	 =  happyIn73
-		 (Undo
-	)
-
-happyReduce_235 = happySpecReduce_2  67# happyReduction_235
-happyReduction_235 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Induction happy_var_2
-	)}
-
-happyReduce_236 = happySpecReduce_2  67# happyReduction_236
-happyReduction_236 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Fill happy_var_2
-	)}
-
-happyReduce_237 = happySpecReduce_1  67# happyReduction_237
-happyReduction_237 happy_x_1
-	 =  happyIn73
-		 (Trivial
-	)
-
-happyReduce_238 = happySpecReduce_2  67# happyReduction_238
-happyReduction_238 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (RunTactic happy_var_2
-	)}
-
-happyReduce_239 = happySpecReduce_2  67# happyReduction_239
-happyReduction_239 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Believe happy_var_2
-	)}
-
-happyReduce_240 = happySpecReduce_2  67# happyReduction_240
-happyReduction_240 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Use happy_var_2
-	)}
-
-happyReduce_241 = happySpecReduce_2  67# happyReduction_241
-happyReduction_241 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Decide happy_var_2
-	)}
-
-happyReduce_242 = happySpecReduce_1  67# happyReduction_242
-happyReduction_242 happy_x_1
-	 =  happyIn73
-		 (Abandon
-	)
-
-happyReduce_243 = happySpecReduce_1  67# happyReduction_243
-happyReduction_243 happy_x_1
-	 =  happyIn73
-		 (Qed
-	)
-
-happyReduce_244 = happyReduce 4# 68# happyReduction_244
-happyReduction_244 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut75 happy_x_3 of { happy_var_3 -> 
-	happyIn74
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_245 = happySpecReduce_2  69# happyReduction_245
-happyReduction_245 happy_x_2
-	happy_x_1
-	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
-	happyIn75
-		 ([happy_var_1]
-	)}
-
-happyReduce_246 = happySpecReduce_3  69# happyReduction_246
-happyReduction_246 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
-	case happyOut75 happy_x_3 of { happy_var_3 -> 
-	happyIn75
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_247 = happyMonadReduce 0# 70# happyReduction_247
-happyReduction_247 (happyRest) tk
-	 = happyThen (( getLineNo)
-	) (\r -> happyReturn (happyIn76 r))
-
-happyReduce_248 = happyMonadReduce 0# 71# happyReduction_248
-happyReduction_248 (happyRest) tk
-	 = happyThen (( getFileName)
-	) (\r -> happyReturn (happyIn77 r))
-
-happyReduce_249 = happyMonadReduce 0# 72# happyReduction_249
-happyReduction_249 (happyRest) tk
-	 = happyThen (( getOps)
-	) (\r -> happyReturn (happyIn78 r))
-
-happyNewToken action sts stk
-	= lexer(\tk -> 
-	let cont i = happyDoAction i tk action sts stk in
-	case tk of {
-	TokenEOF -> happyDoAction 118# tk action sts stk;
-	TokenName happy_dollar_dollar -> cont 1#;
-	TokenInfixName happy_dollar_dollar -> cont 2#;
-	TokenBrackName happy_dollar_dollar -> cont 3#;
-	TokenString happy_dollar_dollar -> cont 4#;
-	TokenInt happy_dollar_dollar -> cont 5#;
-	TokenFloat happy_dollar_dollar -> cont 6#;
-	TokenChar happy_dollar_dollar -> cont 7#;
-	TokenBool happy_dollar_dollar -> cont 8#;
-	TokenMetavar happy_dollar_dollar -> cont 9#;
-	TokenColon -> cont 10#;
-	TokenSemi -> cont 11#;
-	TokenBar -> cont 12#;
-	TokenStars -> cont 13#;
-	TokenLambda -> cont 14#;
-	TokenHashOB -> cont 15#;
-	TokenOB -> cont 16#;
-	TokenCB -> cont 17#;
-	TokenOCB -> cont 18#;
-	TokenCCB -> cont 19#;
-	TokenOSB -> cont 20#;
-	TokenCSB -> cont 21#;
-	TokenOId -> cont 22#;
-	TokenCId -> cont 23#;
-	TokenLPair -> cont 24#;
-	TokenRPair -> cont 25#;
-	TokenExists -> cont 26#;
-	TokenTilde -> cont 27#;
-	TokenPlus -> cont 28#;
-	TokenMinus -> cont 29#;
-	TokenTimes -> cont 30#;
-	TokenDivide -> cont 31#;
-	TokenEquals -> cont 32#;
-	TokenMightEqual -> cont 33#;
-	TokenLT -> cont 34#;
-	TokenGT -> cont 35#;
-	TokenEllipsis -> cont 36#;
-	TokenUnderscore -> cont 37#;
-	TokenComma -> cont 38#;
-	TokenTuple -> cont 39#;
-	TokenBang -> cont 40#;
-	TokenConcat -> cont 41#;
-	TokenGE -> cont 42#;
-	TokenLE -> cont 43#;
-	TokenOr -> cont 44#;
-	TokenAnd -> cont 45#;
-	TokenArrow -> cont 46#;
-	TokenFatArrow -> cont 47#;
-	TokenTransArrow -> cont 48#;
-	TokenLeftArrow -> cont 49#;
-	TokenIntType -> cont 50#;
-	TokenCharType -> cont 51#;
-	TokenFloatType -> cont 52#;
-	TokenStringType -> cont 53#;
-	TokenHandleType -> cont 54#;
-	TokenPtrType -> cont 55#;
-	TokenLockType -> cont 56#;
-	TokenType -> cont 57#;
-	TokenLazyBracket -> cont 58#;
-	TokenDataType -> cont 59#;
-	TokenInfix -> cont 60#;
-	TokenInfixL -> cont 61#;
-	TokenInfixR -> cont 62#;
-	TokenUsing -> cont 63#;
-	TokenIdiom -> cont 64#;
-	TokenParams -> cont 65#;
-	TokenNamespace -> cont 66#;
-	TokenPublic -> cont 67#;
-	TokenPrivate -> cont 68#;
-	TokenAbstract -> cont 69#;
-	TokenNoElim -> cont 70#;
-	TokenCollapsible -> cont 71#;
-	TokenWhere -> cont 72#;
-	TokenWith -> cont 73#;
-	TokenPartial -> cont 74#;
-	TokenSyntax -> cont 75#;
-	TokenLazy -> cont 76#;
-	TokenRefl -> cont 77#;
-	TokenEmptyType -> cont 78#;
-	TokenUnitType -> cont 79#;
-	TokenInclude -> cont 80#;
-	TokenExport -> cont 81#;
-	TokenInline -> cont 82#;
-	TokenDo -> cont 83#;
-	TokenReturn -> cont 84#;
-	TokenIf -> cont 85#;
-	TokenThen -> cont 86#;
-	TokenElse -> cont 87#;
-	TokenLet -> cont 88#;
-	TokenIn -> cont 89#;
-	TokenProof -> cont 90#;
-	TokenIntro -> cont 91#;
-	TokenRefine -> cont 92#;
-	TokenGeneralise -> cont 93#;
-	TokenReflP -> cont 94#;
-	TokenRewrite -> cont 95#;
-	TokenRewriteAll -> cont 96#;
-	TokenCompute -> cont 97#;
-	TokenUnfold -> cont 98#;
-	TokenUndo -> cont 99#;
-	TokenInduction -> cont 100#;
-	TokenFill -> cont 101#;
-	TokenTrivial -> cont 102#;
-	TokenMkTac -> cont 103#;
-	TokenBelieve -> cont 104#;
-	TokenUse -> cont 105#;
-	TokenDecide -> cont 106#;
-	TokenAbandon -> cont 107#;
-	TokenQED -> cont 108#;
-	TokenLaTeX -> cont 109#;
-	TokenNoCG -> cont 110#;
-	TokenEval -> cont 111#;
-	TokenSpec -> cont 112#;
-	TokenFreeze -> cont 113#;
-	TokenThaw -> cont 114#;
-	TokenTransform -> cont 115#;
-	TokenCInclude -> cont 116#;
-	TokenCLib -> cont 117#;
-	_ -> happyError' tk
-	})
-
-happyError_ tk = happyError' tk
-
-happyThen :: () => P a -> (a -> P b) -> P b
-happyThen = (thenP)
-happyReturn :: () => a -> P a
-happyReturn = (returnP)
-happyThen1 = happyThen
-happyReturn1 :: () => a -> P a
-happyReturn1 = happyReturn
-happyError' :: () => (Token) -> P a
-happyError' tk = (\token -> happyError) tk
-
-mkparse = happySomeParser where
-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
-
-mkparseTerm = happySomeParser where
-  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut33 x))
-
-mkparseTactic = happySomeParser where
-  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut73 x))
-
-happySeq = happyDontSeq
-
-
-data ConParse = Full Id RawTerm
-              | Simple Id [RawTerm]
-
-parse :: String -> FilePath -> Result [Decl]
-parse s fn = do ds <- mkparse s fn 1 []
-                collectDecls ds
-
-processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
-                  IO ([Decl], [FilePath])
-processImports opts imped (Success ds) = pi imped [] ds
-  where pi imps decls ((PInclude fp):xs)
-           | fp `elem` imps = pi imps decls xs
-           | otherwise = do
-                 f <- readLibFile defaultLibPath fp
-                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
-                 case parse f fp of
-                   Success t -> pi (fp:imps) decls (t++xs)
-                   Failure e f l ->
-                     fail $ f ++ ":" ++ show l ++ ":" ++ e
-        pi imps decls ((Using t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Using t ds']) xs
-        pi imps decls ((Params t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Params t ds']) xs
-        pi imps decls ((DoUsing b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[DoUsing b r ds']) xs
-        pi imps decls ((Idiom b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Idiom b r ds']) xs
-        pi imps decls ((Namespace n ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Namespace n ds']) xs
-        pi imps decls (x:xs) = pi imps (decls++[x]) xs
-        pi imps decls [] = return (decls, imps)
-
-processImports _ imped (Failure e f l) 
-    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
-
-
-parseTerm :: String -> Result RawTerm
-parseTerm s = mkparseTerm s "(input)" 0 []
-
-parseTactic :: String -> Result ITactic
-parseTactic s = mkparseTactic s "(tactic)" 0 []
-
-mkCon :: RawTerm -> ConParse -> (Id,RawTerm)
-mkCon _ (Full n t) = (n,t)
-mkCon ty (Simple n args) = (n, mkConTy args ty)
-   where mkConTy [] ty = ty
-         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex Eager a) (mkConTy as ty)
-
-mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
-   where mkImpApp f [] = f
-         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
-         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
-
-doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
-doBind b [] t = t
-doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
-
-doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
-doLetBind [] t = t
-doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
-
-mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
-mkTyApp file line n ty = mkApp file line (RVar file line n) (getTyArgs ty)
-   where getTyArgs (RBind n _ t) = (RVar file line n):(getTyArgs t)
-         getTyArgs x = []
-
-mkTyParams :: String -> Int -> [Id] -> RawTerm
-mkTyParams f l [] = RConst f l TYPE
-mkTyParams f l (x:xs) = RBind x (Pi Ex Eager (RConst f l TYPE)) (mkTyParams f l xs)
+newtype HappyAbsSyn t72 = HappyAbsSyn HappyAny
+#if __GLASGOW_HASKELL__ >= 607
+type HappyAny = Happy_GHC_Exts.Any
+#else
+type HappyAny = forall a . a
+#endif
+happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t72)
+happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn6 #-}
+happyOut6 :: (HappyAbsSyn t72) -> ([ParseDecl])
+happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut6 #-}
+happyIn7 :: (ParseDecl) -> (HappyAbsSyn t72)
+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn7 #-}
+happyOut7 :: (HappyAbsSyn t72) -> (ParseDecl)
+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut7 #-}
+happyIn8 :: (Decl) -> (HappyAbsSyn t72)
+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn8 #-}
+happyOut8 :: (HappyAbsSyn t72) -> (Decl)
+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut8 #-}
+happyIn9 :: (ParseDecl) -> (HappyAbsSyn t72)
+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn9 #-}
+happyOut9 :: (HappyAbsSyn t72) -> (ParseDecl)
+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut9 #-}
+happyIn10 :: (CGFlag) -> (HappyAbsSyn t72)
+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn10 #-}
+happyOut10 :: (HappyAbsSyn t72) -> (CGFlag)
+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut10 #-}
+happyIn11 :: (Bool) -> (HappyAbsSyn t72)
+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn11 #-}
+happyOut11 :: (HappyAbsSyn t72) -> (Bool)
+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut11 #-}
+happyIn12 :: ([RawTerm]) -> (HappyAbsSyn t72)
+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn12 #-}
+happyOut12 :: (HappyAbsSyn t72) -> ([RawTerm])
+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut12 #-}
+happyIn13 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn13 #-}
+happyOut13 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut13 #-}
+happyIn14 :: ([ParseDecl]) -> (HappyAbsSyn t72)
+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn14 #-}
+happyOut14 :: (HappyAbsSyn t72) -> ([ParseDecl])
+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut14 #-}
+happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t72)
+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn15 #-}
+happyOut15 :: (HappyAbsSyn t72) -> ([CGFlag])
+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut15 #-}
+happyIn16 :: ([CGFlag]) -> (HappyAbsSyn t72)
+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn16 #-}
+happyOut16 :: (HappyAbsSyn t72) -> ([CGFlag])
+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut16 #-}
+happyIn17 :: ([CGFlag]) -> (HappyAbsSyn t72)
+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn17 #-}
+happyOut17 :: (HappyAbsSyn t72) -> ([CGFlag])
+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut17 #-}
+happyIn18 :: ([Decl]) -> (HappyAbsSyn t72)
+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn18 #-}
+happyOut18 :: (HappyAbsSyn t72) -> ([Decl])
+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut18 #-}
+happyIn19 :: ([String]) -> (HappyAbsSyn t72)
+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn19 #-}
+happyOut19 :: (HappyAbsSyn t72) -> ([String])
+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut19 #-}
+happyIn20 :: (String) -> (HappyAbsSyn t72)
+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn20 #-}
+happyOut20 :: (HappyAbsSyn t72) -> (String)
+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut20 #-}
+happyIn21 :: (Fixity) -> (HappyAbsSyn t72)
+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn21 #-}
+happyOut21 :: (HappyAbsSyn t72) -> (Fixity)
+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut21 #-}
+happyIn22 :: (Decl) -> (HappyAbsSyn t72)
+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn22 #-}
+happyOut22 :: (HappyAbsSyn t72) -> (Decl)
+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut22 #-}
+happyIn23 :: ([(Id,String)]) -> (HappyAbsSyn t72)
+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn23 #-}
+happyOut23 :: (HappyAbsSyn t72) -> ([(Id,String)])
+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut23 #-}
+happyIn24 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t72)
+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn24 #-}
+happyOut24 :: (HappyAbsSyn t72) -> ((Id, [(RawTerm, Maybe Id)]))
+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut24 #-}
+happyIn25 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t72)
+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn25 #-}
+happyOut25 :: (HappyAbsSyn t72) -> ([(RawTerm,Maybe Id)])
+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut25 #-}
+happyIn26 :: (Datatype) -> (HappyAbsSyn t72)
+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn26 #-}
+happyOut26 :: (HappyAbsSyn t72) -> (Datatype)
+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut26 #-}
+happyIn27 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t72)
+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn27 #-}
+happyOut27 :: (HappyAbsSyn t72) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut27 #-}
+happyIn28 :: ([TyOpt]) -> (HappyAbsSyn t72)
+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn28 #-}
+happyOut28 :: (HappyAbsSyn t72) -> ([TyOpt])
+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut28 #-}
+happyIn29 :: ([TyOpt]) -> (HappyAbsSyn t72)
+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn29 #-}
+happyOut29 :: (HappyAbsSyn t72) -> ([TyOpt])
+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut29 #-}
+happyIn30 :: (TyOpt) -> (HappyAbsSyn t72)
+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn30 #-}
+happyOut30 :: (HappyAbsSyn t72) -> (TyOpt)
+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut30 #-}
+happyIn31 :: (Id) -> (HappyAbsSyn t72)
+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn31 #-}
+happyOut31 :: (HappyAbsSyn t72) -> (Id)
+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut31 #-}
+happyIn32 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn32 #-}
+happyOut32 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut32 #-}
+happyIn33 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn33 #-}
+happyOut33 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut33 #-}
+happyIn34 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn34 #-}
+happyOut34 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut34 #-}
+happyIn35 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn35 #-}
+happyOut35 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut35 #-}
+happyIn36 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn36 #-}
+happyOut36 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut36 #-}
+happyIn37 :: ([Id]) -> (HappyAbsSyn t72)
+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn37 #-}
+happyOut37 :: (HappyAbsSyn t72) -> ([Id])
+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut37 #-}
+happyIn38 :: ([(Id, Int)]) -> (HappyAbsSyn t72)
+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn38 #-}
+happyOut38 :: (HappyAbsSyn t72) -> ([(Id, Int)])
+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut38 #-}
+happyIn39 :: ([Id]) -> (HappyAbsSyn t72)
+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn39 #-}
+happyOut39 :: (HappyAbsSyn t72) -> ([Id])
+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut39 #-}
+happyIn40 :: ([Id]) -> (HappyAbsSyn t72)
+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn40 #-}
+happyOut40 :: (HappyAbsSyn t72) -> ([Id])
+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut40 #-}
+happyIn41 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn41 #-}
+happyOut41 :: (HappyAbsSyn t72) -> ([(Id, RawTerm, RawTerm)])
+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut41 #-}
+happyIn42 :: ((Id, RawTerm)) -> (HappyAbsSyn t72)
+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn42 #-}
+happyOut42 :: (HappyAbsSyn t72) -> ((Id, RawTerm))
+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut42 #-}
+happyIn43 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn43 #-}
+happyOut43 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut43 #-}
+happyIn44 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn44 #-}
+happyOut44 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut44 #-}
+happyIn45 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn45 #-}
+happyOut45 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut45 #-}
+happyIn46 :: (String) -> (HappyAbsSyn t72)
+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn46 #-}
+happyOut46 :: (HappyAbsSyn t72) -> (String)
+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut46 #-}
+happyIn47 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn47 #-}
+happyOut47 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut47 #-}
+happyIn48 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn48 #-}
+happyOut48 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut48 #-}
+happyIn49 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn49 #-}
+happyOut49 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut49 #-}
+happyIn50 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn50 #-}
+happyOut50 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut50 #-}
+happyIn51 :: (ArgOpt) -> (HappyAbsSyn t72)
+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn51 #-}
+happyOut51 :: (HappyAbsSyn t72) -> (ArgOpt)
+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut51 #-}
+happyIn52 :: ([ArgOpt]) -> (HappyAbsSyn t72)
+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn52 #-}
+happyOut52 :: (HappyAbsSyn t72) -> ([ArgOpt])
+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut52 #-}
+happyIn53 :: ([ArgOpt]) -> (HappyAbsSyn t72)
+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn53 #-}
+happyOut53 :: (HappyAbsSyn t72) -> ([ArgOpt])
+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut53 #-}
+happyIn54 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn54 #-}
+happyOut54 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut54 #-}
+happyIn55 :: ([RawTerm]) -> (HappyAbsSyn t72)
+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn55 #-}
+happyOut55 :: (HappyAbsSyn t72) -> ([RawTerm])
+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut55 #-}
+happyIn56 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn56 #-}
+happyOut56 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut56 #-}
+happyIn57 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn57 #-}
+happyOut57 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut57 #-}
+happyIn58 :: ([RawTerm]) -> (HappyAbsSyn t72)
+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn58 #-}
+happyOut58 :: (HappyAbsSyn t72) -> ([RawTerm])
+happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut58 #-}
+happyIn59 :: ([Do]) -> (HappyAbsSyn t72)
+happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn59 #-}
+happyOut59 :: (HappyAbsSyn t72) -> ([Do])
+happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut59 #-}
+happyIn60 :: ([Do]) -> (HappyAbsSyn t72)
+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn60 #-}
+happyOut60 :: (HappyAbsSyn t72) -> ([Do])
+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut60 #-}
+happyIn61 :: (Do) -> (HappyAbsSyn t72)
+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn61 #-}
+happyOut61 :: (HappyAbsSyn t72) -> (Do)
+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut61 #-}
+happyIn62 :: (Constant) -> (HappyAbsSyn t72)
+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn62 #-}
+happyOut62 :: (HappyAbsSyn t72) -> (Constant)
+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut62 #-}
+happyIn63 :: ([RawTerm]) -> (HappyAbsSyn t72)
+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn63 #-}
+happyOut63 :: (HappyAbsSyn t72) -> ([RawTerm])
+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut63 #-}
+happyIn64 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t72)
+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn64 #-}
+happyOut64 :: (HappyAbsSyn t72) -> ((RawTerm, [(Id, RawTerm)]))
+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut64 #-}
+happyIn65 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn65 #-}
+happyOut65 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut65 #-}
+happyIn66 :: ((Id,Id)) -> (HappyAbsSyn t72)
+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn66 #-}
+happyOut66 :: (HappyAbsSyn t72) -> ((Id,Id))
+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut66 #-}
+happyIn67 :: ((Id,Id)) -> (HappyAbsSyn t72)
+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn67 #-}
+happyOut67 :: (HappyAbsSyn t72) -> ((Id,Id))
+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut67 #-}
+happyIn68 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn68 #-}
+happyOut68 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut68 #-}
+happyIn69 :: (Id) -> (HappyAbsSyn t72)
+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn69 #-}
+happyOut69 :: (HappyAbsSyn t72) -> (Id)
+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut69 #-}
+happyIn70 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn70 #-}
+happyOut70 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut70 #-}
+happyIn71 :: ([Id]) -> (HappyAbsSyn t72)
+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn71 #-}
+happyOut71 :: (HappyAbsSyn t72) -> ([Id])
+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut71 #-}
+happyIn72 :: t72 -> (HappyAbsSyn t72)
+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn72 #-}
+happyOut72 :: (HappyAbsSyn t72) -> t72
+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut72 #-}
+happyIn73 :: ([ConParse]) -> (HappyAbsSyn t72)
+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn73 #-}
+happyOut73 :: (HappyAbsSyn t72) -> ([ConParse])
+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut73 #-}
+happyIn74 :: (ConParse) -> (HappyAbsSyn t72)
+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn74 #-}
+happyOut74 :: (HappyAbsSyn t72) -> (ConParse)
+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut74 #-}
+happyIn75 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn75 #-}
+happyOut75 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut75 #-}
+happyIn76 :: (ITactic) -> (HappyAbsSyn t72)
+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn76 #-}
+happyOut76 :: (HappyAbsSyn t72) -> (ITactic)
+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut76 #-}
+happyIn77 :: ([ITactic]) -> (HappyAbsSyn t72)
+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn77 #-}
+happyOut77 :: (HappyAbsSyn t72) -> ([ITactic])
+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut77 #-}
+happyIn78 :: ([ITactic]) -> (HappyAbsSyn t72)
+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn78 #-}
+happyOut78 :: (HappyAbsSyn t72) -> ([ITactic])
+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut78 #-}
+happyIn79 :: (LineNumber) -> (HappyAbsSyn t72)
+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn79 #-}
+happyOut79 :: (HappyAbsSyn t72) -> (LineNumber)
+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut79 #-}
+happyIn80 :: (String) -> (HappyAbsSyn t72)
+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn80 #-}
+happyOut80 :: (HappyAbsSyn t72) -> (String)
+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut80 #-}
+happyIn81 :: (Fixities) -> (HappyAbsSyn t72)
+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn81 #-}
+happyOut81 :: (HappyAbsSyn t72) -> (Fixities)
+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut81 #-}
+happyInTok :: (Token) -> (HappyAbsSyn t72)
+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyInTok #-}
+happyOutTok :: (HappyAbsSyn t72) -> (Token)
+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOutTok #-}
+
+
+happyActOffsets :: HappyAddr
+happyActOffsets = HappyA# "\x1b\x00\x6d\x05\x76\x08\x00\x00\x20\x04\x6d\x05\x1f\x01\x1f\x01\x6d\x05\x00\x00\x69\x03\x13\x03\x00\x00\x1f\x01\x00\x00\x6d\x05\x6d\x05\x00\x00\x6d\x05\x6d\x05\x6d\x05\x6d\x05\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x01\x61\x09\x67\x02\x6d\x05\x6d\x05\x38\x08\x6d\x05\x00\x00\x1f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x05\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x6d\x05\xae\x00\x1a\x04\x01\x00\x00\x00\x00\x00\x01\x00\x89\x04\x00\x00\x7b\x04\x00\x00\x2c\x02\x73\x04\x72\x04\x70\x04\x6e\x04\x6c\x04\x9b\x09\xd1\x01\x68\x04\x00\x00\x00\x00\x00\x00\x67\x04\x66\x04\x58\x04\xae\x00\xae\x00\x71\x04\x2e\x04\x55\x04\x65\x04\x6d\x05\x5b\x04\x56\x04\x00\x00\x00\x00\x29\x02\x00\x00\xae\x00\x50\x04\x53\x04\xae\x00\x00\x00\xae\x00\xae\x00\xae\x00\xae\x00\x32\x02\x4c\x04\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\xfe\xff\x00\x00\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\xd1\x00\xd1\x00\xd1\x00\xd1\x00\xd1\x00\x00\x00\xfd\x07\x51\x04\x02\x00\x27\x09\x43\x04\x2a\x00\x9b\x09\xd1\x01\x00\x00\x00\x00\x4a\x04\xff\x03\xe6\x01\x00\x00\x49\x04\x17\x05\x00\x00\x00\x00\x4f\x04\x00\x00\x4f\x04\x00\x00\xe1\x02\x78\x0a\x76\x01\x86\x03\xc1\x04\x3f\x04\xc1\x04\xc1\x04\x3e\x04\x33\x04\xc1\x04\xc1\x04\xcf\x01\x6c\x00\x00\x00\xc1\x04\xed\x08\xae\x00\x38\x04\x16\x04\x00\x00\x38\x08\x29\x04\x00\x00\xc1\x04\x1b\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\x00\x00\xa7\x01\x97\x01\x89\x01\x7a\x01\x67\x01\x58\x01\x00\x00\x4a\x01\xc1\x04\x36\x01\xc1\x04\x28\x01\x00\x00\x13\x04\x00\x00\xf8\x00\xae\x00\xc3\x00\x03\x00\x00\x00\x35\x04\x35\x04\x35\x04\x35\x04\x35\x04\x00\x00\xc1\x04\x35\x04\x38\x08\x00\x00\x00\x00\x00\x00\xc1\x04\x0b\x04\x61\x09\x1c\x04\x1e\x04\x08\x04\x17\x01\x19\x04\xc2\x00\x17\x04\x92\x08\x61\x09\x00\x00\x61\x09\x0f\x04\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\xc1\x04\x00\x00\xc1\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\x14\x04\x00\x00\x00\x00\xc1\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x36\x05\x0c\x04\x6b\x04\xae\x00\xfb\x03\x00\x00\x15\x04\x15\x04\xf7\x03\x07\x04\xfa\x03\x00\x04\x15\x04\x15\x04\x15\x04\xae\x03\x76\x08\xf9\x03\xf3\xff\x0d\x00\xea\x03\xfd\x07\x15\x04\x00\x00\x00\x00\xf5\x03\xf4\x03\xf1\x03\xee\x03\xec\x03\x00\x00\x00\x00\x32\x03\xed\x03\x00\x00\x00\x00\x15\x04\x15\x04\x15\x04\x00\x00\xe6\x03\xd7\x03\x00\x00\x00\x00\x1d\x03\xf0\x03\xde\x03\xd3\x03\xdd\x03\xae\x00\xcc\x03\x01\x00\xae\x00\xd0\x03\xc9\x03\x00\x00\x15\x04\xe0\x04\xd6\x03\xdc\x03\x00\x00\xbc\x03\x00\x00\x15\x04\x00\x00\x00\x00\xae\x00\x00\x00\x27\x09\x00\x00\xae\x00\xae\x00\xbb\x03\x27\x09\x00\x00\x00\x00\x32\x02\x00\x00\x8a\x04\x34\x04\x07\x05\x00\x00\x00\x00\x00\x00\x00\x00\x15\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x09\x00\x00\xae\x00\x00\x00\x00\x00\x20\x02\x20\x02\xd5\x03\x00\x00\x00\x00\x00\x00\xc8\x03\xc3\x03\x61\x09\xc7\x03\xbd\x03\x00\x00\x88\x03\xc9\x01\x59\x03\x00\x00\xd1\x01\x00\x00\x15\x04\xa6\x00\x5d\x00\x15\x04\xc2\x03\x00\x00\x00\x00\x00\x00\xa3\x03\x98\x08\x00\x00\x73\x08\xe3\x03\x00\x00\x61\x09\x00\x00\x30\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x03\x00\x00\xb9\x03\x00\x00\x38\x08\x00\x00\x9b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x61\x09\x61\x09\xa8\x03\x27\x09\xae\x00\x93\x03\x27\x09\x0d\x00\xae\x00\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x08\x73\x08\x73\x08\x73\x08\x73\x08\x73\x08\x00\x00\x00\x00\x00\x00\x00\x00\x61\x09\x00\x00\xb9\x00\x8d\x03\x10\x02\xd8\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x07\x00\x00\x87\x07\x00\x00\x4c\x07\x00\x00\x11\x07\xa9\x03\xa2\x03\xa1\x03\xa0\x03\x9f\x03\x0a\x00\x00\x00\x00\x00\x15\x04\xd6\x06\x8e\x03\x36\x05\x15\x04\x66\x00\x00\x00\xd5\x01\x9c\x03\x92\x03\x00\x00\x76\x08\x0d\x00\x6b\x03\xae\x00\x00\x00\x8f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x06\x00\x00\xd5\x01\x00\x00\x84\x03\x00\x00\x00\x00\x00\x00\xf8\xff\x00\x00\x60\x06\x8b\x03\x89\x03\x00\x00\x00\x00\x6e\x03\x81\x03\x03\x03\xae\x00\x6a\x03\x00\x00\x00\x00\xae\x00\x7e\x03\x00\x00\x00\x00\xae\x00\x00\x00\xae\x00\x00\x00\x38\x08\x00\x00\x00\x00\x27\x09\x00\x00\x45\x03\x00\x00\x00\x00\x00\x00\xae\x00\xd5\x01\x79\x03\x00\x00\x00\x00\x00\x00\x7a\x03\x00\x00\x7d\x01\x72\x03\x27\x09\x00\x00\xae\x00\x00\x00\x6f\x03\xae\x00\x7b\x03\x00\x00\x15\x04\x00\x00\x36\x05\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\x57\x03\x65\x03\x00\x00\x00\x00\x61\x09\x47\x03\x47\x03\x00\x00\x10\x02\x63\x03\x00\x00\x00\x00\x00\x00\x66\x00\x25\x06\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x03\x00\x00\x00\x00\x40\x03\xae\x00\x00\x00\x00\x00\x00\x00\x50\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x03\x00\x00\xea\x05\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x05\x51\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyGotoOffsets :: HappyAddr
+happyGotoOffsets = HappyA# "\x65\x0a\x97\x0d\x17\x03\x00\x00\x00\x00\x83\x0d\x97\x00\x41\x03\x7c\x0d\x00\x00\x68\x0d\x61\x0d\x00\x00\x38\x03\x00\x00\x4d\x0d\x46\x0d\x00\x00\x32\x0d\x2b\x0d\x17\x0d\x10\x0d\x00\x00\x00\x00\x00\x00\x06\x03\x77\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x52\x09\x83\x0a\xfc\x0c\xf5\x0c\xc6\x0d\xe1\x0c\x00\x00\x29\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x0c\x00\x00\xf6\x02\xf5\x02\x00\x00\xf4\x02\xc6\x0c\x8c\x01\x00\x00\x4b\x0a\x00\x00\x00\x00\x31\x0a\x00\x00\x00\x00\x36\x03\x00\x00\x0a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x28\x03\x24\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x03\x1e\x03\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x77\x01\xe2\x02\xaa\x01\x00\x00\x00\x00\x10\x01\x00\x00\x04\x00\x16\x03\xfa\xff\x0b\x03\x43\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x03\xd3\x02\x72\x01\x00\x00\xcb\x02\x97\x0a\x00\x00\xc6\x02\xc0\x02\x17\x0a\xfd\x09\xe3\x09\xc9\x09\x79\x09\x00\x00\x1e\x06\x00\x00\x00\x00\xbb\x0d\x00\x00\xfd\x02\xfd\xff\x18\x02\x00\x00\x00\x00\xd6\x02\x00\x00\x6e\x01\xb8\x02\xd4\x02\xd3\x0a\xb3\x02\xb2\x02\x6c\x01\xaf\x02\x6b\x01\x00\x00\x69\x01\x69\x01\x15\x01\x78\x00\xab\x0c\x00\x00\xa4\x0c\x90\x0c\x00\x00\x00\x00\xba\x04\x64\x04\x5d\x01\x00\x00\x00\x00\x89\x0c\x7a\x02\x0b\x02\xcf\x02\x00\x00\xae\x02\xab\x0d\x00\x00\xa4\x02\x75\x0c\xa2\x02\x6e\x0c\x5a\x0c\x53\x0c\x3f\x0c\x38\x0c\x9e\x02\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x00\x00\x5a\x01\x24\x0c\x5a\x01\x1d\x0c\x5a\x01\x00\x00\x00\x00\x00\x00\x5a\x01\x85\x00\x5a\x01\x5a\x01\x00\x00\x55\x01\x47\x01\x3e\x01\x3d\x01\x2c\x01\x98\x02\x09\x0c\x2a\x01\x9e\x0d\x94\x02\x8f\x02\x00\x00\x02\x0c\x00\x00\x2b\x08\x00\x00\x00\x00\x00\x00\x38\x00\x00\x00\x00\x00\x00\x00\x25\x01\xef\x07\x00\x00\xb4\x07\x00\x00\x8e\x02\x12\x01\x8d\x02\x08\x01\x8b\x02\xe6\x00\x88\x02\xe4\x00\x86\x02\x0e\x04\x00\x00\xb8\x03\xee\x0b\xe7\x0b\xb6\x02\xe0\x01\x00\x00\x00\x00\x84\x02\xd3\x0b\x81\x02\x80\x02\x7f\x02\x00\x00\x00\x00\x28\x00\xe3\x00\x00\x00\xbf\x0a\x3b\x01\x00\x00\x00\x00\xcc\x0b\xb8\x0b\x00\x00\x00\x00\x00\x00\xc1\x02\xb1\x0b\x9d\x0b\x96\x0b\x00\x00\xbc\x01\x90\x02\x01\x02\x00\x00\x00\x00\xe3\x05\x82\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x02\x6f\x02\xde\x00\x00\x00\x6b\x02\x68\x02\x7b\x0b\x67\x0b\x60\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x05\x09\x97\x02\x00\x00\x00\x00\x66\x02\x4c\x0b\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x0b\x00\x00\x00\x00\x8c\x02\x00\x00\x8e\x09\x64\x02\xf2\xff\x8c\x00\x00\x00\x29\x08\x63\x02\x62\x02\xaf\x01\x00\x00\xde\x00\xde\x00\xde\x00\x00\x00\x00\x00\x5f\x02\x00\x00\xe7\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x00\x5e\x02\x80\x00\x5d\x02\x00\x00\xce\x01\x5b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x07\x00\x00\x00\x00\x00\x00\xde\x00\xa3\x00\xde\x00\x00\x00\xcb\x00\x00\x00\x31\x0b\xde\x00\xde\x00\x2a\x0b\x3e\x02\x00\x00\x00\x00\x5b\x02\x00\x00\xf6\x07\x00\x00\xf6\x07\xde\x00\x5a\x02\x3f\x07\x59\x02\xde\x00\x00\x00\x58\x02\x4d\x02\x45\x02\x42\x02\x3d\x02\x3c\x02\x3a\x02\x00\x00\x35\x02\x00\x00\x21\x02\xbb\x07\x2a\x02\x00\x00\x27\x02\x00\x00\xff\x01\x00\x00\x04\x07\x1e\x02\x92\x01\x78\x07\x00\x02\x00\x00\x3d\x07\x00\x00\x16\x00\xde\x00\x1d\x02\x0c\x02\x00\x00\x0a\x02\xde\x00\x00\x00\x04\x02\xfc\x01\xf5\x01\xe5\x01\xda\x01\x00\x00\xcf\x06\xcf\x06\xcf\x06\xcf\x06\xcf\x06\xcf\x06\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x06\x00\x00\x00\x00\x00\x00\xcb\x01\x00\x00\x00\x00\xd0\x01\xb6\x01\xb3\x01\xa8\x01\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x01\x16\x0b\xcf\x06\x00\x00\xdd\x00\x0f\x0b\xcf\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\xef\x00\x00\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\xa4\x01\x00\x00\xa1\x01\x66\x05\x9e\x01\x0e\x02\x00\x00\x00\x00\x00\x00\x9b\x01\x86\x01\x38\x01\x24\x01\x99\x05\x00\x00\x00\x00\x00\x00\x68\x01\x00\x00\x00\x00\xcf\x00\x85\x01\x00\x00\x00\x00\x00\x00\x4f\x01\x00\x00\x00\x00\x00\x00\xf9\xff\x00\x00\x0b\x00\x00\x00\x18\x09\x00\x00\x00\x00\x02\x07\x64\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x01\xc5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x06\x00\x00\x34\x00\xea\x00\x00\x00\xf7\xff\xca\x00\x2e\x01\xfb\x0a\x00\x00\xbf\x00\x0e\x01\x77\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\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x06\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00\xbc\x00\x00\x00\x9f\x00\xad\x00\x59\x06\x73\x00\x00\x00\x37\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\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\x51\x00\x21\x00\x00\x00\x3c\x00\x59\x06\xab\x0a\xe5\xff\x59\x06\x00\x00\x00\x00\x00\x00\x00\x00\x59\x06\x00\x00\x00\x00\xd0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyDefActions :: HappyAddr
+happyDefActions = HappyA# "\x2c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\xff\x00\x00\x00\x00\x15\xff\x00\x00\x00\x00\x10\xff\x00\x00\x0e\xff\x00\x00\x00\x00\x0b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x06\xff\x05\xff\x04\xff\xff\xfe\xff\xfe\x9e\xff\x83\xff\x4b\xff\x4c\xff\xa5\xff\x4a\xff\x4f\xff\xff\xfe\xae\xff\x34\xff\x36\xff\x32\xff\x35\xff\x33\xff\x56\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xff\x00\x00\x3c\xff\x3b\xff\x3a\xff\x3d\xff\x38\xff\x39\xff\x37\xff\x3e\xff\x00\x00\x53\xff\xff\xfe\xff\xfe\x00\x00\xff\xfe\x00\x00\x00\x00\x00\x00\x2c\xff\xef\xff\xf8\xff\x2c\xff\x00\x00\xf6\xff\xdb\xff\xf7\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xff\xc1\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\xed\xff\xff\xfe\xff\xfe\x00\x00\x00\x00\x00\x00\x8f\xff\x27\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\xc6\xff\xc5\xff\xc4\xff\x00\x00\xff\xfe\xff\xfe\xd9\xff\xff\xfe\x00\x00\xa8\xff\xff\xfe\xff\xfe\x2c\xff\x2c\xff\x2c\xff\x2c\xff\x2c\xff\xbd\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x73\xff\x00\x00\xff\xfe\x00\xff\x73\xff\x00\x00\x00\xff\x00\xff\xff\xfe\xff\xfe\xff\xfe\x57\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x00\x00\x00\x00\xc7\xff\xc6\xff\x75\xff\x74\xff\xff\xfe\xff\xfe\xff\xfe\x00\x00\x64\xff\x00\x00\x00\x00\x00\x00\x73\xff\x00\x00\x00\xff\x00\x00\x00\x00\x00\xff\x00\x00\xff\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x0f\xff\xff\xfe\x00\x00\xff\xfe\x00\x00\xff\xfe\x18\xff\x97\xff\x1a\xff\xff\xfe\x00\x00\xff\xfe\xff\xfe\x5a\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x00\xff\x00\x00\xff\xfe\x00\x00\xff\xfe\xff\xfe\x54\xff\x00\x00\x9c\xff\x00\x00\x00\x00\x00\x00\x99\xff\xff\xfe\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\xa4\xff\x00\x00\x00\x00\x00\xff\xff\xfe\x00\xff\xff\xfe\x00\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x58\xff\xff\xfe\x75\xff\x74\xff\xff\xfe\xff\xfe\x00\x00\x4e\xff\xff\xfe\x00\x00\x00\xff\x00\xff\x00\xff\x52\xff\x51\xff\xff\xfe\xff\xfe\x00\x00\x42\xff\x00\x00\x00\x00\x59\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xdb\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\x71\xff\xd2\xff\x6e\xff\x91\xff\xbc\xff\x00\x00\xe9\xff\xbb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\xff\xfe\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\xad\xff\x00\x00\xb2\xff\xb0\xff\xaf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x2c\xff\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\xff\xfe\x00\x00\x00\x00\xc0\xff\x00\x00\xf9\xff\x00\x00\x8e\xff\x28\xff\x00\x00\x2b\xff\x00\x00\xff\xfe\x24\xff\x20\xff\x00\x00\x00\x00\xff\xfe\xff\xfe\x00\x00\xb3\xff\xff\xfe\xff\xfe\xff\xfe\xaa\xff\xa9\xff\xff\xfe\xd8\xff\x00\x00\xa7\xff\xa6\xff\xf0\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\xff\xfe\xff\xfe\x00\x00\xff\xfe\xd4\xff\xd2\xff\xd2\xff\x00\x00\xcc\xff\xd0\xff\xcf\xff\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\xff\xfe\xff\xfe\xff\xfe\xdc\xff\x00\x00\xca\xff\x00\x00\xff\xfe\xff\xfe\x00\x00\x73\xff\x43\xff\x45\xff\x00\xff\x00\x00\xa1\xff\x55\xff\x89\xff\xff\xfe\x00\xff\x00\x00\x00\xff\xff\xfe\x46\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\xff\xfe\x6d\xff\xff\xfe\x67\xff\xff\xfe\x6a\xff\x00\x00\x00\x00\x60\xff\x00\x00\x00\x00\x00\x00\x00\x00\x72\xff\x00\x00\xff\xfe\x00\xff\x00\xff\xa3\xff\x00\xff\xff\xfe\x8b\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x96\xff\x84\xff\x87\xff\x85\xff\x86\xff\x88\xff\x81\xff\xa2\xff\x82\xff\x9b\xff\x98\xff\x00\x00\x9a\xff\x72\xff\x00\x00\x00\x00\x5c\xff\x5b\xff\xff\xfe\x00\xff\x00\xff\x00\xff\xac\xff\x00\x00\x79\xff\x00\x00\x78\xff\x00\x00\x4d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xff\xff\xfe\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\xff\xfe\xc8\xff\x00\x00\x00\x00\x00\x00\x03\xff\x02\xff\x70\xff\x00\x00\x00\x00\xcb\xff\x00\x00\xd1\xff\x00\xff\x90\xff\x00\xff\xbc\xff\x00\xff\x00\x00\xe5\xff\x00\x00\xb1\xff\x00\xff\x00\xff\x2c\xff\xff\xfe\x31\xff\x00\x00\x1f\xff\x23\xff\x00\xff\x26\xff\x00\x00\xff\xfe\x00\x00\xbf\xff\xf5\xff\xeb\xff\x00\x00\x00\x00\xee\xff\x29\xff\x00\x00\xb8\xff\x20\xff\xb7\xff\x31\xff\x1c\xff\x1d\xff\x00\x00\x00\xff\x00\x00\xb6\xff\xb5\xff\x2e\xff\x00\x00\xd5\xff\x00\x00\xd7\xff\xb9\xff\xba\xff\x00\x00\xd3\xff\x94\xff\x00\x00\x00\x00\x01\xff\x00\x00\xff\xfe\x00\x00\x00\x00\xff\xfe\x00\xff\x00\x00\x3f\xff\xff\xfe\x00\xff\xff\xfe\x7b\xff\x77\xff\x7c\xff\x7f\xff\x7d\xff\x7e\xff\x80\xff\x76\xff\x7a\xff\xab\xff\x66\xff\x65\xff\x00\xff\x5e\xff\x00\x00\x63\xff\x62\xff\x00\x00\x6b\xff\x6c\xff\x61\xff\x00\x00\x00\x00\x00\xff\x49\xff\x00\xff\xff\xfe\x00\x00\x00\xff\x8c\xff\xff\xfe\x00\xff\x00\x00\x6f\xff\xce\xff\x95\xff\x00\x00\xea\xff\xe3\xff\xd6\xff\x00\x00\x2f\xff\x2d\xff\x1b\xff\x30\xff\x1e\xff\x25\xff\x2a\xff\xbe\xff\xe4\xff\x93\xff\x00\x00\xff\xfe\xe6\xff\x00\xff\x9d\xff\x00\x00\x00\xff\x00\x00\x5d\xff\x69\xff\x5f\xff\x41\xff\x00\x00\x00\x00\xe8\xff\x00\xff\x92\xff\xe7\xff\x44\xff\x40\xff"#
+
+happyCheck :: HappyAddr
+happyCheck = HappyA# "\xff\xff\x03\x00\x01\x00\x0b\x00\x07\x00\x02\x00\x03\x00\x14\x00\x02\x00\x03\x00\x0c\x00\x19\x00\x02\x00\x0c\x00\x0b\x00\x02\x00\x19\x00\x10\x00\x19\x00\x19\x00\x13\x00\x13\x00\x19\x00\x1a\x00\x19\x00\x49\x00\x23\x00\x11\x00\x01\x00\x19\x00\x20\x00\x21\x00\x1d\x00\x22\x00\x20\x00\x1d\x00\x19\x00\x22\x00\x23\x00\x0c\x00\x22\x00\x23\x00\x27\x00\x10\x00\x0a\x00\x27\x00\x49\x00\x19\x00\x33\x00\x2e\x00\x1c\x00\x41\x00\x2e\x00\x38\x00\x07\x00\x3f\x00\x2e\x00\x40\x00\x40\x00\x2e\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x40\x00\x52\x00\x53\x00\x49\x00\x19\x00\x1a\x00\x20\x00\x21\x00\x4b\x00\x19\x00\x43\x00\x44\x00\x15\x00\x29\x00\x51\x00\x31\x00\x19\x00\x54\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x03\x00\x02\x00\x03\x00\x29\x00\x33\x00\x70\x00\x71\x00\x72\x00\x4b\x00\x38\x00\x02\x00\x03\x00\x19\x00\x4a\x00\x51\x00\x12\x00\x02\x00\x54\x00\x6f\x00\x20\x00\x4a\x00\x49\x00\x73\x00\x3a\x00\x75\x00\x76\x00\x77\x00\x78\x00\x1d\x00\x78\x00\x41\x00\x11\x00\x78\x00\x22\x00\x23\x00\x4a\x00\x4a\x00\x1d\x00\x27\x00\x49\x00\x02\x00\x03\x00\x22\x00\x23\x00\x6f\x00\x2e\x00\x26\x00\x27\x00\x73\x00\x0b\x00\x75\x00\x76\x00\x77\x00\x78\x00\x2e\x00\x11\x00\x12\x00\x13\x00\x14\x00\x19\x00\x2e\x00\x17\x00\x24\x00\x19\x00\x19\x00\x1f\x00\x28\x00\x1d\x00\x20\x00\x21\x00\x1f\x00\x19\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x09\x00\x0a\x00\x0b\x00\x01\x00\x19\x00\x0b\x00\x2e\x00\x2f\x00\x49\x00\x58\x00\x1f\x00\x11\x00\x12\x00\x13\x00\x14\x00\x02\x00\x49\x00\x17\x00\x10\x00\x19\x00\x5a\x00\x4a\x00\x4a\x00\x1d\x00\x02\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x11\x00\x49\x00\x26\x00\x27\x00\x0b\x00\x43\x00\x44\x00\x24\x00\x01\x00\x11\x00\x2e\x00\x2f\x00\x52\x00\x53\x00\x0d\x00\x0e\x00\x02\x00\x57\x00\x58\x00\x0c\x00\x5a\x00\x26\x00\x1d\x00\x10\x00\x20\x00\x24\x00\x13\x00\x22\x00\x23\x00\x2e\x00\x49\x00\x27\x00\x27\x00\x19\x00\x19\x00\x4a\x00\x24\x00\x1c\x00\x2e\x00\x2e\x00\x20\x00\x24\x00\x70\x00\x71\x00\x72\x00\x4a\x00\x52\x00\x53\x00\x02\x00\x03\x00\x78\x00\x57\x00\x58\x00\x27\x00\x5a\x00\x24\x00\x24\x00\x0b\x00\x19\x00\x49\x00\x2e\x00\x24\x00\x24\x00\x4a\x00\x24\x00\x20\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x4a\x00\x1d\x00\x70\x00\x71\x00\x72\x00\x4a\x00\x22\x00\x23\x00\x4b\x00\x13\x00\x78\x00\x27\x00\x01\x00\x0a\x00\x51\x00\x19\x00\x0d\x00\x54\x00\x2e\x00\x4a\x00\x4a\x00\x19\x00\x02\x00\x03\x00\x24\x00\x4a\x00\x4a\x00\x10\x00\x4a\x00\x27\x00\x22\x00\x0b\x00\x4a\x00\x46\x00\x24\x00\x48\x00\x02\x00\x03\x00\x30\x00\x78\x00\x32\x00\x33\x00\x29\x00\x35\x00\x6f\x00\x0b\x00\x38\x00\x49\x00\x73\x00\x1d\x00\x75\x00\x76\x00\x77\x00\x24\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x24\x00\x47\x00\x4a\x00\x1d\x00\x19\x00\x0b\x00\x2e\x00\x49\x00\x22\x00\x23\x00\x02\x00\x03\x00\x4a\x00\x27\x00\x23\x00\x4a\x00\x11\x00\x24\x00\x24\x00\x0b\x00\x2e\x00\x0a\x00\x0b\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x4a\x00\x4a\x00\x78\x00\x27\x00\x0b\x00\x3b\x00\x4a\x00\x1d\x00\x4a\x00\x49\x00\x2e\x00\x24\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x0a\x00\x24\x00\x05\x00\x0d\x00\x1d\x00\x0b\x00\x2e\x00\x4a\x00\x4a\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x24\x00\x24\x00\x4a\x00\x24\x00\x4a\x00\x0b\x00\x2e\x00\x24\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x19\x00\x4a\x00\x78\x00\x27\x00\x0b\x00\x26\x00\x4a\x00\x19\x00\x1d\x00\x4a\x00\x2e\x00\x02\x00\x03\x00\x22\x00\x23\x00\x49\x00\x78\x00\x23\x00\x27\x00\x49\x00\x0b\x00\x4a\x00\x1d\x00\x4a\x00\x4a\x00\x2e\x00\x4a\x00\x22\x00\x23\x00\x11\x00\x4a\x00\x2d\x00\x27\x00\x2f\x00\x2e\x00\x4a\x00\x78\x00\x19\x00\x1d\x00\x2e\x00\x17\x00\x18\x00\x03\x00\x22\x00\x23\x00\x02\x00\x03\x00\x08\x00\x27\x00\x49\x00\x78\x00\x02\x00\x03\x00\x02\x00\x0b\x00\x2e\x00\x01\x00\x12\x00\x0a\x00\x0b\x00\x0b\x00\x0c\x00\x0d\x00\x14\x00\x19\x00\x78\x00\x11\x00\x0c\x00\x13\x00\x14\x00\x49\x00\x10\x00\x1d\x00\x49\x00\x02\x00\x03\x00\x49\x00\x22\x00\x23\x00\x49\x00\x1d\x00\x20\x00\x27\x00\x49\x00\x78\x00\x22\x00\x23\x00\x26\x00\x27\x00\x2e\x00\x2d\x00\x19\x00\x2f\x00\x1b\x00\x49\x00\x2e\x00\x2f\x00\x49\x00\x31\x00\x78\x00\x46\x00\x1d\x00\x48\x00\x25\x00\x26\x00\x27\x00\x22\x00\x23\x00\x09\x00\x0a\x00\x0b\x00\x27\x00\x3f\x00\x78\x00\x30\x00\x03\x00\x32\x00\x33\x00\x2e\x00\x35\x00\x08\x00\x48\x00\x38\x00\x19\x00\x4a\x00\x52\x00\x53\x00\x1d\x00\x1e\x00\x78\x00\x12\x00\x52\x00\x53\x00\x49\x00\x19\x00\x0d\x00\x0e\x00\x19\x00\x1d\x00\x1e\x00\x4a\x00\x02\x00\x03\x00\x01\x00\x49\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\x70\x00\x71\x00\x72\x00\x10\x00\x57\x00\x49\x00\x70\x00\x71\x00\x72\x00\x16\x00\x03\x00\x18\x00\x49\x00\x1d\x00\x1b\x00\x08\x00\x4a\x00\x2c\x00\x22\x00\x23\x00\x49\x00\x30\x00\x31\x00\x27\x00\x25\x00\x12\x00\x49\x00\x28\x00\x49\x00\x38\x00\x2e\x00\x2f\x00\x19\x00\x17\x00\x18\x00\x4c\x00\x4d\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x29\x00\x01\x00\x02\x00\x49\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4a\x00\x52\x00\x53\x00\x4a\x00\x0e\x00\x0f\x00\x10\x00\x46\x00\x47\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\x49\x00\x18\x00\x54\x00\x55\x00\x1b\x00\x49\x00\x1d\x00\x49\x00\x49\x00\x5b\x00\x0e\x00\x22\x00\x23\x00\x49\x00\x25\x00\x26\x00\x49\x00\x28\x00\x70\x00\x71\x00\x72\x00\x19\x00\x1a\x00\x2e\x00\x49\x00\x1d\x00\x1e\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x49\x00\x49\x00\x49\x00\x19\x00\x2c\x00\x4a\x00\x4a\x00\x4a\x00\x30\x00\x31\x00\x4a\x00\x4a\x00\x4a\x00\x49\x00\x19\x00\x49\x00\x38\x00\x4c\x00\x49\x00\x4e\x00\x4f\x00\x50\x00\x49\x00\x49\x00\x2a\x00\x54\x00\x55\x00\x56\x00\x01\x00\x02\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x06\x00\x49\x00\x49\x00\x49\x00\x0e\x00\x0f\x00\x10\x00\x4a\x00\x19\x00\x4a\x00\x1b\x00\x4a\x00\x16\x00\x49\x00\x18\x00\x49\x00\x49\x00\x1b\x00\x4a\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x4a\x00\x22\x00\x23\x00\x49\x00\x25\x00\x02\x00\x03\x00\x28\x00\x30\x00\x49\x00\x32\x00\x33\x00\x34\x00\x35\x00\x4a\x00\x49\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x29\x00\x4a\x00\x19\x00\x49\x00\x49\x00\x29\x00\x1d\x00\x29\x00\x4a\x00\x49\x00\x05\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x4c\x00\x4a\x00\x4e\x00\x4f\x00\x50\x00\x0b\x00\x2e\x00\x4a\x00\x54\x00\x55\x00\x56\x00\x01\x00\x4a\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4a\x00\x01\x00\x05\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x19\x00\x22\x00\x23\x00\x0a\x00\x0b\x00\x16\x00\x27\x00\x18\x00\x4a\x00\x10\x00\x1b\x00\x19\x00\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\x0e\x00\x19\x00\x25\x00\x19\x00\x16\x00\x28\x00\x06\x00\x20\x00\x4a\x00\x4a\x00\x4a\x00\x11\x00\x19\x00\x11\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x4a\x00\x1d\x00\x4a\x00\x19\x00\x22\x00\x23\x00\x22\x00\x23\x00\x26\x00\x27\x00\x26\x00\x27\x00\x19\x00\x02\x00\x03\x00\x46\x00\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x13\x00\x15\x00\x26\x00\x54\x00\x55\x00\x56\x00\x01\x00\x12\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x15\x00\x11\x00\x2e\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x15\x00\x22\x00\x23\x00\x26\x00\x03\x00\x16\x00\x27\x00\x18\x00\x13\x00\x11\x00\x1b\x00\x0b\x00\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\x13\x00\x48\x00\x25\x00\x11\x00\x26\x00\x28\x00\x11\x00\x0b\x00\x26\x00\x0c\x00\x0b\x00\x11\x00\x14\x00\x2e\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x15\x00\x1d\x00\x14\x00\x0b\x00\x22\x00\x23\x00\x22\x00\x23\x00\x26\x00\x27\x00\x20\x00\x27\x00\x11\x00\x11\x00\x11\x00\x11\x00\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x11\x00\x2e\x00\x14\x00\x54\x00\x55\x00\x56\x00\x01\x00\x2e\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\x11\x00\x11\x00\x0a\x00\x0e\x00\x0f\x00\x10\x00\x13\x00\x19\x00\x0b\x00\x1b\x00\x31\x00\x16\x00\x13\x00\x18\x00\x10\x00\x04\x00\x1b\x00\x20\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x04\x00\x0b\x00\x26\x00\x13\x00\x25\x00\x02\x00\x03\x00\x28\x00\x30\x00\x20\x00\x32\x00\x33\x00\x20\x00\x35\x00\x11\x00\x11\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x0a\x00\x15\x00\x19\x00\x26\x00\x11\x00\x13\x00\x1d\x00\x13\x00\x4a\x00\x0a\x00\x13\x00\x22\x00\x23\x00\x13\x00\x13\x00\x5b\x00\x27\x00\x4c\x00\x0c\x00\x4e\x00\x4f\x00\x50\x00\x26\x00\x2e\x00\x0b\x00\x54\x00\x55\x00\x56\x00\x01\x00\x20\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x13\x00\x26\x00\x0d\x00\x13\x00\x0e\x00\x0f\x00\x10\x00\x0a\x00\x19\x00\x11\x00\x1b\x00\x11\x00\x16\x00\x31\x00\x18\x00\x26\x00\x11\x00\x1b\x00\x26\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\x03\x00\x26\x00\x25\x00\x20\x00\x13\x00\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\x0a\x00\x35\x00\x11\x00\x2f\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x11\x00\x11\x00\x1d\x00\x03\x00\x0a\x00\x0a\x00\x12\x00\x22\x00\x23\x00\x4a\x00\x5a\x00\x04\x00\x27\x00\x0b\x00\x11\x00\x0b\x00\x04\x00\x10\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x01\x00\x12\x00\x10\x00\x54\x00\x55\x00\x56\x00\x01\x00\x3f\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x04\x00\x10\x00\x10\x00\xff\xff\x0e\x00\x0f\x00\x10\x00\x14\x00\x19\x00\x12\x00\x1b\x00\x12\x00\x16\x00\x12\x00\x18\x00\x12\x00\x12\x00\x1b\x00\x0c\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\x05\x00\x20\x00\x25\x00\xff\xff\x78\x00\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\x78\x00\x35\x00\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\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x4a\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\xff\xff\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\xff\xff\x35\x00\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\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x4a\x00\xff\xff\xff\xff\x27\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\x12\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x16\x00\x27\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\xff\xff\x1d\x00\xff\xff\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\xff\xff\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x13\x00\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x19\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4c\x00\x0b\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\x10\x00\x27\x00\x54\x00\x55\x00\x56\x00\xff\xff\x16\x00\x59\x00\x18\x00\xff\xff\x30\x00\x1b\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x39\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x45\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\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x13\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x13\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x11\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x16\x00\x1d\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\xff\xff\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x0c\x00\x25\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\x27\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x25\x00\x35\x00\xff\xff\xff\xff\x38\x00\x39\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x13\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x1d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\x4f\x00\x50\x00\x27\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x2c\x00\x2e\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\x0c\x00\x25\x00\xff\xff\x0f\x00\x10\x00\x38\x00\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\x21\x00\x4f\x00\x50\x00\xff\xff\x18\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x02\x00\x03\x00\xff\xff\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x19\x00\xff\xff\x1b\x00\x27\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0e\x00\x2e\x00\xff\xff\x25\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\x30\x00\x38\x00\x32\x00\x33\x00\x27\x00\x35\x00\x19\x00\x1a\x00\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x21\x00\x32\x00\x33\x00\x19\x00\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\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"#
+
+happyTable :: HappyAddr
+happyTable = HappyA# "\x00\x00\xb6\x00\x24\x00\x12\x02\x10\x01\xb5\x00\xb6\x00\x69\x01\xb5\x00\xb6\x00\xda\xff\x4b\x01\xe8\x00\x53\x00\x11\xff\xe8\x00\x90\x00\x54\x00\x32\x01\x32\x01\xfc\xff\x1b\x01\x78\x00\x79\x00\x36\x01\x6f\x02\x48\x02\x2b\x02\x24\x00\x32\x01\xda\xff\xda\xff\xb7\x00\x45\x01\x1c\x01\xb7\x00\xf7\x01\xb8\x00\xb9\x00\x53\x00\xb8\x00\xb9\x00\xba\x00\x54\x00\xdf\x00\xba\x00\x6a\x02\xae\x00\x7a\x00\xbb\x00\xbb\x01\xfa\x01\xbb\x00\x7b\x00\x77\x00\x59\x00\xea\x00\x59\x02\x33\x01\xea\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x35\x01\x6a\x01\x6b\x01\xda\xff\x78\x00\x79\x00\x13\x01\x14\x01\x5d\x00\x4b\x02\x58\x02\xf9\x01\x4a\x01\x81\x01\x5e\x00\x73\xff\x4b\x01\x5f\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x95\x00\xb5\x00\xb6\x00\xfb\x00\x7a\x00\x6c\x01\x6d\x01\x6e\x01\x5d\x00\x7b\x00\xb5\x00\xb6\x00\x1c\x02\x6d\x02\x5e\x00\x96\x00\xe8\x00\x5f\x00\x60\x00\x6e\x02\xbb\x00\x15\x01\x61\x00\x4c\x01\x62\x00\x63\x00\x64\x00\xfc\xff\xb7\x00\x11\xff\x4d\x01\xe9\x00\xff\xff\xb8\x00\xb9\x00\x61\x02\x28\x01\xb7\x00\xba\x00\x6c\x02\xb5\x00\xb6\x00\xb8\x00\xb9\x00\x60\x00\xbb\x00\x24\x02\xba\x00\x61\x00\xa0\xff\x62\x00\x63\x00\x64\x00\xfc\xff\xbb\x00\xa0\xff\xa0\xff\xa0\xff\xa0\xff\xc9\x00\xea\x00\xa0\xff\xb2\x00\xa0\xff\xc9\x00\xeb\x01\xf3\x00\xb7\x00\x2b\x01\x2c\x01\xb2\x01\xf7\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xa0\xff\xba\x00\xe0\x01\x66\x01\x67\x01\x24\x00\xc9\x00\x9f\xff\xbb\x00\xa0\xff\x60\x02\xdd\x01\xca\x00\x9f\xff\x9f\xff\x9f\xff\x9f\xff\xe8\x00\x62\x02\x9f\xff\x54\x00\x9f\xff\x8d\xff\x42\x02\xb3\x00\xb7\x00\xe8\x00\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x6e\xff\x15\x01\x9f\xff\xba\x00\x13\xff\xf8\x01\xf9\x01\xb2\x00\x24\x00\x9d\x01\xbb\x00\x9f\xff\xa0\xff\xa0\xff\xde\x01\x0f\x01\xe8\x00\xa0\xff\xa0\xff\x53\x00\xa0\xff\x6e\xff\xb7\x00\x54\x00\x9e\x01\xb2\x00\xfc\xff\xb8\x00\xb9\x00\xea\x00\x65\x02\x9f\x01\xba\x00\x1c\x02\xae\x00\xb3\x00\xb2\x00\xaf\x00\xea\x00\xbb\x00\x5d\x02\xb2\x00\xa0\xff\xa0\xff\xa0\xff\x64\x02\x9f\xff\x9f\xff\xb5\x00\xb6\x00\xa0\xff\x9f\xff\x9f\xff\x9f\x01\x9f\xff\xb2\x00\xb2\x00\x17\xff\x1c\x02\x66\x02\xea\x00\xb2\x00\xb2\x00\x44\x02\xb2\x00\x1d\x02\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x47\x02\xb7\x00\x9f\xff\x9f\xff\x9f\xff\xb3\x00\xb8\x00\xb9\x00\x5d\x00\x85\x00\x9f\xff\xba\x00\x24\x00\xa1\x01\x5e\x00\x19\x00\x73\xff\x5f\x00\xbb\x00\x25\x02\xb3\x00\x36\x01\xb5\x00\xb6\x00\xb2\x00\x80\x01\x8f\x01\x54\x00\x91\x01\x1d\x00\x37\x01\x16\xff\x4a\x02\x70\x01\xb2\x00\x1f\x02\xb5\x00\xb6\x00\x1e\x00\x13\xff\x86\x00\x20\x00\xfb\x00\x21\x00\x60\x00\x14\xff\x22\x00\x41\x02\x61\x00\xb7\x00\x62\x00\x63\x00\x64\x00\xb2\x00\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xb2\x00\x87\x00\x93\x01\xb7\x00\x7d\x01\x12\xff\xbb\x00\x43\x02\xb8\x00\xb9\x00\xb5\x00\xb6\x00\x95\x01\xba\x00\x91\x00\xbb\x00\x5b\x02\xb2\x00\xb2\x00\x0d\xff\xbb\x00\xe8\x01\x67\x01\xb7\x00\x3b\x01\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x0f\x02\xb3\x00\x17\xff\xba\x00\x0c\xff\x10\x02\xaa\x01\xb7\x00\xad\x01\x46\x02\xbb\x00\xb2\x00\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xdf\x00\xea\x00\x4f\x02\x73\xff\xb7\x00\x0a\xff\xbb\x00\xae\x01\xaf\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xb2\x00\xb2\x00\xb0\x01\xb2\x00\x29\x02\x09\xff\xbb\x00\xea\x00\xb7\x00\x53\x02\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x04\x02\xb1\x01\x16\xff\xba\x00\x08\xff\x50\x02\xb3\x00\x90\x00\xb7\x00\xeb\x00\xbb\x00\xb5\x00\xb6\x00\xb8\x00\xb9\x00\x55\x02\x14\xff\x91\x00\xba\x00\x08\x02\x07\xff\xb3\x00\xb7\x00\xff\x00\x01\x01\xbb\x00\xb3\x00\xb8\x00\xb9\x00\x3a\x01\xeb\x00\x38\x02\xba\x00\x68\x02\xc0\x01\xb3\x00\x12\xff\x3b\x01\xb7\x00\xbb\x00\xf2\x01\x2e\x01\x15\x02\xb8\x00\xb9\x00\xb5\x00\xb6\x00\x52\x02\xba\x00\x12\x02\x0d\xff\x68\xff\xb6\x00\x74\x00\xd2\xff\xbb\x00\x24\x00\x4a\x00\xe9\x01\x67\x01\x68\xff\x68\xff\x68\xff\x69\x01\x4c\x00\x0c\xff\x68\xff\x53\x00\x68\xff\x68\xff\x13\x02\x54\x00\xb7\x00\x17\x02\xb5\x00\xb6\x00\x19\x02\xb8\x00\xb9\x00\x1a\x02\x75\x00\x68\xff\xba\x00\x34\x02\x0a\xff\x76\x00\x77\x00\x68\xff\x68\xff\xbb\x00\x38\x02\x19\x00\x39\x02\xd0\x00\x35\x02\x68\xff\x68\xff\x36\x02\x68\xff\x09\xff\x70\x01\xb7\x00\x71\x01\x1b\x00\x1c\x00\x1d\x00\xb8\x00\xb9\x00\x65\x01\x66\x01\x67\x01\xba\x00\x68\xff\x08\xff\x1e\x00\x15\x02\x1f\x00\x20\x00\xbb\x00\x21\x00\x16\x02\x68\xff\x22\x00\xdf\x00\x37\x02\x6a\x01\x6b\x01\xbe\x01\xe1\x00\x07\xff\x4a\x00\x68\xff\x68\xff\xb3\x01\xdf\x00\x0e\x01\x0f\x01\x4c\x00\xe0\x00\xe1\x00\x88\x01\xb5\x00\xb6\x00\x24\x00\xb4\x01\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x8a\x00\x78\x00\xa8\x00\x6c\x01\x6d\x01\x6e\x01\x2d\x00\x0c\x01\xb5\x01\x68\xff\x68\xff\x68\xff\x2e\x00\x15\x02\x2f\x00\xb6\x01\xb7\x00\x30\x00\x22\x02\xc5\x01\xc2\x01\xb8\x00\xb9\x00\xb7\x01\xaa\x00\xc3\x01\xba\x00\x32\x00\x4a\x00\xb8\x01\x33\x00\xb9\x01\x7b\x00\xbb\x00\x3e\x01\x4c\x00\x2d\x01\x2e\x01\x3b\x02\x3c\x02\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xba\x01\xda\x01\x24\x00\xa3\x00\xc9\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xc6\x01\x6a\x01\x6b\x01\xc7\x01\x2b\x00\x2c\x00\x2d\x00\x30\x01\x31\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\xcb\x01\x2f\x00\x40\x00\x41\x00\x30\x00\xcd\x01\xa4\x00\xce\x01\xcf\x01\x8b\x00\x72\x00\xa5\x00\xa6\x00\xd0\x01\x32\x00\xa7\x00\xd1\x01\x33\x00\x6c\x01\x6d\x01\x6e\x01\xe2\x00\xa8\x00\xa8\x00\xd2\x01\xe3\x00\xe1\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xd3\x01\xd4\x01\xd6\x01\xd9\x01\xfd\x01\xe4\x00\xea\x01\xec\x01\xee\x01\xaa\x00\xe5\x00\xf3\x01\xf4\x01\xfb\x01\x3f\x01\x42\x01\x56\x01\x7b\x00\x3c\x00\x57\x01\x3d\x00\x3e\x00\x3f\x00\x5b\x01\x5c\x01\x6e\x01\x40\x00\x41\x00\x42\x00\x24\x00\x74\x00\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x76\x01\x82\x01\x83\x01\x84\x01\x2b\x00\x2c\x00\x2d\x00\x86\x01\x19\x00\x8e\x01\x89\x01\x90\x01\x2e\x00\x92\x01\x2f\x00\x94\x01\x96\x01\x30\x00\xa7\x01\xa4\x00\x1b\x00\x1c\x00\x1d\x00\xa8\x01\x76\x00\x77\x00\xac\x01\x32\x00\xb5\x00\xb6\x00\x33\x00\x1e\x00\xcf\x00\x1f\x00\x20\x00\x8a\x01\x21\x00\xd5\x00\xd8\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xdb\x00\xdd\x00\x00\x01\xfe\x00\x02\x01\x03\x01\x09\x01\xb7\x00\x0d\x01\x8b\x01\x0a\x01\x11\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xff\x00\xba\x00\x3c\x00\x23\x01\x3d\x00\x3e\x00\x3f\x00\x06\x02\xbb\x00\x24\x01\x40\x00\x41\x00\x42\x00\x24\x00\x27\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x28\x01\x24\x00\x29\x01\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x31\x01\xb8\x00\xb9\x00\x4f\x01\x50\x01\x2e\x00\xba\x00\x2f\x00\x3c\x01\x54\x00\x30\x00\x34\x01\x31\x00\xbb\x00\xb5\x00\xb6\x00\xb5\x00\xb6\x00\x72\x00\x6b\x00\x32\x00\x6c\x00\x70\x00\x33\x00\x8b\x00\x51\x01\x93\x00\x96\x00\x97\x00\x47\xff\x99\x00\x5a\x01\xc5\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xb7\x00\xb0\x00\xb7\x00\xbb\x00\xc2\x00\xb8\x00\xb9\x00\xb8\x00\xb9\x00\x5b\x01\xba\x00\x5b\x01\xba\x00\xc8\x00\xb5\x00\xb6\x00\x04\x00\xbb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x71\x02\x5d\x02\x5f\x02\x40\x00\x41\x00\x42\x00\x24\x00\xe0\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x60\x02\x68\x02\xea\x00\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x40\x02\xb8\x00\xb9\x00\x41\x02\x00\x00\x2e\x00\xba\x00\x2f\x00\x4a\x02\x4e\x02\x30\x00\x51\x02\x31\x00\xbb\x00\xf5\x00\xb6\x00\xb5\x00\xb6\x00\x52\x02\x55\x02\x32\x00\x5b\x02\x04\x02\x33\x00\x07\x02\xe2\x01\x08\x02\x0a\x02\x0b\x02\xf6\x00\x15\x02\x1f\x02\xc7\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xf7\x00\x1c\x02\xb7\x00\x21\x02\x22\x02\xf8\x00\xf9\x00\xb8\x00\xb9\x00\xfa\x00\xba\x00\x27\x02\xba\x00\x2c\x02\x2d\x02\x2e\x02\x2f\x02\xfb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x30\x02\x3d\x02\xc2\x01\x40\x00\x41\x00\x42\x00\x24\x00\xbe\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xea\x00\xcb\x01\xcd\x01\xdf\x00\x2b\x00\x2c\x00\x2d\x00\xe3\x01\x19\x00\xe4\x01\xd4\x00\xd9\x01\x2e\x00\xe6\x01\x2f\x00\xe7\x01\xe8\x01\x30\x00\xf7\x01\x31\x00\x1b\x00\x1c\x00\x1d\x00\x01\x02\x02\x02\x00\x02\x42\x01\x32\x00\xb5\x00\xb6\x00\x33\x00\x1e\x00\x41\x01\x1f\x00\x20\x00\x45\x01\x21\x00\x47\x01\x49\x01\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x48\x01\x4a\x01\x53\x01\xd8\x01\x52\x01\x59\x01\x5e\x01\xb7\x00\x5f\x01\x8c\x01\x70\x01\x60\x01\xb8\x00\xb9\x00\x61\x01\x62\x01\x73\x01\xba\x00\x3c\x00\x8d\x00\x3d\x00\x3e\x00\x3f\x00\x65\x01\xbb\x00\x79\x01\x40\x00\x41\x00\x42\x00\x24\x00\x7a\x01\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x80\x01\x78\x01\x88\x01\x98\x01\x2b\x00\x2c\x00\x2d\x00\xa4\x01\x19\x00\x9c\x01\xd7\x00\xa0\x01\x2e\x00\x7d\x01\x2f\x00\xa2\x01\xa3\x01\x30\x00\xa6\x01\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x00\x00\xcd\x00\x32\x00\xd7\x00\xda\x00\x33\x00\x1e\x00\xf1\x01\x1f\x00\x20\x00\xdf\x00\x21\x00\xc4\xff\xdd\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xc5\xff\xf2\x00\xb7\x00\x00\x00\xdf\x00\xdf\x00\x16\x01\xb8\x00\xb9\x00\x8d\x01\x0d\x01\x65\x00\xba\x00\x1d\x01\x2d\x01\x39\x01\x66\x00\x3a\x01\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x68\x00\x69\x00\x6e\x00\x40\x00\x41\x00\x42\x00\x24\x00\x6a\x00\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x6b\x00\x6f\x00\x70\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x72\x00\x19\x00\x81\x00\xec\x00\x82\x00\x2e\x00\x83\x00\x2f\x00\x84\x00\x85\x00\x30\x00\x8d\x00\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x8e\x00\xb2\x00\x32\x00\x00\x00\xff\xff\x33\x00\x1e\x00\xf2\x01\x1f\x00\x20\x00\xff\xff\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xed\x00\x00\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\x00\x00\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x19\x00\x00\x00\xee\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x03\x02\x1f\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xef\x00\x00\x00\x00\x00\xba\x00\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\xf0\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x00\x00\x2e\x00\xba\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbb\x00\xb5\x00\xb6\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xff\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xb7\x00\x00\x00\xb7\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xb8\x00\xb9\x00\x00\x00\xba\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\x00\x00\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x18\x02\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x19\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x3c\x00\x72\x02\x3d\x00\x3e\x00\x3f\x00\x00\x00\x2d\x00\x1d\x00\x40\x00\x41\x00\x42\x00\x00\x00\x2e\x00\x43\x00\x2f\x00\x00\x00\x1e\x00\x30\x00\x0b\x02\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x0c\x02\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x02\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x6a\x02\x63\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x64\x02\x1d\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x0f\x02\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x3e\x02\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x4c\x02\x18\x01\x00\x00\x3d\x02\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x28\x02\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x31\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x56\x02\x18\x01\x00\x00\xc4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x32\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xbc\x01\x18\x01\x00\x00\xd5\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x33\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xbc\x01\xbf\x01\x00\x00\xe4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x34\x02\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x98\x01\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xc8\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x99\x01\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xf5\x01\x18\x01\x00\x00\xa4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x00\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x74\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x01\x44\x00\x45\x00\x46\x00\x00\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x47\x00\x7e\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\x1a\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x80\x00\x00\x00\x1d\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x0b\x02\x20\x00\x7e\x00\x21\x00\x00\x00\x00\x00\x22\x00\x57\x02\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\xee\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x78\x00\xa8\x00\x00\x00\xb7\x00\x00\x00\xac\x00\xad\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x7f\x00\x80\x00\xba\x00\x1e\x01\x44\x00\x45\x00\x46\x00\x00\x00\xa9\x00\xbb\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x47\x00\x7e\x00\x00\x00\x48\x00\x49\x00\x7b\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x16\x01\x7f\x00\x80\x00\x00\x00\x2f\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xfc\x01\x18\x01\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x1f\x01\x44\x00\x45\x00\x46\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x20\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x80\x00\x00\x00\x00\x00\x00\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x21\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x22\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x8e\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x8f\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\x9e\x00\x00\x00\x9f\x00\xba\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x72\x00\xbb\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x25\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\xa1\x00\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x26\x01\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x6b\x02\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x7e\x01\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x89\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x06\x01\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x45\x02\x1e\x00\x00\x00\x1f\x00\x20\x00\x8a\x01\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x24\x02\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x28\x02\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xdb\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xdd\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xfe\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x3e\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x53\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x54\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x55\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x62\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x73\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x74\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x75\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x7a\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x7b\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x85\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd2\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd3\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xa6\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xab\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xcd\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xce\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd1\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd2\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd3\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd4\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd7\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xe6\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9a\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xf0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xf2\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x66\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x92\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x98\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9a\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9c\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9d\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbc\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbd\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbe\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbf\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc1\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc3\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc5\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc7\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xcb\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x1a\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x00\x00\x1e\x00\x22\x00\xa9\x01\x20\x00\x1d\x00\x21\x00\x78\x00\xa8\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x16\x01\xda\x00\x20\x00\x19\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x17\x01\x18\x01\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x9b\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\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 = Happy_Data_Array.array (3, 257) [
+	(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)
+	]
+
+happy_n_terms = 121 :: Int
+happy_n_nonterms = 76 :: Int
+
+happyReduce_3 = happySpecReduce_0  0# happyReduction_3
+happyReduction_3  =  happyIn6
+		 ([]
+	)
+
+happyReduce_4 = happySpecReduce_2  0# happyReduction_4
+happyReduction_4 happy_x_2
+	happy_x_1
+	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_5 = happySpecReduce_2  0# happyReduction_5
+happyReduction_5 happy_x_2
+	happy_x_1
+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (map RealDecl happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_6 = happyReduce 4# 0# happyReduction_6
+happyReduction_6 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	case happyOut6 happy_x_4 of { happy_var_4 -> 
+	happyIn6
+		 (RealDecl (PInclude happy_var_2) : happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_7 = happySpecReduce_1  1# happyReduction_7
+happyReduction_7 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (happy_var_1
+	)}
+
+happyReduce_8 = happySpecReduce_1  1# happyReduction_8
+happyReduction_8 happy_x_1
+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl (DataDecl happy_var_1)
+	)}
+
+happyReduce_9 = happySpecReduce_1  1# happyReduction_9
+happyReduction_9 happy_x_1
+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_10 = happyReduce 5# 1# happyReduction_10
+happyReduction_10 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn7
+		 (RealDecl (Freeze happy_var_3 happy_var_4 [] happy_var_2)
+	) `HappyStk` happyRest}}}
+
+happyReduce_11 = happyReduce 4# 1# happyReduction_11
+happyReduction_11 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut65 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_12 = happyReduce 4# 1# happyReduction_12
+happyReduction_12 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut66 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PDoUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_13 = happyReduce 4# 1# happyReduction_13
+happyReduction_13 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut67 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PIdiom happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_14 = happyReduce 4# 1# happyReduction_14
+happyReduction_14 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PParams happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_15 = happyReduce 4# 1# happyReduction_15
+happyReduction_15 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut69 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PNamespace happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_16 = happySpecReduce_1  1# happyReduction_16
+happyReduction_16 happy_x_1
+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_17 = happyReduce 6# 1# happyReduction_17
+happyReduction_17 (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 happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut40 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	happyIn7
+		 (RealDecl (SynDef happy_var_2 happy_var_3 happy_var_5)
+	) `HappyStk` happyRest}}}
+
+happyReduce_18 = happySpecReduce_2  1# happyReduction_18
+happyReduction_18 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CInclude happy_var_2)
+	)}
+
+happyReduce_19 = happySpecReduce_2  1# happyReduction_19
+happyReduction_19 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CLib happy_var_2)
+	)}
+
+happyReduce_20 = happyReduce 5# 2# happyReduction_20
+happyReduction_20 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn8
+		 (Transform happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_21 = happyReduce 7# 3# happyReduction_21
+happyReduction_21 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	case happyOut15 happy_x_4 of { happy_var_4 -> 
+	case happyOut80 happy_x_5 of { happy_var_5 -> 
+	case happyOut79 happy_x_6 of { happy_var_6 -> 
+	happyIn9
+		 (FunType happy_var_1 happy_var_3 (nub happy_var_4) happy_var_5 happy_var_6
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_22 = happySpecReduce_3  3# happyReduction_22
+happyReduction_22 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	happyIn9
+		 (ProofScript happy_var_1 happy_var_2
+	)}}
+
+happyReduce_23 = happyReduce 9# 3# happyReduction_23
+happyReduction_23 (happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	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 happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	case happyOut80 happy_x_8 of { happy_var_8 -> 
+	case happyOut79 happy_x_9 of { happy_var_9 -> 
+	happyIn9
+		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}}}}
+
+happyReduce_24 = happyReduce 10# 3# happyReduction_24
+happyReduction_24 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	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 happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_7 of { happy_var_7 -> 
+	case happyOut80 happy_x_9 of { happy_var_9 -> 
+	case happyOut79 happy_x_10 of { happy_var_10 -> 
+	happyIn9
+		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_25 = happyReduce 8# 3# happyReduction_25
+happyReduction_25 (happy_x_8 `HappyStk`
+	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 happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut15 happy_x_5 of { happy_var_5 -> 
+	case happyOut80 happy_x_7 of { happy_var_7 -> 
+	case happyOut79 happy_x_8 of { happy_var_8 -> 
+	happyIn9
+		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_5)
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_26 = happyReduce 5# 3# happyReduction_26
+happyReduction_26 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn9
+		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
+	) `HappyStk` happyRest}}
+
+happyReduce_27 = happyReduce 8# 3# happyReduction_27
+happyReduction_27 (happy_x_8 `HappyStk`
+	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 happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_7 of { happy_var_7 -> 
+	happyIn9
+		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}
+
+happyReduce_28 = happyReduce 7# 3# happyReduction_28
+happyReduction_28 (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 happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	happyIn9
+		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_29 = happySpecReduce_1  4# happyReduction_29
+happyReduction_29 happy_x_1
+	 =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_30 = happySpecReduce_1  4# happyReduction_30
+happyReduction_30 happy_x_1
+	 =  happyIn10
+		 (Vis Private
+	)
+
+happyReduce_31 = happySpecReduce_1  4# happyReduction_31
+happyReduction_31 happy_x_1
+	 =  happyIn10
+		 (Vis Abstract
+	)
+
+happyReduce_32 = happySpecReduce_0  4# happyReduction_32
+happyReduction_32  =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_33 = happySpecReduce_1  5# happyReduction_33
+happyReduction_33 happy_x_1
+	 =  happyIn11
+		 (False
+	)
+
+happyReduce_34 = happySpecReduce_2  5# happyReduction_34
+happyReduction_34 happy_x_2
+	happy_x_1
+	 =  happyIn11
+		 (True
+	)
+
+happyReduce_35 = happySpecReduce_3  6# happyReduction_35
+happyReduction_35 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut12 happy_x_3 of { happy_var_3 -> 
+	happyIn12
+		 (happy_var_2:happy_var_3
+	)}}
+
+happyReduce_36 = happySpecReduce_0  6# happyReduction_36
+happyReduction_36  =  happyIn12
+		 ([]
+	)
+
+happyReduce_37 = happySpecReduce_1  7# happyReduction_37
+happyReduction_37 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_38 = happySpecReduce_1  7# happyReduction_38
+happyReduction_38 happy_x_1
+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_39 = happySpecReduce_3  7# happyReduction_39
+happyReduction_39 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn13
+		 (happy_var_2
+	)}
+
+happyReduce_40 = happyReduce 5# 7# happyReduction_40
+happyReduction_40 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut58 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn13
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_41 = happySpecReduce_2  8# happyReduction_41
+happyReduction_41 happy_x_2
+	happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	case happyOut14 happy_x_2 of { happy_var_2 -> 
+	happyIn14
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_42 = happySpecReduce_1  8# happyReduction_42
+happyReduction_42 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn14
+		 ([happy_var_1]
+	)}
+
+happyReduce_43 = happySpecReduce_1  9# happyReduction_43
+happyReduction_43 happy_x_1
+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
+	happyIn15
+		 (happy_var_1
+	)}
+
+happyReduce_44 = happySpecReduce_3  9# happyReduction_44
+happyReduction_44 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn15
+		 (happy_var_2
+	)}
+
+happyReduce_45 = happySpecReduce_0  10# happyReduction_45
+happyReduction_45  =  happyIn16
+		 ([]
+	)
+
+happyReduce_46 = happySpecReduce_2  10# happyReduction_46
+happyReduction_46 happy_x_2
+	happy_x_1
+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
+	case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn16
+		 (happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_47 = happySpecReduce_1  11# happyReduction_47
+happyReduction_47 happy_x_1
+	 =  happyIn17
+		 ([NoCG]
+	)
+
+happyReduce_48 = happySpecReduce_1  11# happyReduction_48
+happyReduction_48 happy_x_1
+	 =  happyIn17
+		 ([CGEval, Inline]
+	)
+
+happyReduce_49 = happyReduce 4# 11# happyReduction_49
+happyReduction_49 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn17
+		 ([CGSpec happy_var_3]
+	) `HappyStk` happyRest}
+
+happyReduce_50 = happySpecReduce_1  11# happyReduction_50
+happyReduction_50 happy_x_1
+	 =  happyIn17
+		 ([CGSpec []]
+	)
+
+happyReduce_51 = happySpecReduce_1  11# happyReduction_51
+happyReduction_51 happy_x_1
+	 =  happyIn17
+		 ([Inline]
+	)
+
+happyReduce_52 = happySpecReduce_2  11# happyReduction_52
+happyReduction_52 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn17
+		 ([CExport happy_var_2]
+	)}
+
+happyReduce_53 = happyReduce 4# 12# happyReduction_53
+happyReduction_53 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut21 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn18
+		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
+	) `HappyStk` happyRest}}}
+
+happyReduce_54 = happySpecReduce_1  13# happyReduction_54
+happyReduction_54 happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	happyIn19
+		 ([happy_var_1]
+	)}
+
+happyReduce_55 = happySpecReduce_3  13# happyReduction_55
+happyReduction_55 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn19
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_56 = happySpecReduce_1  14# happyReduction_56
+happyReduction_56 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
+	happyIn20
+		 (happy_var_1
+	)}
+
+happyReduce_57 = happySpecReduce_1  14# happyReduction_57
+happyReduction_57 happy_x_1
+	 =  happyIn20
+		 ("-"
+	)
+
+happyReduce_58 = happySpecReduce_1  14# happyReduction_58
+happyReduction_58 happy_x_1
+	 =  happyIn20
+		 ("<"
+	)
+
+happyReduce_59 = happySpecReduce_1  14# happyReduction_59
+happyReduction_59 happy_x_1
+	 =  happyIn20
+		 (">"
+	)
+
+happyReduce_60 = happySpecReduce_1  15# happyReduction_60
+happyReduction_60 happy_x_1
+	 =  happyIn21
+		 (LeftAssoc
+	)
+
+happyReduce_61 = happySpecReduce_1  15# happyReduction_61
+happyReduction_61 happy_x_1
+	 =  happyIn21
+		 (RightAssoc
+	)
+
+happyReduce_62 = happySpecReduce_1  15# happyReduction_62
+happyReduction_62 happy_x_1
+	 =  happyIn21
+		 (NonAssoc
+	)
+
+happyReduce_63 = happyReduce 4# 16# happyReduction_63
+happyReduction_63 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut23 happy_x_3 of { happy_var_3 -> 
+	happyIn22
+		 (LatexDefs happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_64 = happySpecReduce_3  17# happyReduction_64
+happyReduction_64 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	happyIn23
+		 ([(happy_var_1,happy_var_3)]
+	)}}
+
+happyReduce_65 = happyReduce 5# 17# happyReduction_65
+happyReduction_65 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	case happyOut23 happy_x_5 of { happy_var_5 -> 
+	happyIn23
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_66 = happySpecReduce_2  18# happyReduction_66
+happyReduction_66 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn24
+		 ((happy_var_1, happy_var_2)
+	)}}
+
+happyReduce_67 = happySpecReduce_0  19# happyReduction_67
+happyReduction_67  =  happyIn25
+		 ([]
+	)
+
+happyReduce_68 = happySpecReduce_2  19# happyReduction_68
+happyReduction_68 happy_x_2
+	happy_x_1
+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn25
+		 ((happy_var_1,Nothing):happy_var_2
+	)}}
+
+happyReduce_69 = happyReduce 5# 19# happyReduction_69
+happyReduction_69 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut25 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((RVar happy_var_4 happy_var_5 happy_var_1, Just happy_var_1):happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_70 = happyReduce 5# 19# happyReduction_70
+happyReduction_70 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut25 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((happy_var_3, Just happy_var_1):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_71 = happyReduce 6# 20# happyReduction_71
+happyReduction_71 (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 happyOut28 happy_x_2 of { happy_var_2 -> 
+	case happyOut31 happy_x_3 of { happy_var_3 -> 
+	case happyOut27 happy_x_4 of { happy_var_4 -> 
+	case happyOut80 happy_x_5 of { happy_var_5 -> 
+	case happyOut79 happy_x_6 of { happy_var_6 -> 
+	happyIn26
+		 (mkDatatype happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_72 = happySpecReduce_3  21# happyReduction_72
+happyReduction_72 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
+	case happyOut73 happy_x_2 of { happy_var_2 -> 
+	happyIn27
+		 (Right (happy_var_1,happy_var_2)
+	)}}
+
+happyReduce_73 = happySpecReduce_3  21# happyReduction_73
+happyReduction_73 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
+	happyIn27
+		 (Left happy_var_2
+	)}
+
+happyReduce_74 = happySpecReduce_3  21# happyReduction_74
+happyReduction_74 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn27
+		 (Left (RConst happy_var_2 happy_var_3 TYPE)
+	)}}
+
+happyReduce_75 = happySpecReduce_0  22# happyReduction_75
+happyReduction_75  =  happyIn28
+		 ([]
+	)
+
+happyReduce_76 = happySpecReduce_3  22# happyReduction_76
+happyReduction_76 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
+	happyIn28
+		 (happy_var_2
+	)}
+
+happyReduce_77 = happySpecReduce_1  23# happyReduction_77
+happyReduction_77 happy_x_1
+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
+	happyIn29
+		 ([happy_var_1]
+	)}
+
+happyReduce_78 = happySpecReduce_3  23# happyReduction_78
+happyReduction_78 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
+	case happyOut29 happy_x_3 of { happy_var_3 -> 
+	happyIn29
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_79 = happySpecReduce_1  24# happyReduction_79
+happyReduction_79 happy_x_1
+	 =  happyIn30
+		 (NoElim
+	)
+
+happyReduce_80 = happySpecReduce_1  24# happyReduction_80
+happyReduction_80 happy_x_1
+	 =  happyIn30
+		 (Collapsible
+	)
+
+happyReduce_81 = happySpecReduce_1  25# happyReduction_81
+happyReduction_81 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
+	happyIn31
+		 (happy_var_1
+	)}
+
+happyReduce_82 = happySpecReduce_3  25# happyReduction_82
+happyReduction_82 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_2 of { happy_var_2 -> 
+	happyIn31
+		 (useropFn happy_var_2
+	)}
+
+happyReduce_83 = happyReduce 4# 26# happyReduction_83
+happyReduction_83 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	case happyOut56 happy_x_4 of { happy_var_4 -> 
+	happyIn32
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_84 = happyReduce 5# 26# happyReduction_84
+happyReduction_84 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut42 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn32
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_85 = happySpecReduce_3  26# happyReduction_85
+happyReduction_85 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_86 = happySpecReduce_3  26# happyReduction_86
+happyReduction_86 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_87 = happySpecReduce_1  26# happyReduction_87
+happyReduction_87 happy_x_1
+	 =  happyIn32
+		 (RPlaceholder
+	)
+
+happyReduce_88 = happySpecReduce_3  26# happyReduction_88
+happyReduction_88 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
+	)}}
+
+happyReduce_89 = happySpecReduce_3  26# happyReduction_89
+happyReduction_89 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
+	)}}
+
+happyReduce_90 = happySpecReduce_1  27# happyReduction_90
+happyReduction_90 happy_x_1
+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
+	happyIn33
+		 (happy_var_1
+	)}
+
+happyReduce_91 = happySpecReduce_3  27# happyReduction_91
+happyReduction_91 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn33
+		 (happy_var_2
+	)}
+
+happyReduce_92 = happyReduce 4# 27# happyReduction_92
+happyReduction_92 (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 happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	case happyOut56 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_93 = happyReduce 5# 27# happyReduction_93
+happyReduction_93 (happy_x_5 `HappyStk`
+	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 happyOut42 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn33
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_94 = happyReduce 4# 27# happyReduction_94
+happyReduction_94 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy")) RPlaceholder) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_95 = happyReduce 4# 27# happyReduction_95
+happyReduction_95 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (doBind Lam happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_96 = happyReduce 4# 27# happyReduction_96
+happyReduction_96 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut41 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (doLetBind happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_97 = happySpecReduce_1  27# happyReduction_97
+happyReduction_97 happy_x_1
+	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
+	happyIn33
+		 (happy_var_1
+	)}
+
+happyReduce_98 = happyReduce 8# 27# happyReduction_98
+happyReduction_98 (happy_x_8 `HappyStk`
+	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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut33 happy_x_6 of { happy_var_6 -> 
+	case happyOut80 happy_x_7 of { happy_var_7 -> 
+	case happyOut79 happy_x_8 of { happy_var_8 -> 
+	happyIn33
+		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else")) [happy_var_2,happy_var_4,happy_var_6]
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_99 = happySpecReduce_2  28# happyReduction_99
+happyReduction_99 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	happyIn34
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_100 = happyReduce 4# 28# happyReduction_100
+happyReduction_100 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_101 = happySpecReduce_3  29# happyReduction_101
+happyReduction_101 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
+	case happyOut35 happy_x_3 of { happy_var_3 -> 
+	happyIn35
+		 (happy_var_1 ++ happy_var_3
+	)}}
+
+happyReduce_102 = happySpecReduce_1  29# happyReduction_102
+happyReduction_102 happy_x_1
+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
+	happyIn35
+		 (happy_var_1
+	)}
+
+happyReduce_103 = happySpecReduce_3  30# happyReduction_103
+happyReduction_103 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	happyIn36
+		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
+	)}}
+
+happyReduce_104 = happySpecReduce_1  31# happyReduction_104
+happyReduction_104 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn37
+		 ([happy_var_1]
+	)}
+
+happyReduce_105 = happySpecReduce_3  31# happyReduction_105
+happyReduction_105 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut37 happy_x_3 of { happy_var_3 -> 
+	happyIn37
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_106 = happySpecReduce_2  32# happyReduction_106
+happyReduction_106 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	happyIn38
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_107 = happySpecReduce_1  32# happyReduction_107
+happyReduction_107 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn38
+		 ([(happy_var_1, 0)]
+	)}
+
+happyReduce_108 = happySpecReduce_3  32# happyReduction_108
+happyReduction_108 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn38
+		 ((happy_var_1,0):happy_var_3
+	)}}
+
+happyReduce_109 = happyReduce 4# 32# happyReduction_109
+happyReduction_109 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut38 happy_x_4 of { happy_var_4 -> 
+	happyIn38
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_110 = happySpecReduce_1  33# happyReduction_110
+happyReduction_110 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	happyIn39
+		 ([happy_var_1]
+	)}
+
+happyReduce_111 = happySpecReduce_3  33# happyReduction_111
+happyReduction_111 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut37 happy_x_3 of { happy_var_3 -> 
+	happyIn39
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_112 = happySpecReduce_0  34# happyReduction_112
+happyReduction_112  =  happyIn40
+		 ([]
+	)
+
+happyReduce_113 = happySpecReduce_2  34# happyReduction_113
+happyReduction_113 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut40 happy_x_2 of { happy_var_2 -> 
+	happyIn40
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_114 = happyReduce 4# 35# happyReduction_114
+happyReduction_114 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn41
+		 ([(happy_var_1,happy_var_2,happy_var_4)]
+	) `HappyStk` happyRest}}}
+
+happyReduce_115 = happyReduce 6# 35# happyReduction_115
+happyReduction_115 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut41 happy_x_6 of { happy_var_6 -> 
+	happyIn41
+		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_116 = happySpecReduce_3  36# happyReduction_116
+happyReduction_116 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn42
+		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1)
+	)}}}
+
+happyReduce_117 = happySpecReduce_3  36# happyReduction_117
+happyReduction_117 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn42
+		 ((happy_var_1, happy_var_3)
+	)}}
+
+happyReduce_118 = happyReduce 4# 37# happyReduction_118
+happyReduction_118 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn43
+		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_119 = happyReduce 5# 37# happyReduction_119
+happyReduction_119 (happy_x_5 `HappyStk`
+	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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_120 = happyReduce 5# 37# happyReduction_120
+happyReduction_120 (happy_x_5 `HappyStk`
+	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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) [happy_var_1, happy_var_3]
+	) `HappyStk` happyRest}}}}
+
+happyReduce_121 = happyReduce 5# 37# happyReduction_121
+happyReduction_121 (happy_x_5 `HappyStk`
+	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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_122 = happyReduce 5# 37# happyReduction_122
+happyReduction_122 (happy_x_5 `HappyStk`
+	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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_123 = happyReduce 5# 37# happyReduction_123
+happyReduction_123 (happy_x_5 `HappyStk`
+	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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn43
+		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_124 = happySpecReduce_1  37# happyReduction_124
+happyReduction_124 happy_x_1
+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
+	happyIn43
+		 (happy_var_1
+	)}
+
+happyReduce_125 = happyReduce 5# 37# happyReduction_125
+happyReduction_125 (happy_x_5 `HappyStk`
+	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 happyOut56 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_126 = happyReduce 5# 38# happyReduction_126
+happyReduction_126 (happy_x_5 `HappyStk`
+	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 happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_127 = happyReduce 6# 39# happyReduction_127
+happyReduction_127 (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 happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_128 = happyReduce 6# 39# happyReduction_128
+happyReduction_128 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_129 = happyReduce 6# 39# happyReduction_129
+happyReduction_129 (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 happyOut46 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_130 = happyReduce 6# 39# happyReduction_130
+happyReduction_130 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut46 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_131 = happyReduce 6# 39# happyReduction_131
+happyReduction_131 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}
+
+happyReduce_132 = happyReduce 6# 39# happyReduction_132
+happyReduction_132 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex [] happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}
+
+happyReduce_133 = happyReduce 6# 39# happyReduction_133
+happyReduction_133 (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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex [] (RVar happy_var_4 happy_var_5 (MN "X" 0))) happy_var_3)
+	) `HappyStk` happyRest}}}
+
+happyReduce_134 = happyReduce 5# 39# happyReduction_134
+happyReduction_134 (happy_x_5 `HappyStk`
+	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 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (RBind (MN "X" 1) (Lam RPlaceholder)
+                    (RBind (MN "X" 2) (Pi Ex [] (RVar happy_var_3 happy_var_4 (MN "X" 0)))
+                       (RVar happy_var_3 happy_var_4 (MN "X" 1))))
+	) `HappyStk` happyRest}}
+
+happyReduce_135 = happyReduce 5# 39# 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 happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                   (RBind (MN "X" 1) (Lam RPlaceholder)
+                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair"))
+                                    [RVar happy_var_3 happy_var_4 (MN "X" 0),
+                                     RVar happy_var_3 happy_var_4 (MN "X" 1)]))
+	) `HappyStk` happyRest}}
+
+happyReduce_136 = happyReduce 6# 39# 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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
+                                    [happy_var_2,
+                                     RVar happy_var_4 happy_var_5 (MN "X" 0)])
+	) `HappyStk` happyRest}}}
+
+happyReduce_137 = happyReduce 6# 39# happyReduction_137
+happyReduction_137 (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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
+                                    [RVar happy_var_4 happy_var_5 (MN "X" 0), happy_var_3])
+	) `HappyStk` happyRest}}}
+
+happyReduce_138 = happySpecReduce_1  40# happyReduction_138
+happyReduction_138 happy_x_1
+	 =  happyIn46
+		 ("<"
+	)
+
+happyReduce_139 = happySpecReduce_1  40# happyReduction_139
+happyReduction_139 happy_x_1
+	 =  happyIn46
+		 (">"
+	)
+
+happyReduce_140 = happySpecReduce_0  41# happyReduction_140
+happyReduction_140  =  happyIn47
+		 (RPlaceholder
+	)
+
+happyReduce_141 = happySpecReduce_2  41# happyReduction_141
+happyReduction_141 happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn47
+		 (happy_var_2
+	)}
+
+happyReduce_142 = happySpecReduce_0  42# happyReduction_142
+happyReduction_142  =  happyIn48
+		 (RPlaceholder
+	)
+
+happyReduce_143 = happySpecReduce_2  42# happyReduction_143
+happyReduction_143 happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn48
+		 (happy_var_2
+	)}
+
+happyReduce_144 = happyReduce 5# 43# happyReduction_144
+happyReduction_144 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut39 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut49 happy_x_5 of { happy_var_5 -> 
+	happyIn49
+		 (doBind (Pi Im []) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_145 = happySpecReduce_1  43# happyReduction_145
+happyReduction_145 happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	happyIn49
+		 (happy_var_1
+	)}
+
+happyReduce_146 = happySpecReduce_3  44# happyReduction_146
+happyReduction_146 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn50
+		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
+	)}}
+
+happyReduce_147 = happyReduce 6# 44# happyReduction_147
+happyReduction_147 (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 happyOut35 happy_x_2 of { happy_var_2 -> 
+	case happyOut52 happy_x_4 of { happy_var_4 -> 
+	case happyOut50 happy_x_6 of { happy_var_6 -> 
+	happyIn50
+		 (doBind (Pi Ex happy_var_4) happy_var_2 happy_var_6
+	) `HappyStk` happyRest}}}
+
+happyReduce_148 = happyReduce 5# 44# happyReduction_148
+happyReduction_148 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (doBind (Pi Ex [Lazy]) happy_var_2 happy_var_5
+	) `HappyStk` happyRest}}
+
+happyReduce_149 = happySpecReduce_3  44# happyReduction_149
+happyReduction_149 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn50
+		 (bracket happy_var_2
+	)}
+
+happyReduce_150 = happyReduce 7# 44# happyReduction_150
+happyReduction_150 (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 happyOut50 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_4 of { happy_var_4 -> 
+	case happyOut80 happy_x_5 of { happy_var_5 -> 
+	case happyOut79 happy_x_6 of { happy_var_6 -> 
+	happyIn50
+		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_151 = happySpecReduce_1  44# happyReduction_151
+happyReduction_151 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (happy_var_1
+	)}
+
+happyReduce_152 = happySpecReduce_3  44# happyReduction_152
+happyReduction_152 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn50
+		 (happy_var_2
+	)}
+
+happyReduce_153 = happyReduce 5# 44# happyReduction_153
+happyReduction_153 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_154 = happyReduce 5# 44# happyReduction_154
+happyReduction_154 (happy_x_5 `HappyStk`
+	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 happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_155 = happySpecReduce_1  44# happyReduction_155
+happyReduction_155 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (happy_var_1
+	)}
+
+happyReduce_156 = happySpecReduce_1  45# happyReduction_156
+happyReduction_156 happy_x_1
+	 =  happyIn51
+		 (Lazy
+	)
+
+happyReduce_157 = happySpecReduce_1  45# happyReduction_157
+happyReduction_157 happy_x_1
+	 =  happyIn51
+		 (Static
+	)
+
+happyReduce_158 = happySpecReduce_3  46# happyReduction_158
+happyReduction_158 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut53 happy_x_2 of { happy_var_2 -> 
+	happyIn52
+		 (happy_var_2
+	)}
+
+happyReduce_159 = happySpecReduce_0  46# happyReduction_159
+happyReduction_159  =  happyIn52
+		 ([]
+	)
+
+happyReduce_160 = happySpecReduce_3  47# happyReduction_160
+happyReduction_160 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOut53 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_161 = happySpecReduce_1  47# happyReduction_161
+happyReduction_161 happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 ([happy_var_1]
+	)}
+
+happyReduce_162 = happyReduce 8# 48# happyReduction_162
+happyReduction_162 (happy_x_8 `HappyStk`
+	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 happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	case happyOut80 happy_x_7 of { happy_var_7 -> 
+	case happyOut79 happy_x_8 of { happy_var_8 -> 
+	happyIn54
+		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_163 = happySpecReduce_3  49# happyReduction_163
+happyReduction_163 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn55
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_164 = happySpecReduce_3  49# happyReduction_164
+happyReduction_164 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut55 happy_x_3 of { happy_var_3 -> 
+	happyIn55
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_165 = happySpecReduce_3  50# happyReduction_165
+happyReduction_165 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (RVar happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_166 = happySpecReduce_3  50# happyReduction_166
+happyReduction_166 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (RReturn happy_var_2 happy_var_3
+	)}}
+
+happyReduce_167 = happySpecReduce_3  50# happyReduction_167
+happyReduction_167 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn56
+		 (bracket happy_var_2
+	)}
+
+happyReduce_168 = happySpecReduce_2  50# happyReduction_168
+happyReduction_168 happy_x_2
+	happy_x_1
+	 =  case happyOut56 happy_x_2 of { happy_var_2 -> 
+	happyIn56
+		 (RPure happy_var_2
+	)}
+
+happyReduce_169 = happySpecReduce_1  50# happyReduction_169
+happyReduction_169 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
+	happyIn56
+		 (RMetavar happy_var_1
+	)}
+
+happyReduce_170 = happyReduce 4# 50# happyReduction_170
+happyReduction_170 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn56
+		 (RExpVar happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_171 = happySpecReduce_3  50# happyReduction_171
+happyReduction_171 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_172 = happySpecReduce_1  50# happyReduction_172
+happyReduction_172 happy_x_1
+	 =  happyIn56
+		 (RRefl
+	)
+
+happyReduce_173 = happySpecReduce_3  50# happyReduction_173
+happyReduction_173 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
+	)}}
+
+happyReduce_174 = happySpecReduce_3  50# happyReduction_174
+happyReduction_174 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
+	)}}
+
+happyReduce_175 = happySpecReduce_1  50# happyReduction_175
+happyReduction_175 happy_x_1
+	 =  happyIn56
+		 (RPlaceholder
+	)
+
+happyReduce_176 = happySpecReduce_1  50# happyReduction_176
+happyReduction_176 happy_x_1
+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
+	happyIn56
+		 (RDo happy_var_1
+	)}
+
+happyReduce_177 = happySpecReduce_3  50# happyReduction_177
+happyReduction_177 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn56
+		 (RIdiom happy_var_2
+	)}
+
+happyReduce_178 = happyReduce 5# 50# happyReduction_178
+happyReduction_178 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut58 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn56
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_179 = happySpecReduce_1  50# happyReduction_179
+happyReduction_179 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn56
+		 (happy_var_1
+	)}
+
+happyReduce_180 = happySpecReduce_1  50# happyReduction_180
+happyReduction_180 happy_x_1
+	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
+	happyIn56
+		 (happy_var_1
+	)}
+
+happyReduce_181 = happySpecReduce_1  50# happyReduction_181
+happyReduction_181 happy_x_1
+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
+	happyIn56
+		 (happy_var_1
+	)}
+
+happyReduce_182 = happyReduce 7# 51# happyReduction_182
+happyReduction_182 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut80 happy_x_6 of { happy_var_6 -> 
+	case happyOut79 happy_x_7 of { happy_var_7 -> 
+	happyIn57
+		 (RApp happy_var_6 happy_var_7 (RApp happy_var_6 happy_var_7 (RVar happy_var_6 happy_var_7 (UN "Exists")) happy_var_2) happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_183 = happyReduce 5# 51# happyReduction_183
+happyReduction_183 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn57
+		 (RApp happy_var_4 happy_var_5 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists")) RPlaceholder) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_184 = happySpecReduce_3  52# happyReduction_184
+happyReduction_184 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn58
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_185 = happySpecReduce_3  52# happyReduction_185
+happyReduction_185 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut58 happy_x_3 of { happy_var_3 -> 
+	happyIn58
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_186 = happyReduce 4# 53# happyReduction_186
+happyReduction_186 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut60 happy_x_3 of { happy_var_3 -> 
+	happyIn59
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_187 = happyReduce 10# 53# happyReduction_187
+happyReduction_187 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	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 happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	case happyOut80 happy_x_6 of { happy_var_6 -> 
+	case happyOut79 happy_x_7 of { happy_var_7 -> 
+	case happyOut60 happy_x_9 of { happy_var_9 -> 
+	happyIn59
+		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_188 = happySpecReduce_2  54# happyReduction_188
+happyReduction_188 happy_x_2
+	happy_x_1
+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
+	case happyOut60 happy_x_2 of { happy_var_2 -> 
+	happyIn60
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_189 = happySpecReduce_1  54# happyReduction_189
+happyReduction_189 happy_x_1
+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
+	happyIn60
+		 ([happy_var_1]
+	)}
+
+happyReduce_190 = happyReduce 7# 55# happyReduction_190
+happyReduction_190 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut80 happy_x_5 of { happy_var_5 -> 
+	case happyOut79 happy_x_6 of { happy_var_6 -> 
+	happyIn61
+		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_191 = happyReduce 8# 55# happyReduction_191
+happyReduction_191 (happy_x_8 `HappyStk`
+	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 happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	case happyOut80 happy_x_6 of { happy_var_6 -> 
+	case happyOut79 happy_x_7 of { happy_var_7 -> 
+	happyIn61
+		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_192 = happyReduce 4# 55# happyReduction_192
+happyReduction_192 (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 happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn61
+		 (DoExp happy_var_2 happy_var_3 happy_var_1
+	) `HappyStk` happyRest}}}
+
+happyReduce_193 = happySpecReduce_1  56# happyReduction_193
+happyReduction_193 happy_x_1
+	 =  happyIn62
+		 (TYPE
+	)
+
+happyReduce_194 = happySpecReduce_1  56# happyReduction_194
+happyReduction_194 happy_x_1
+	 =  happyIn62
+		 (StringType
+	)
+
+happyReduce_195 = happySpecReduce_1  56# happyReduction_195
+happyReduction_195 happy_x_1
+	 =  happyIn62
+		 (IntType
+	)
+
+happyReduce_196 = happySpecReduce_1  56# happyReduction_196
+happyReduction_196 happy_x_1
+	 =  happyIn62
+		 (CharType
+	)
+
+happyReduce_197 = happySpecReduce_1  56# happyReduction_197
+happyReduction_197 happy_x_1
+	 =  happyIn62
+		 (FloatType
+	)
+
+happyReduce_198 = happySpecReduce_1  56# happyReduction_198
+happyReduction_198 happy_x_1
+	 =  happyIn62
+		 (PtrType
+	)
+
+happyReduce_199 = happySpecReduce_1  56# happyReduction_199
+happyReduction_199 happy_x_1
+	 =  happyIn62
+		 (Builtin "Handle"
+	)
+
+happyReduce_200 = happySpecReduce_1  56# happyReduction_200
+happyReduction_200 happy_x_1
+	 =  happyIn62
+		 (Builtin "Lock"
+	)
+
+happyReduce_201 = happySpecReduce_1  56# happyReduction_201
+happyReduction_201 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
+	happyIn62
+		 (Num happy_var_1
+	)}
+
+happyReduce_202 = happySpecReduce_1  56# happyReduction_202
+happyReduction_202 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
+	happyIn62
+		 (Ch happy_var_1
+	)}
+
+happyReduce_203 = happySpecReduce_1  56# happyReduction_203
+happyReduction_203 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
+	happyIn62
+		 (Str happy_var_1
+	)}
+
+happyReduce_204 = happySpecReduce_1  56# happyReduction_204
+happyReduction_204 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
+	happyIn62
+		 (Bo happy_var_1
+	)}
+
+happyReduce_205 = happySpecReduce_1  56# happyReduction_205
+happyReduction_205 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
+	happyIn62
+		 (Fl happy_var_1
+	)}
+
+happyReduce_206 = happySpecReduce_0  57# happyReduction_206
+happyReduction_206  =  happyIn63
+		 ([]
+	)
+
+happyReduce_207 = happySpecReduce_2  57# happyReduction_207
+happyReduction_207 happy_x_2
+	happy_x_1
+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
+	case happyOut63 happy_x_2 of { happy_var_2 -> 
+	happyIn63
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_208 = happyReduce 4# 58# happyReduction_208
+happyReduction_208 (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 happyOut65 happy_x_3 of { happy_var_3 -> 
+	happyIn64
+		 ((happy_var_2, happy_var_3)
+	) `HappyStk` happyRest}}
+
+happyReduce_209 = happySpecReduce_3  58# happyReduction_209
+happyReduction_209 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn64
+		 ((RConst happy_var_2 happy_var_3 TYPE, [])
+	)}}
+
+happyReduce_210 = happyReduce 4# 58# happyReduction_210
+happyReduction_210 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut71 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn64
+		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
+	) `HappyStk` happyRest}}}
+
+happyReduce_211 = happySpecReduce_0  59# happyReduction_211
+happyReduction_211  =  happyIn65
+		 ([]
+	)
+
+happyReduce_212 = happyReduce 4# 59# happyReduction_212
+happyReduction_212 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut70 happy_x_3 of { happy_var_3 -> 
+	happyIn65
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_213 = happyReduce 7# 60# happyReduction_213
+happyReduction_213 (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 happyOut31 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_6 of { happy_var_6 -> 
+	happyIn66
+		 ((happy_var_4,happy_var_6)
+	) `HappyStk` happyRest}}
+
+happyReduce_214 = happyReduce 6# 61# happyReduction_214
+happyReduction_214 (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 happyOut31 happy_x_3 of { happy_var_3 -> 
+	case happyOut31 happy_x_5 of { happy_var_5 -> 
+	happyIn67
+		 ((happy_var_3,happy_var_5)
+	) `HappyStk` happyRest}}
+
+happyReduce_215 = happyReduce 4# 62# happyReduction_215
+happyReduction_215 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut70 happy_x_3 of { happy_var_3 -> 
+	happyIn68
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_216 = happySpecReduce_2  63# happyReduction_216
+happyReduction_216 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn69
+		 (happy_var_2
+	)}
+
+happyReduce_217 = happySpecReduce_3  64# happyReduction_217
+happyReduction_217 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	happyIn70
+		 ([(happy_var_1, happy_var_3)]
+	)}}
+
+happyReduce_218 = happyReduce 5# 64# happyReduction_218
+happyReduction_218 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	case happyOut70 happy_x_5 of { happy_var_5 -> 
+	happyIn70
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_219 = happySpecReduce_1  65# happyReduction_219
+happyReduction_219 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn71
+		 ([happy_var_1]
+	)}
+
+happyReduce_220 = happySpecReduce_2  65# happyReduction_220
+happyReduction_220 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut71 happy_x_2 of { happy_var_2 -> 
+	happyIn71
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_221 = happySpecReduce_1  66# happyReduction_221
+happyReduction_221 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn72
+		 (happy_var_1
+	)}
+
+happyReduce_222 = happySpecReduce_1  66# happyReduction_222
+happyReduction_222 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn72
+		 (happy_var_1
+	)}
+
+happyReduce_223 = happySpecReduce_0  67# happyReduction_223
+happyReduction_223  =  happyIn73
+		 ([]
+	)
+
+happyReduce_224 = happySpecReduce_1  67# happyReduction_224
+happyReduction_224 happy_x_1
+	 =  case happyOut74 happy_x_1 of { happy_var_1 -> 
+	happyIn73
+		 ([happy_var_1]
+	)}
+
+happyReduce_225 = happySpecReduce_3  67# happyReduction_225
+happyReduction_225 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut74 happy_x_1 of { happy_var_1 -> 
+	case happyOut73 happy_x_3 of { happy_var_3 -> 
+	happyIn73
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_226 = happySpecReduce_2  68# happyReduction_226
+happyReduction_226 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut75 happy_x_2 of { happy_var_2 -> 
+	happyIn74
+		 (Full happy_var_1 happy_var_2
+	)}}
+
+happyReduce_227 = happySpecReduce_2  68# happyReduction_227
+happyReduction_227 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut63 happy_x_2 of { happy_var_2 -> 
+	happyIn74
+		 (Simple happy_var_1 happy_var_2
+	)}}
+
+happyReduce_228 = happySpecReduce_2  69# happyReduction_228
+happyReduction_228 happy_x_2
+	happy_x_1
+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
+	happyIn75
+		 (happy_var_2
+	)}
+
+happyReduce_229 = happySpecReduce_2  70# happyReduction_229
+happyReduction_229 happy_x_2
+	happy_x_1
+	 =  case happyOut37 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Intro happy_var_2
+	)}
+
+happyReduce_230 = happySpecReduce_1  70# happyReduction_230
+happyReduction_230 happy_x_1
+	 =  happyIn76
+		 (Intro []
+	)
+
+happyReduce_231 = happySpecReduce_2  70# happyReduction_231
+happyReduction_231 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Refine happy_var_2
+	)}
+
+happyReduce_232 = happySpecReduce_2  70# happyReduction_232
+happyReduction_232 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Exists happy_var_2
+	)}
+
+happyReduce_233 = happySpecReduce_2  70# happyReduction_233
+happyReduction_233 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Generalise happy_var_2
+	)}
+
+happyReduce_234 = happySpecReduce_1  70# happyReduction_234
+happyReduction_234 happy_x_1
+	 =  happyIn76
+		 (ReflP
+	)
+
+happyReduce_235 = happySpecReduce_2  70# happyReduction_235
+happyReduction_235 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Rewrite False False happy_var_2
+	)}
+
+happyReduce_236 = happySpecReduce_3  70# happyReduction_236
+happyReduction_236 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn76
+		 (Rewrite False True happy_var_3
+	)}
+
+happyReduce_237 = happySpecReduce_2  70# happyReduction_237
+happyReduction_237 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Rewrite True False happy_var_2
+	)}
+
+happyReduce_238 = happySpecReduce_3  70# happyReduction_238
+happyReduction_238 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn76
+		 (Rewrite True True happy_var_3
+	)}
+
+happyReduce_239 = happySpecReduce_1  70# happyReduction_239
+happyReduction_239 happy_x_1
+	 =  happyIn76
+		 (Compute
+	)
+
+happyReduce_240 = happySpecReduce_2  70# happyReduction_240
+happyReduction_240 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Unfold happy_var_2
+	)}
+
+happyReduce_241 = happySpecReduce_1  70# happyReduction_241
+happyReduction_241 happy_x_1
+	 =  happyIn76
+		 (Undo
+	)
+
+happyReduce_242 = happySpecReduce_2  70# happyReduction_242
+happyReduction_242 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Induction happy_var_2
+	)}
+
+happyReduce_243 = happySpecReduce_2  70# happyReduction_243
+happyReduction_243 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Fill happy_var_2
+	)}
+
+happyReduce_244 = happySpecReduce_1  70# happyReduction_244
+happyReduction_244 happy_x_1
+	 =  happyIn76
+		 (Trivial
+	)
+
+happyReduce_245 = happySpecReduce_2  70# happyReduction_245
+happyReduction_245 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (RunTactic happy_var_2
+	)}
+
+happyReduce_246 = happySpecReduce_2  70# happyReduction_246
+happyReduction_246 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Believe happy_var_2
+	)}
+
+happyReduce_247 = happySpecReduce_2  70# happyReduction_247
+happyReduction_247 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Use happy_var_2
+	)}
+
+happyReduce_248 = happySpecReduce_2  70# happyReduction_248
+happyReduction_248 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Decide happy_var_2
+	)}
+
+happyReduce_249 = happySpecReduce_1  70# happyReduction_249
+happyReduction_249 happy_x_1
+	 =  happyIn76
+		 (Abandon
+	)
+
+happyReduce_250 = happySpecReduce_1  70# happyReduction_250
+happyReduction_250 happy_x_1
+	 =  happyIn76
+		 (ProofTerm
+	)
+
+happyReduce_251 = happySpecReduce_1  70# happyReduction_251
+happyReduction_251 happy_x_1
+	 =  happyIn76
+		 (Qed
+	)
+
+happyReduce_252 = happyReduce 4# 71# happyReduction_252
+happyReduction_252 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut78 happy_x_3 of { happy_var_3 -> 
+	happyIn77
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_253 = happySpecReduce_2  72# happyReduction_253
+happyReduction_253 happy_x_2
+	happy_x_1
+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
+	happyIn78
+		 ([happy_var_1]
+	)}
+
+happyReduce_254 = happySpecReduce_3  72# happyReduction_254
+happyReduction_254 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
+	case happyOut78 happy_x_3 of { happy_var_3 -> 
+	happyIn78
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_255 = happyMonadReduce 0# 73# happyReduction_255
+happyReduction_255 (happyRest) tk
+	 = happyThen (( getLineNo)
+	) (\r -> happyReturn (happyIn79 r))
+
+happyReduce_256 = happyMonadReduce 0# 74# happyReduction_256
+happyReduction_256 (happyRest) tk
+	 = happyThen (( getFileName)
+	) (\r -> happyReturn (happyIn80 r))
+
+happyReduce_257 = happyMonadReduce 0# 75# happyReduction_257
+happyReduction_257 (happyRest) tk
+	 = happyThen (( getOps)
+	) (\r -> happyReturn (happyIn81 r))
+
+happyNewToken action sts stk
+	= lexer(\tk -> 
+	let cont i = happyDoAction i tk action sts stk in
+	case tk of {
+	TokenEOF -> happyDoAction 120# tk action sts stk;
+	TokenName happy_dollar_dollar -> cont 1#;
+	TokenInfixName happy_dollar_dollar -> cont 2#;
+	TokenBrackName happy_dollar_dollar -> cont 3#;
+	TokenString happy_dollar_dollar -> cont 4#;
+	TokenInt happy_dollar_dollar -> cont 5#;
+	TokenFloat happy_dollar_dollar -> cont 6#;
+	TokenChar happy_dollar_dollar -> cont 7#;
+	TokenBool happy_dollar_dollar -> cont 8#;
+	TokenMetavar happy_dollar_dollar -> cont 9#;
+	TokenColon -> cont 10#;
+	TokenSemi -> cont 11#;
+	TokenBar -> cont 12#;
+	TokenStars -> cont 13#;
+	TokenLambda -> cont 14#;
+	TokenHashOB -> cont 15#;
+	TokenOB -> cont 16#;
+	TokenCB -> cont 17#;
+	TokenOCB -> cont 18#;
+	TokenCCB -> cont 19#;
+	TokenOSB -> cont 20#;
+	TokenCSB -> cont 21#;
+	TokenOId -> cont 22#;
+	TokenCId -> cont 23#;
+	TokenLPair -> cont 24#;
+	TokenRPair -> cont 25#;
+	TokenExists -> cont 26#;
+	TokenTilde -> cont 27#;
+	TokenPlus -> cont 28#;
+	TokenMinus -> cont 29#;
+	TokenTimes -> cont 30#;
+	TokenDivide -> cont 31#;
+	TokenEquals -> cont 32#;
+	TokenMightEqual -> cont 33#;
+	TokenLT -> cont 34#;
+	TokenGT -> cont 35#;
+	TokenEllipsis -> cont 36#;
+	TokenUnderscore -> cont 37#;
+	TokenComma -> cont 38#;
+	TokenTuple -> cont 39#;
+	TokenBang -> cont 40#;
+	TokenConcat -> cont 41#;
+	TokenGE -> cont 42#;
+	TokenLE -> cont 43#;
+	TokenOr -> cont 44#;
+	TokenAnd -> cont 45#;
+	TokenArrow -> cont 46#;
+	TokenFatArrow -> cont 47#;
+	TokenTransArrow -> cont 48#;
+	TokenLeftArrow -> cont 49#;
+	TokenIntType -> cont 50#;
+	TokenCharType -> cont 51#;
+	TokenFloatType -> cont 52#;
+	TokenStringType -> cont 53#;
+	TokenHandleType -> cont 54#;
+	TokenPtrType -> cont 55#;
+	TokenLockType -> cont 56#;
+	TokenType -> cont 57#;
+	TokenLazyBracket -> cont 58#;
+	TokenDataType -> cont 59#;
+	TokenInfix -> cont 60#;
+	TokenInfixL -> cont 61#;
+	TokenInfixR -> cont 62#;
+	TokenUsing -> cont 63#;
+	TokenIdiom -> cont 64#;
+	TokenParams -> cont 65#;
+	TokenNamespace -> cont 66#;
+	TokenPublic -> cont 67#;
+	TokenPrivate -> cont 68#;
+	TokenAbstract -> cont 69#;
+	TokenNoElim -> cont 70#;
+	TokenCollapsible -> cont 71#;
+	TokenWhere -> cont 72#;
+	TokenWith -> cont 73#;
+	TokenPartial -> cont 74#;
+	TokenSyntax -> cont 75#;
+	TokenLazy -> cont 76#;
+	TokenStatic -> cont 77#;
+	TokenRefl -> cont 78#;
+	TokenEmptyType -> cont 79#;
+	TokenUnitType -> cont 80#;
+	TokenInclude -> cont 81#;
+	TokenExport -> cont 82#;
+	TokenInline -> cont 83#;
+	TokenDo -> cont 84#;
+	TokenReturn -> cont 85#;
+	TokenIf -> cont 86#;
+	TokenThen -> cont 87#;
+	TokenElse -> cont 88#;
+	TokenLet -> cont 89#;
+	TokenIn -> cont 90#;
+	TokenProof -> cont 91#;
+	TokenIntro -> cont 92#;
+	TokenRefine -> cont 93#;
+	TokenGeneralise -> cont 94#;
+	TokenReflP -> cont 95#;
+	TokenRewrite -> cont 96#;
+	TokenRewriteAll -> cont 97#;
+	TokenCompute -> cont 98#;
+	TokenUnfold -> cont 99#;
+	TokenUndo -> cont 100#;
+	TokenInduction -> cont 101#;
+	TokenFill -> cont 102#;
+	TokenTrivial -> cont 103#;
+	TokenMkTac -> cont 104#;
+	TokenBelieve -> cont 105#;
+	TokenUse -> cont 106#;
+	TokenDecide -> cont 107#;
+	TokenAbandon -> cont 108#;
+	TokenProofTerm -> cont 109#;
+	TokenQED -> cont 110#;
+	TokenLaTeX -> cont 111#;
+	TokenNoCG -> cont 112#;
+	TokenEval -> cont 113#;
+	TokenSpec -> cont 114#;
+	TokenFreeze -> cont 115#;
+	TokenThaw -> cont 116#;
+	TokenTransform -> cont 117#;
+	TokenCInclude -> cont 118#;
+	TokenCLib -> cont 119#;
+	_ -> happyError' tk
+	})
+
+happyError_ tk = happyError' tk
+
+happyThen :: () => P a -> (a -> P b) -> P b
+happyThen = (thenP)
+happyReturn :: () => a -> P a
+happyReturn = (returnP)
+happyThen1 = happyThen
+happyReturn1 :: () => a -> P a
+happyReturn1 = happyReturn
+happyError' :: () => (Token) -> P a
+happyError' tk = (\token -> happyError) tk
+
+mkparse = happySomeParser where
+  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
+
+mkparseTerm = happySomeParser where
+  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut33 x))
+
+mkparseTactic = happySomeParser where
+  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut76 x))
+
+happySeq = happyDontSeq
+
+
+data ConParse = Full Id RawTerm
+              | Simple Id [RawTerm]
+
+parse :: String -> FilePath -> Result [Decl]
+parse s fn = do ds <- mkparse s fn 1 []
+                collectDecls ds
+
+processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
+                  IO ([Decl], [FilePath])
+processImports opts imped (Success ds) = pi imped [] ds
+  where pi imps decls ((PInclude fp):xs)
+           | fp `elem` imps = pi imps decls xs
+           | otherwise = do
+                 f <- readLibFile defaultLibPath fp
+                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
+                 case parse f fp of
+                   Success t -> pi (fp:imps) decls (t++xs)
+                   Failure e f l ->
+                     fail $ f ++ ":" ++ show l ++ ":" ++ e
+        pi imps decls ((Using t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Using t ds']) xs
+        pi imps decls ((Params t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Params t ds']) xs
+        pi imps decls ((DoUsing b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[DoUsing b r ds']) xs
+        pi imps decls ((Idiom b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Idiom b r ds']) xs
+        pi imps decls ((Namespace n ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Namespace n ds']) xs
+        pi imps decls (x:xs) = pi imps (decls++[x]) xs
+        pi imps decls [] = return (decls, imps)
+
+processImports _ imped (Failure e f l) 
+    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
+
+
+parseTerm :: String -> Result RawTerm
+parseTerm s = mkparseTerm s "(input)" 0 []
+
+parseTactic :: String -> Result ITactic
+parseTactic s = mkparseTactic s "(tactic)" 0 []
+
+mkCon :: RawTerm -> ConParse -> (Id,RawTerm)
+mkCon _ (Full n t) = (n,t)
+mkCon ty (Simple n args) = (n, mkConTy args ty)
+   where mkConTy [] ty = ty
+         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex [] a) (mkConTy as ty)
+
+mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
+   where mkImpApp f [] = f
+         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
+         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
+
+doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
+doBind b [] t = t
+doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
+
+doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
+doLetBind [] t = t
+doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
+
+mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
+mkTyApp file line n ty = mkApp file line (RVar file line n) (getTyArgs ty)
+   where getTyArgs (RBind n _ t) = (RVar file line n):(getTyArgs t)
+         getTyArgs x = []
+
+mkTyParams :: String -> Int -> [Id] -> RawTerm
+mkTyParams f l [] = RConst f l TYPE
+mkTyParams f l (x:xs) = RBind x (Pi Ex [] (RConst f l TYPE)) (mkTyParams f l xs)
 
 mkDatatype :: String -> Int ->
               Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
diff --git a/dist/build/Idris/idris-tmp/Idris/Parser.hs b/dist/build/Idris/idris-tmp/Idris/Parser.hs
--- a/dist/build/Idris/idris-tmp/Idris/Parser.hs
+++ b/dist/build/Idris/idris-tmp/Idris/Parser.hs
@@ -29,3400 +29,3490 @@
 
 -- parser produced by Happy Version 1.18.4
 
-newtype HappyAbsSyn t69 = HappyAbsSyn HappyAny
-#if __GLASGOW_HASKELL__ >= 607
-type HappyAny = Happy_GHC_Exts.Any
-#else
-type HappyAny = forall a . a
-#endif
-happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t69)
-happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn6 #-}
-happyOut6 :: (HappyAbsSyn t69) -> ([ParseDecl])
-happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut6 #-}
-happyIn7 :: (ParseDecl) -> (HappyAbsSyn t69)
-happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn7 #-}
-happyOut7 :: (HappyAbsSyn t69) -> (ParseDecl)
-happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut7 #-}
-happyIn8 :: (Decl) -> (HappyAbsSyn t69)
-happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn8 #-}
-happyOut8 :: (HappyAbsSyn t69) -> (Decl)
-happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut8 #-}
-happyIn9 :: (ParseDecl) -> (HappyAbsSyn t69)
-happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn9 #-}
-happyOut9 :: (HappyAbsSyn t69) -> (ParseDecl)
-happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut9 #-}
-happyIn10 :: (CGFlag) -> (HappyAbsSyn t69)
-happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn10 #-}
-happyOut10 :: (HappyAbsSyn t69) -> (CGFlag)
-happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut10 #-}
-happyIn11 :: (Bool) -> (HappyAbsSyn t69)
-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn11 #-}
-happyOut11 :: (HappyAbsSyn t69) -> (Bool)
-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut11 #-}
-happyIn12 :: ([RawTerm]) -> (HappyAbsSyn t69)
-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn12 #-}
-happyOut12 :: (HappyAbsSyn t69) -> ([RawTerm])
-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut12 #-}
-happyIn13 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn13 #-}
-happyOut13 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut13 #-}
-happyIn14 :: ([ParseDecl]) -> (HappyAbsSyn t69)
-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn14 #-}
-happyOut14 :: (HappyAbsSyn t69) -> ([ParseDecl])
-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut14 #-}
-happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t69)
-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn15 #-}
-happyOut15 :: (HappyAbsSyn t69) -> ([CGFlag])
-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut15 #-}
-happyIn16 :: ([CGFlag]) -> (HappyAbsSyn t69)
-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn16 #-}
-happyOut16 :: (HappyAbsSyn t69) -> ([CGFlag])
-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut16 #-}
-happyIn17 :: ([CGFlag]) -> (HappyAbsSyn t69)
-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn17 #-}
-happyOut17 :: (HappyAbsSyn t69) -> ([CGFlag])
-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut17 #-}
-happyIn18 :: ([Decl]) -> (HappyAbsSyn t69)
-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn18 #-}
-happyOut18 :: (HappyAbsSyn t69) -> ([Decl])
-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut18 #-}
-happyIn19 :: ([String]) -> (HappyAbsSyn t69)
-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn19 #-}
-happyOut19 :: (HappyAbsSyn t69) -> ([String])
-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut19 #-}
-happyIn20 :: (String) -> (HappyAbsSyn t69)
-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn20 #-}
-happyOut20 :: (HappyAbsSyn t69) -> (String)
-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut20 #-}
-happyIn21 :: (Fixity) -> (HappyAbsSyn t69)
-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn21 #-}
-happyOut21 :: (HappyAbsSyn t69) -> (Fixity)
-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut21 #-}
-happyIn22 :: (Decl) -> (HappyAbsSyn t69)
-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn22 #-}
-happyOut22 :: (HappyAbsSyn t69) -> (Decl)
-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut22 #-}
-happyIn23 :: ([(Id,String)]) -> (HappyAbsSyn t69)
-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn23 #-}
-happyOut23 :: (HappyAbsSyn t69) -> ([(Id,String)])
-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut23 #-}
-happyIn24 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t69)
-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn24 #-}
-happyOut24 :: (HappyAbsSyn t69) -> ((Id, [(RawTerm, Maybe Id)]))
-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut24 #-}
-happyIn25 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t69)
-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn25 #-}
-happyOut25 :: (HappyAbsSyn t69) -> ([(RawTerm,Maybe Id)])
-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut25 #-}
-happyIn26 :: (Datatype) -> (HappyAbsSyn t69)
-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn26 #-}
-happyOut26 :: (HappyAbsSyn t69) -> (Datatype)
-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut26 #-}
-happyIn27 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t69)
-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn27 #-}
-happyOut27 :: (HappyAbsSyn t69) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
-happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut27 #-}
-happyIn28 :: ([TyOpt]) -> (HappyAbsSyn t69)
-happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn28 #-}
-happyOut28 :: (HappyAbsSyn t69) -> ([TyOpt])
-happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut28 #-}
-happyIn29 :: ([TyOpt]) -> (HappyAbsSyn t69)
-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn29 #-}
-happyOut29 :: (HappyAbsSyn t69) -> ([TyOpt])
-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut29 #-}
-happyIn30 :: (TyOpt) -> (HappyAbsSyn t69)
-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn30 #-}
-happyOut30 :: (HappyAbsSyn t69) -> (TyOpt)
-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut30 #-}
-happyIn31 :: (Id) -> (HappyAbsSyn t69)
-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn31 #-}
-happyOut31 :: (HappyAbsSyn t69) -> (Id)
-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut31 #-}
-happyIn32 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn32 #-}
-happyOut32 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut32 #-}
-happyIn33 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn33 #-}
-happyOut33 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut33 #-}
-happyIn34 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn34 #-}
-happyOut34 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut34 #-}
-happyIn35 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn35 #-}
-happyOut35 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut35 #-}
-happyIn36 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn36 #-}
-happyOut36 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut36 #-}
-happyIn37 :: ([Id]) -> (HappyAbsSyn t69)
-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn37 #-}
-happyOut37 :: (HappyAbsSyn t69) -> ([Id])
-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut37 #-}
-happyIn38 :: ([(Id, Int)]) -> (HappyAbsSyn t69)
-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn38 #-}
-happyOut38 :: (HappyAbsSyn t69) -> ([(Id, Int)])
-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut38 #-}
-happyIn39 :: ([Id]) -> (HappyAbsSyn t69)
-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn39 #-}
-happyOut39 :: (HappyAbsSyn t69) -> ([Id])
-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut39 #-}
-happyIn40 :: ([Id]) -> (HappyAbsSyn t69)
-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn40 #-}
-happyOut40 :: (HappyAbsSyn t69) -> ([Id])
-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut40 #-}
-happyIn41 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn41 #-}
-happyOut41 :: (HappyAbsSyn t69) -> ([(Id, RawTerm, RawTerm)])
-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut41 #-}
-happyIn42 :: ((Id, RawTerm)) -> (HappyAbsSyn t69)
-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn42 #-}
-happyOut42 :: (HappyAbsSyn t69) -> ((Id, RawTerm))
-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut42 #-}
-happyIn43 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn43 #-}
-happyOut43 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut43 #-}
-happyIn44 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn44 #-}
-happyOut44 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut44 #-}
-happyIn45 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn45 #-}
-happyOut45 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut45 #-}
-happyIn46 :: (String) -> (HappyAbsSyn t69)
-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn46 #-}
-happyOut46 :: (HappyAbsSyn t69) -> (String)
-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut46 #-}
-happyIn47 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn47 #-}
-happyOut47 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut47 #-}
-happyIn48 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn48 #-}
-happyOut48 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut48 #-}
-happyIn49 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn49 #-}
-happyOut49 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut49 #-}
-happyIn50 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn50 #-}
-happyOut50 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut50 #-}
-happyIn51 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn51 #-}
-happyOut51 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut51 #-}
-happyIn52 :: ([RawTerm]) -> (HappyAbsSyn t69)
-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn52 #-}
-happyOut52 :: (HappyAbsSyn t69) -> ([RawTerm])
-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut52 #-}
-happyIn53 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn53 #-}
-happyOut53 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut53 #-}
-happyIn54 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn54 #-}
-happyOut54 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut54 #-}
-happyIn55 :: ([RawTerm]) -> (HappyAbsSyn t69)
-happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn55 #-}
-happyOut55 :: (HappyAbsSyn t69) -> ([RawTerm])
-happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut55 #-}
-happyIn56 :: ([Do]) -> (HappyAbsSyn t69)
-happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn56 #-}
-happyOut56 :: (HappyAbsSyn t69) -> ([Do])
-happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut56 #-}
-happyIn57 :: ([Do]) -> (HappyAbsSyn t69)
-happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn57 #-}
-happyOut57 :: (HappyAbsSyn t69) -> ([Do])
-happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut57 #-}
-happyIn58 :: (Do) -> (HappyAbsSyn t69)
-happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn58 #-}
-happyOut58 :: (HappyAbsSyn t69) -> (Do)
-happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut58 #-}
-happyIn59 :: (Constant) -> (HappyAbsSyn t69)
-happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn59 #-}
-happyOut59 :: (HappyAbsSyn t69) -> (Constant)
-happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut59 #-}
-happyIn60 :: ([RawTerm]) -> (HappyAbsSyn t69)
-happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn60 #-}
-happyOut60 :: (HappyAbsSyn t69) -> ([RawTerm])
-happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut60 #-}
-happyIn61 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t69)
-happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn61 #-}
-happyOut61 :: (HappyAbsSyn t69) -> ((RawTerm, [(Id, RawTerm)]))
-happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut61 #-}
-happyIn62 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn62 #-}
-happyOut62 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut62 #-}
-happyIn63 :: ((Id,Id)) -> (HappyAbsSyn t69)
-happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn63 #-}
-happyOut63 :: (HappyAbsSyn t69) -> ((Id,Id))
-happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut63 #-}
-happyIn64 :: ((Id,Id)) -> (HappyAbsSyn t69)
-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn64 #-}
-happyOut64 :: (HappyAbsSyn t69) -> ((Id,Id))
-happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut64 #-}
-happyIn65 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn65 #-}
-happyOut65 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut65 #-}
-happyIn66 :: (Id) -> (HappyAbsSyn t69)
-happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn66 #-}
-happyOut66 :: (HappyAbsSyn t69) -> (Id)
-happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut66 #-}
-happyIn67 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
-happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn67 #-}
-happyOut67 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
-happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut67 #-}
-happyIn68 :: ([Id]) -> (HappyAbsSyn t69)
-happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn68 #-}
-happyOut68 :: (HappyAbsSyn t69) -> ([Id])
-happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut68 #-}
-happyIn69 :: t69 -> (HappyAbsSyn t69)
-happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn69 #-}
-happyOut69 :: (HappyAbsSyn t69) -> t69
-happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut69 #-}
-happyIn70 :: ([ConParse]) -> (HappyAbsSyn t69)
-happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn70 #-}
-happyOut70 :: (HappyAbsSyn t69) -> ([ConParse])
-happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut70 #-}
-happyIn71 :: (ConParse) -> (HappyAbsSyn t69)
-happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn71 #-}
-happyOut71 :: (HappyAbsSyn t69) -> (ConParse)
-happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut71 #-}
-happyIn72 :: (RawTerm) -> (HappyAbsSyn t69)
-happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn72 #-}
-happyOut72 :: (HappyAbsSyn t69) -> (RawTerm)
-happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut72 #-}
-happyIn73 :: (ITactic) -> (HappyAbsSyn t69)
-happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn73 #-}
-happyOut73 :: (HappyAbsSyn t69) -> (ITactic)
-happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut73 #-}
-happyIn74 :: ([ITactic]) -> (HappyAbsSyn t69)
-happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn74 #-}
-happyOut74 :: (HappyAbsSyn t69) -> ([ITactic])
-happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut74 #-}
-happyIn75 :: ([ITactic]) -> (HappyAbsSyn t69)
-happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn75 #-}
-happyOut75 :: (HappyAbsSyn t69) -> ([ITactic])
-happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut75 #-}
-happyIn76 :: (LineNumber) -> (HappyAbsSyn t69)
-happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn76 #-}
-happyOut76 :: (HappyAbsSyn t69) -> (LineNumber)
-happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut76 #-}
-happyIn77 :: (String) -> (HappyAbsSyn t69)
-happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn77 #-}
-happyOut77 :: (HappyAbsSyn t69) -> (String)
-happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut77 #-}
-happyIn78 :: (Fixities) -> (HappyAbsSyn t69)
-happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn78 #-}
-happyOut78 :: (HappyAbsSyn t69) -> (Fixities)
-happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut78 #-}
-happyInTok :: (Token) -> (HappyAbsSyn t69)
-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn t69) -> (Token)
-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOutTok #-}
-
-
-happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\x1a\x00\x44\x05\x1e\x0e\x00\x00\xf2\x03\x13\x01\x13\x01\x44\x05\x00\x00\x46\x03\xf1\x02\x00\x00\x13\x01\x00\x00\x44\x05\x44\x05\x00\x00\x44\x05\x44\x05\x44\x05\x44\x05\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x01\x23\x09\x47\x02\x44\x05\x44\x05\x17\x08\x44\x05\x00\x00\x13\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x05\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x44\x05\x6a\x00\xeb\x03\x01\x00\x00\x00\x00\x00\x01\x00\x5a\x04\x00\x00\x36\x04\x00\x00\x0d\x02\x4a\x04\x40\x04\x3f\x04\x3d\x04\x35\x04\x5d\x09\xb9\x01\x27\x04\x00\x00\x00\x00\x00\x00\x31\x04\x30\x04\x2a\x04\x6a\x00\x6a\x00\x34\x04\xf6\x03\x1d\x04\x2b\x04\x44\x05\x18\x04\x17\x04\x00\x00\x00\x00\x8b\x03\x0f\x04\x6a\x00\x06\x04\x0e\x04\x6a\x00\x00\x00\x6a\x00\x6a\x00\x6a\x00\x6a\x00\x12\x02\x03\x04\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\x17\x00\x00\x00\x00\x00\x9c\x02\x00\x00\x00\x00\x00\x00\xcf\x00\xcf\x00\xcf\x00\xcf\x00\xcf\x00\x00\x00\xdd\x07\x08\x04\x0e\x01\xe9\x08\x00\x04\xe9\xff\x5d\x09\xb9\x01\x00\x00\x00\x00\x07\x04\xb7\x03\x8c\x02\x00\x00\x05\x04\xef\x04\x00\x00\x00\x00\x0b\x04\x00\x00\x0b\x04\x00\x00\x0c\x0a\xa8\x0a\xca\x01\xfc\x09\x9a\x04\xfb\x03\x9a\x04\x9a\x04\xf9\x03\xf8\x03\x9a\x04\x9a\x04\xb2\x01\x4e\x00\x00\x00\x9a\x04\xaf\x08\x6a\x00\xfd\x03\xce\x03\x00\x00\x17\x08\xe7\x03\x00\x00\x9a\x04\xdc\x03\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x00\x00\x8a\x01\x76\x01\x68\x01\x54\x01\x46\x01\x32\x01\x00\x00\x24\x01\x9a\x04\x10\x01\x9a\x04\xc4\x00\x00\x00\xd5\x03\x00\x00\x6a\x00\x5b\x00\x05\x00\x00\x00\xef\x03\xef\x03\xef\x03\xef\x03\xef\x03\x00\x00\x9a\x04\xef\x03\x17\x08\x00\x00\x00\x00\x00\x00\x9a\x04\xc7\x03\x23\x09\xe2\x03\xda\x03\xc0\x03\xb7\x01\xd4\x03\x86\x00\xcf\x03\x8f\x0a\x23\x09\x00\x00\x23\x09\xd0\x03\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x9a\x04\x00\x00\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x9a\x04\xcd\x03\x00\x00\x00\x00\x9a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\x17\x09\xc4\x03\x45\x04\x6a\x00\x96\x03\x00\x00\xf0\x03\xf0\x03\xa6\x03\xba\x03\x9e\x03\xb3\x03\xf0\x03\xf0\x03\xf0\x03\x67\x03\x1e\x0e\xb4\x03\x97\x00\x03\x00\x97\x03\xdd\x07\xf0\x03\x00\x00\x00\x00\xa9\x03\xa8\x03\xa4\x03\xa2\x03\xa1\x03\x00\x00\x00\x00\xef\x09\x9f\x03\x00\x00\x00\x00\xf0\x03\xf0\x03\xf0\x03\x00\x00\x9a\x03\x86\x03\x00\x00\x00\x00\xe3\x00\x9d\x03\x94\x03\x80\x03\x87\x03\x6a\x00\x7d\x03\x01\x00\x6a\x00\x83\x03\x77\x03\x00\x00\xf0\x03\x82\x0a\x8d\x03\x00\x00\x69\x03\x00\x00\xf0\x03\x00\x00\x00\x00\x6a\x00\x00\x00\xe9\x08\x00\x00\x6a\x00\x6a\x00\x70\x03\xe9\x08\x00\x00\x00\x00\x12\x02\x00\x00\x80\x0a\x6d\x0a\x5a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x0a\x00\x00\x6a\x00\x00\x00\x00\x00\xcd\x01\xcd\x01\x82\x03\x00\x00\x00\x00\x00\x00\x7c\x03\x78\x03\x23\x09\x7f\x03\x76\x03\x00\x00\x46\x0a\xac\x01\x32\x0a\x00\x00\xb9\x01\x00\x00\xf0\x03\xa7\x00\x45\x00\xf0\x03\x7b\x03\x00\x00\x00\x00\x00\x00\x57\x03\x76\x08\x00\x00\x51\x08\x29\x0a\x00\x00\x23\x09\x00\x00\x0e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x03\x00\x00\x6f\x03\x00\x00\x17\x08\x00\x00\x55\x03\x00\x00\x00\x00\x00\x00\x00\x00\x23\x09\x23\x09\x54\x03\xe9\x08\x6a\x00\x53\x03\xe9\x08\x03\x00\x6a\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x08\x51\x08\x51\x08\x51\x08\x51\x08\x51\x08\x00\x00\x00\x00\x00\x00\x00\x00\x23\x09\x00\x00\x88\x00\x23\x09\x1d\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x07\x00\x00\x69\x07\x00\x00\x2f\x07\x00\x00\xf5\x06\x65\x03\x63\x03\x62\x03\x5b\x03\x59\x03\x1c\x00\x00\x00\x00\x00\xf0\x03\xbb\x06\x49\x03\x17\x09\xf0\x03\x0a\x02\x00\x00\x82\x01\x5d\x03\x4c\x03\x00\x00\x1e\x0e\x03\x00\x36\x03\x6a\x00\x00\x00\x4d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x81\x06\x00\x00\x82\x01\x00\x00\x4b\x03\x00\x00\x00\x00\x00\x00\xf6\xff\x00\x00\x47\x06\x52\x03\x4e\x03\x00\x00\x00\x00\x31\x03\x47\x03\x19\x0a\x6a\x00\x2b\x03\x00\x00\x6a\x00\x42\x03\x00\x00\x00\x00\x6a\x00\x00\x00\x6a\x00\x00\x00\x17\x08\x00\x00\x00\x00\xe9\x08\x00\x00\x08\x03\x00\x00\x00\x00\x00\x00\x6a\x00\x82\x01\x3f\x03\x00\x00\x00\x00\x00\x00\x3d\x03\x00\x00\xfe\xff\x32\x03\xe9\x08\x00\x00\x6a\x00\x00\x00\x2f\x03\x6a\x00\x3e\x03\x00\x00\xf0\x03\x00\x00\x17\x09\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\x0d\x03\x0d\x03\x29\x03\x00\x00\x00\x00\x00\x00\x0a\x02\x0d\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x03\x00\x00\x00\x00\x12\x03\x6a\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x76\x08\x9b\x03\x00\x00\xd3\x05\x00\x00\x00\x00\x00\x00\x99\x05\x20\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x67\x09\x43\x0e\xef\x02\x00\x00\x00\x00\x91\x01\x16\x03\x32\x0e\x00\x00\x21\x0e\x10\x0e\x00\x00\x13\x03\x00\x00\xff\x0d\xee\x0d\x00\x00\xdd\x0d\xcc\x0d\xbb\x0d\xaa\x0d\x00\x00\x00\x00\xda\x02\x41\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x01\xaf\x06\xab\x0a\x99\x0d\x88\x0d\x58\x05\x77\x0d\x00\x00\x05\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x0d\x00\x00\xd6\x02\xd5\x02\x00\x00\xd1\x02\x55\x0d\x4d\x01\x00\x00\xf4\x08\x00\x00\x00\x00\x72\x05\x00\x00\x00\x00\x11\x03\x00\x00\xb8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x07\x03\xfe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x02\xf9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x44\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x41\x01\x00\x00\x86\x01\x00\x00\x00\x00\x0f\x01\x00\x00\x60\x00\xf6\x02\x48\x00\xf4\x02\x1f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x03\xc4\x02\x40\x01\x00\x00\xc3\x02\xbe\x0a\x00\x00\xb7\x02\xb6\x02\x1d\x05\xc8\x04\x73\x04\x1e\x04\xc9\x03\x00\x00\x04\x04\x00\x00\x00\x00\xce\x07\x00\x00\xc1\x02\xff\xff\x0b\x02\x00\x00\x00\x00\xd3\x02\x00\x00\x3d\x01\xad\x02\xd2\x02\xf1\x0a\xa8\x02\xa7\x02\x39\x01\xa5\x02\x36\x01\x00\x00\x17\x01\x17\x01\x27\x01\x8d\x00\x33\x0d\x00\x00\x22\x0d\x11\x0d\x00\x00\x00\x00\xbe\x09\xba\x09\x15\x01\x00\x00\x00\x00\x00\x0d\xc7\x05\x11\x02\xbb\x02\x00\x00\xa1\x02\x36\x05\x00\x00\xa0\x02\xef\x0c\x9e\x02\xde\x0c\xcd\x0c\xbc\x0c\xab\x0c\x9a\x0c\x9b\x02\x14\x01\x14\x01\x14\x01\x14\x01\x14\x01\x14\x01\x00\x00\x14\x01\x89\x0c\x14\x01\x78\x0c\x14\x01\x00\x00\x00\x00\x00\x00\x87\x01\x14\x01\x14\x01\x00\x00\x0c\x01\x07\x01\x06\x01\x05\x01\xf8\x00\x9a\x02\x67\x0c\xe5\x00\x03\x05\x98\x02\x96\x02\x00\x00\x56\x0c\x00\x00\x75\x06\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\xde\x00\x3b\x06\x00\x00\x39\x06\x00\x00\x95\x02\xd7\x00\x92\x02\xd2\x00\x91\x02\xd1\x00\x82\x02\xc1\x00\x81\x02\x9f\x09\x00\x00\x9b\x09\x45\x0c\x34\x0c\x40\x03\x80\x09\x00\x00\x00\x00\x80\x02\x23\x0c\x7f\x02\x7d\x02\x7c\x02\x00\x00\x00\x00\xe2\xff\xba\x00\x00\x00\xe0\x0a\x3f\x01\x00\x00\x00\x00\x12\x0c\x01\x0c\x00\x00\x00\x00\x00\x00\xba\x02\xf0\x0b\xdf\x0b\xce\x0b\x00\x00\xa6\x01\xbc\x01\x48\x02\x00\x00\x00\x00\xaf\x03\xbd\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x02\x76\x02\xb8\x00\x00\x00\x75\x02\x6f\x02\xac\x0b\x9b\x0b\x8a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\xca\x02\x9f\x02\x00\x00\x00\x00\x00\x00\x79\x0b\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x0b\x00\x00\x00\x00\x9d\x02\x00\x00\x94\x07\x6a\x02\x08\x00\x30\x00\x00\x00\x5a\x07\x69\x02\x66\x02\xf1\x01\x00\x00\xb8\x00\xb8\x00\xb8\x00\x00\x00\x00\x00\x61\x02\x00\x00\x02\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x60\x02\x53\x01\x5f\x02\x00\x00\xee\x01\xbd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x06\x00\x00\x00\x00\x00\x00\xb8\x00\x0c\x00\xb8\x00\x00\x00\x95\x01\x00\x00\x57\x0b\xb8\x00\xb8\x00\x46\x0b\xd6\x01\x00\x00\x00\x00\x53\x02\x00\x00\xe1\x04\x00\x00\xe1\x04\xb8\x00\x52\x02\x7b\x05\x51\x02\xb8\x00\x00\x00\x4c\x02\x4b\x02\x43\x02\x41\x02\x40\x02\x3b\x02\x32\x02\x00\x00\x31\x02\x00\x00\x30\x02\xae\x04\x2c\x02\x00\x00\x2b\x02\x00\x00\x1e\x02\x00\x00\x01\x03\x57\x02\x00\x00\x20\x07\xd9\x01\x00\x00\xe6\x06\x00\x00\xf3\xff\xb8\x00\x25\x02\x22\x02\x00\x00\x20\x02\xb8\x00\x00\x00\x18\x02\x0e\x02\x04\x02\x01\x02\xf8\x01\x00\x00\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x01\x00\x00\x00\x00\xa0\x01\x00\x00\x00\x00\xed\x01\xf3\x01\xe5\x01\xe0\x01\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\x35\x0b\x8c\x04\x00\x00\xb5\x00\x24\x0b\x99\x00\x00\x00\x21\x02\x00\x00\x00\x00\x00\x00\x9f\x01\x00\x00\x00\x00\x85\x01\x00\x00\x00\x00\x00\x00\xc5\x01\x00\x00\xaf\x01\x5b\x02\xaa\x01\x99\x01\x00\x00\x00\x00\x00\x00\x97\x01\x7c\x01\x71\x01\x4a\x01\x1d\x09\x00\x00\x00\x00\x00\x00\x38\x01\x00\x00\x00\x00\x99\x00\x31\x01\x00\x00\x00\x00\x56\x01\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\xf9\xff\x00\x00\x59\x04\x00\x00\x00\x00\x72\x06\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x01\x77\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x01\x00\x00\x0b\x01\xd9\x00\x00\x00\xe1\x00\x7b\x00\xa6\x00\x13\x0b\x00\x00\x3f\x00\x82\x00\x70\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\x6d\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x50\x00\xef\xff\x37\x04\x4b\x00\x00\x00\x38\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x01\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\x5c\x01\x28\x00\x00\x00\xdf\xff\x37\x04\xcf\x0a\xda\xff\x37\x04\x00\x00\x00\x00\x00\x00\x37\x04\x00\x00\x00\x00\xc8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\x32\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xff\x00\x00\x00\x00\x1c\xff\x00\x00\x00\x00\x17\xff\x00\x00\x15\xff\x00\x00\x00\x00\x12\xff\x00\x00\x00\x00\x00\x00\x00\x00\x0d\xff\x0c\xff\x07\xff\x07\xff\x9e\xff\x83\xff\x51\xff\x52\xff\xa5\xff\x50\xff\x55\xff\x07\xff\xae\xff\x3a\xff\x3c\xff\x38\xff\x3b\xff\x39\xff\x5c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xff\x00\x00\x42\xff\x41\xff\x40\xff\x43\xff\x3e\xff\x3f\xff\x3d\xff\x44\xff\x00\x00\x59\xff\x07\xff\x07\xff\x00\x00\x07\xff\x00\x00\x00\x00\x00\x00\x32\xff\xef\xff\xf8\xff\x32\xff\x00\x00\xf6\xff\xdb\xff\xf7\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xff\xc1\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\xed\xff\x07\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\xc6\xff\xc5\xff\xc4\xff\x00\x00\x07\xff\x07\xff\xd9\xff\x07\xff\x00\x00\xa8\xff\x07\xff\x07\xff\x32\xff\x32\xff\x32\xff\x32\xff\x32\xff\xbd\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x73\xff\x00\x00\x07\xff\x08\xff\x73\xff\x00\x00\x08\xff\x08\xff\x07\xff\x07\xff\x07\xff\x5d\xff\x07\xff\x07\xff\x07\xff\x07\xff\x00\x00\x00\x00\xc7\xff\xc6\xff\x75\xff\x74\xff\x07\xff\x07\xff\x07\xff\x00\x00\x64\xff\x00\x00\x00\x00\x00\x00\x73\xff\x00\x00\x08\xff\x00\x00\x00\x00\x08\xff\x00\x00\x07\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x16\xff\x07\xff\x00\x00\x07\xff\x00\x00\x07\xff\x1e\xff\x97\xff\x20\xff\x00\x00\x07\xff\x07\xff\x60\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x08\xff\x00\x00\x07\xff\x00\x00\x07\xff\x07\xff\x5a\xff\x00\x00\x9c\xff\x00\x00\x00\x00\x00\x00\x99\xff\x07\xff\x00\x00\x00\x00\x00\x00\x07\xff\x00\x00\xa4\xff\x00\x00\x00\x00\x08\xff\x07\xff\x08\xff\x07\xff\x08\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x5e\xff\x07\xff\x75\xff\x74\xff\x07\xff\x07\xff\x00\x00\x54\xff\x07\xff\x00\x00\x08\xff\x08\xff\x08\xff\x58\xff\x57\xff\x07\xff\x07\xff\x00\x00\x48\xff\x00\x00\x00\x00\x5f\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xdb\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\x71\xff\xd2\xff\x6e\xff\x91\xff\xbc\xff\x00\x00\xe9\xff\xbb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xff\x08\xff\x07\xff\x00\x00\x08\xff\x08\xff\x00\x00\x00\x00\x00\x00\xad\xff\x00\x00\xb2\xff\xb0\xff\xaf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x32\xff\x00\x00\x00\x00\x00\x00\xf5\xff\x00\x00\x07\xff\x00\x00\xc0\xff\x00\x00\xf9\xff\x00\x00\x8e\xff\x2e\xff\x00\x00\x31\xff\x00\x00\x07\xff\x2a\xff\x26\xff\x00\x00\x00\x00\x07\xff\x07\xff\x00\x00\xb3\xff\x07\xff\x07\xff\x07\xff\xaa\xff\xa9\xff\x07\xff\xd8\xff\x00\x00\xa7\xff\xa6\xff\xf0\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\x07\xff\x07\xff\x00\x00\x07\xff\xd4\xff\xd2\xff\xd2\xff\x00\x00\xcc\xff\xd0\xff\xcf\xff\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\x07\xff\x07\xff\x07\xff\xdc\xff\x00\x00\xca\xff\x00\x00\x07\xff\x07\xff\x00\x00\x73\xff\x49\xff\x4b\xff\x08\xff\x00\x00\xa1\xff\x5b\xff\x89\xff\x07\xff\x08\xff\x00\x00\x08\xff\x07\xff\x4c\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x00\x00\x08\xff\x00\x00\x08\xff\x00\x00\x07\xff\x6d\xff\x07\xff\x67\xff\x07\xff\x6a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\xff\x00\x00\x07\xff\x08\xff\x08\xff\xa3\xff\x08\xff\x07\xff\x8b\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x96\xff\x84\xff\x87\xff\x85\xff\x86\xff\x88\xff\x81\xff\xa2\xff\x82\xff\x9b\xff\x98\xff\x00\x00\x9a\xff\x72\xff\x00\x00\x62\xff\x61\xff\x07\xff\x08\xff\x08\xff\x08\xff\xac\xff\x00\x00\x79\xff\x00\x00\x78\xff\x00\x00\x53\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xff\x07\xff\x00\x00\x00\x00\x00\x00\x07\xff\x00\x00\x07\xff\xc8\xff\x00\x00\x00\x00\x00\x00\x0b\xff\x0a\xff\x70\xff\x00\x00\x00\x00\xcb\xff\x00\x00\xd1\xff\x08\xff\x90\xff\x08\xff\xbc\xff\x08\xff\x00\x00\xe5\xff\x00\x00\xb1\xff\x08\xff\x08\xff\x32\xff\x07\xff\x37\xff\x00\x00\x25\xff\x29\xff\x08\xff\x2c\xff\x00\x00\x07\xff\x00\x00\xbf\xff\xeb\xff\x00\x00\x00\x00\xee\xff\x2f\xff\x00\x00\xb8\xff\x26\xff\xb7\xff\x37\xff\x22\xff\x23\xff\x00\x00\x08\xff\x00\x00\xb6\xff\xb5\xff\x34\xff\x00\x00\xd5\xff\x00\x00\xd7\xff\xb9\xff\xba\xff\x00\x00\xd3\xff\x94\xff\x00\x00\x00\x00\x09\xff\x00\x00\x07\xff\x00\x00\x00\x00\x07\xff\x08\xff\x00\x00\x45\xff\x07\xff\x08\xff\x07\xff\x7b\xff\x77\xff\x7c\xff\x7f\xff\x7d\xff\x7e\xff\x80\xff\x76\xff\x7a\xff\xab\xff\x66\xff\x65\xff\x08\xff\x6c\xff\x6b\xff\x00\x00\x08\xff\x4f\xff\x08\xff\x07\xff\x00\x00\x08\xff\x8c\xff\x07\xff\x08\xff\x00\x00\x6f\xff\xce\xff\x95\xff\x00\x00\xea\xff\xe3\xff\xd6\xff\x00\x00\x35\xff\x33\xff\x21\xff\x36\xff\x24\xff\x2b\xff\x30\xff\xbe\xff\xe4\xff\x93\xff\x00\x00\x07\xff\xe6\xff\x08\xff\x9d\xff\x00\x00\x08\xff\x00\x00\x63\xff\x69\xff\x47\xff\x00\x00\x00\x00\xe8\xff\x08\xff\x92\xff\xe7\xff\x4a\xff\x46\xff"#
-
-happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x0b\x00\x01\x00\x05\x00\x0a\x00\x02\x00\x07\x00\x02\x00\x03\x00\x20\x00\x21\x00\x29\x00\x19\x00\x0c\x00\x46\x00\x1c\x00\x0b\x00\x10\x00\x19\x00\x24\x00\x13\x00\x09\x00\x0a\x00\x0b\x00\x19\x00\x1a\x00\x03\x00\x01\x00\x20\x00\x21\x00\x02\x00\x02\x00\x46\x00\x19\x00\x1d\x00\x0c\x00\x26\x00\x46\x00\x0c\x00\x22\x00\x23\x00\x47\x00\x10\x00\x31\x00\x27\x00\x11\x00\x19\x00\x30\x00\x24\x00\x2e\x00\x49\x00\x2e\x00\x35\x00\x3f\x00\x47\x00\x20\x00\x21\x00\x40\x00\x41\x00\x07\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x27\x00\x49\x00\x3e\x00\x02\x00\x03\x00\x19\x00\x2e\x00\x2e\x00\x4b\x00\x19\x00\x1a\x00\x46\x00\x02\x00\x50\x00\x3d\x00\x47\x00\x53\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x02\x00\x03\x00\x11\x00\x49\x00\x19\x00\x1d\x00\x24\x00\x30\x00\x4b\x00\x0b\x00\x22\x00\x23\x00\x35\x00\x50\x00\x01\x00\x27\x00\x53\x00\x6d\x00\x47\x00\x40\x00\x41\x00\x71\x00\x2e\x00\x73\x00\x74\x00\x75\x00\x76\x00\x1d\x00\x19\x00\x10\x00\x76\x00\x2e\x00\x22\x00\x23\x00\x47\x00\x02\x00\x03\x00\x27\x00\x02\x00\x03\x00\x3d\x00\x47\x00\x6d\x00\x02\x00\x2e\x00\x02\x00\x71\x00\x0b\x00\x73\x00\x74\x00\x75\x00\x76\x00\x46\x00\x11\x00\x12\x00\x13\x00\x14\x00\x46\x00\x11\x00\x17\x00\x11\x00\x19\x00\x1d\x00\x57\x00\x3d\x00\x1d\x00\x24\x00\x22\x00\x23\x00\x46\x00\x22\x00\x23\x00\x27\x00\x20\x00\x26\x00\x27\x00\x02\x00\x03\x00\x14\x00\x2e\x00\x27\x00\x26\x00\x2e\x00\x2f\x00\x24\x00\x0b\x00\x46\x00\x2e\x00\x28\x00\x2e\x00\x47\x00\x11\x00\x12\x00\x13\x00\x14\x00\x03\x00\x24\x00\x17\x00\x29\x00\x19\x00\x15\x00\x47\x00\x19\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x46\x00\x22\x00\x23\x00\x12\x00\x22\x00\x26\x00\x27\x00\x0b\x00\x01\x00\x76\x00\x51\x00\x52\x00\x47\x00\x2e\x00\x2f\x00\x56\x00\x57\x00\x24\x00\x59\x00\x0c\x00\x24\x00\x47\x00\x24\x00\x10\x00\x47\x00\x1d\x00\x13\x00\x37\x00\x01\x00\x24\x00\x22\x00\x23\x00\x51\x00\x52\x00\x3e\x00\x27\x00\x46\x00\x0a\x00\x0b\x00\x6e\x00\x6f\x00\x70\x00\x2e\x00\x10\x00\x76\x00\x24\x00\x24\x00\x76\x00\x51\x00\x52\x00\x19\x00\x24\x00\x47\x00\x56\x00\x57\x00\x47\x00\x59\x00\x47\x00\x24\x00\x20\x00\x23\x00\x6e\x00\x6f\x00\x70\x00\x47\x00\x24\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x02\x00\x03\x00\x01\x00\x6e\x00\x6f\x00\x70\x00\x47\x00\x47\x00\x4b\x00\x0b\x00\x24\x00\x76\x00\x47\x00\x50\x00\x47\x00\x13\x00\x53\x00\x10\x00\x19\x00\x47\x00\x02\x00\x03\x00\x19\x00\x24\x00\x24\x00\x24\x00\x47\x00\x1d\x00\x20\x00\x0b\x00\x24\x00\x22\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x24\x00\x24\x00\x76\x00\x24\x00\x6d\x00\x0b\x00\x2e\x00\x47\x00\x71\x00\x1d\x00\x73\x00\x74\x00\x75\x00\x46\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x47\x00\x47\x00\x47\x00\x1d\x00\x29\x00\x0b\x00\x2e\x00\x47\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x24\x00\x47\x00\x47\x00\x24\x00\x47\x00\x0b\x00\x2e\x00\x24\x00\x23\x00\x1d\x00\x24\x00\x24\x00\x19\x00\x11\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x47\x00\x19\x00\x23\x00\x1d\x00\x1f\x00\x0b\x00\x2e\x00\x19\x00\x22\x00\x23\x00\x02\x00\x03\x00\x03\x00\x27\x00\x20\x00\x47\x00\x46\x00\x08\x00\x47\x00\x0b\x00\x2e\x00\x01\x00\x47\x00\x1d\x00\x76\x00\x47\x00\x47\x00\x12\x00\x22\x00\x23\x00\x02\x00\x03\x00\x0c\x00\x27\x00\x19\x00\x47\x00\x10\x00\x1d\x00\x19\x00\x0b\x00\x2e\x00\x11\x00\x22\x00\x23\x00\x76\x00\x20\x00\x03\x00\x27\x00\x19\x00\x19\x00\x19\x00\x08\x00\x0d\x00\x0e\x00\x2e\x00\x20\x00\x1f\x00\x1d\x00\x76\x00\x38\x00\x19\x00\x12\x00\x22\x00\x23\x00\x02\x00\x03\x00\x1f\x00\x27\x00\x19\x00\x19\x00\x02\x00\x03\x00\x1c\x00\x0b\x00\x2e\x00\x19\x00\x1a\x00\x02\x00\x76\x00\x0b\x00\x0c\x00\x0d\x00\x14\x00\x0a\x00\x46\x00\x11\x00\x0d\x00\x13\x00\x14\x00\x0a\x00\x0b\x00\x1d\x00\x76\x00\x13\x00\x2c\x00\x2d\x00\x22\x00\x23\x00\x47\x00\x19\x00\x20\x00\x27\x00\x0a\x00\x35\x00\x1d\x00\x0d\x00\x26\x00\x27\x00\x2e\x00\x22\x00\x23\x00\x46\x00\x76\x00\x27\x00\x2e\x00\x2f\x00\x43\x00\x31\x00\x45\x00\x2d\x00\x2a\x00\x2f\x00\x30\x00\x43\x00\x32\x00\x45\x00\x76\x00\x35\x00\x19\x00\x1a\x00\x46\x00\x3f\x00\x19\x00\x19\x00\x1a\x00\x46\x00\x1d\x00\x1e\x00\x0a\x00\x0b\x00\x48\x00\x21\x00\x44\x00\x51\x00\x52\x00\x29\x00\x76\x00\x2c\x00\x2d\x00\x51\x00\x52\x00\x2b\x00\x2c\x00\x2d\x00\x17\x00\x18\x00\x35\x00\x46\x00\x02\x00\x03\x00\x01\x00\x35\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0d\x00\x0e\x00\x6e\x00\x6f\x00\x70\x00\x10\x00\x51\x00\x52\x00\x6e\x00\x6f\x00\x70\x00\x16\x00\x03\x00\x18\x00\x46\x00\x1d\x00\x1b\x00\x08\x00\x19\x00\x46\x00\x22\x00\x23\x00\x1d\x00\x1e\x00\x26\x00\x27\x00\x25\x00\x12\x00\x47\x00\x28\x00\x17\x00\x18\x00\x2e\x00\x46\x00\x19\x00\x6e\x00\x6f\x00\x70\x00\x46\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x46\x00\x01\x00\x02\x00\x46\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x09\x00\x0a\x00\x0b\x00\x46\x00\x0e\x00\x0f\x00\x10\x00\x46\x00\x47\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\x46\x00\x18\x00\x53\x00\x54\x00\x1b\x00\x59\x00\x1d\x00\x47\x00\x46\x00\x5a\x00\x46\x00\x22\x00\x23\x00\x46\x00\x25\x00\x26\x00\x13\x00\x28\x00\x19\x00\x1a\x00\x47\x00\x47\x00\x19\x00\x2e\x00\x46\x00\x46\x00\x46\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x46\x00\x27\x00\x2c\x00\x2d\x00\x2e\x00\x46\x00\x46\x00\x2d\x00\x46\x00\x2f\x00\x30\x00\x35\x00\x32\x00\x02\x00\x03\x00\x35\x00\x46\x00\x46\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x46\x00\x46\x00\x46\x00\x53\x00\x54\x00\x55\x00\x01\x00\x02\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x47\x00\x47\x00\x47\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x47\x00\x22\x00\x23\x00\x47\x00\x47\x00\x16\x00\x27\x00\x18\x00\x46\x00\x19\x00\x1b\x00\x19\x00\x1d\x00\x2e\x00\x46\x00\x46\x00\x46\x00\x22\x00\x23\x00\x06\x00\x25\x00\x46\x00\x46\x00\x28\x00\x46\x00\x05\x00\x47\x00\x47\x00\x47\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x46\x00\x46\x00\x0f\x00\x10\x00\x46\x00\x12\x00\x47\x00\x14\x00\x47\x00\x46\x00\x46\x00\x56\x00\x19\x00\x29\x00\x47\x00\x46\x00\x46\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x47\x00\x46\x00\x46\x00\x53\x00\x54\x00\x55\x00\x01\x00\x46\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x29\x00\x29\x00\x47\x00\x47\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x05\x00\x18\x00\x47\x00\x47\x00\x1b\x00\x19\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x19\x00\x19\x00\x16\x00\x0e\x00\x25\x00\x06\x00\x47\x00\x28\x00\x19\x00\x1a\x00\x47\x00\x47\x00\x19\x00\x11\x00\x47\x00\x47\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x19\x00\x2c\x00\x2d\x00\x19\x00\x22\x00\x23\x00\x43\x00\x13\x00\x26\x00\x27\x00\x35\x00\x15\x00\x26\x00\x15\x00\x11\x00\x2e\x00\x2e\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x03\x00\x13\x00\x11\x00\x53\x00\x54\x00\x55\x00\x01\x00\x0b\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x48\x00\x26\x00\x13\x00\x11\x00\x0e\x00\x0f\x00\x10\x00\x26\x00\x11\x00\x19\x00\x0c\x00\x1b\x00\x16\x00\x0b\x00\x18\x00\x14\x00\x14\x00\x1b\x00\x15\x00\x1d\x00\x2e\x00\x25\x00\x26\x00\x27\x00\x0b\x00\x20\x00\x11\x00\x25\x00\x11\x00\x2d\x00\x28\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x11\x00\x11\x00\x35\x00\x11\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x11\x00\x2e\x00\x2e\x00\x2e\x00\x11\x00\x0a\x00\x04\x00\x47\x00\x31\x00\x13\x00\x0b\x00\x13\x00\x10\x00\x02\x00\x03\x00\x26\x00\x20\x00\x04\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x13\x00\x20\x00\x11\x00\x53\x00\x54\x00\x55\x00\x01\x00\x20\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x11\x00\x26\x00\x0a\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x26\x00\x22\x00\x23\x00\x15\x00\x11\x00\x16\x00\x27\x00\x18\x00\x13\x00\x13\x00\x1b\x00\x13\x00\x1d\x00\x2e\x00\x2f\x00\x13\x00\x13\x00\x26\x00\x0a\x00\x0c\x00\x25\x00\x5a\x00\x13\x00\x28\x00\x26\x00\x0b\x00\x20\x00\x31\x00\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\x13\x00\x0f\x00\x10\x00\x0d\x00\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\x11\x00\x32\x00\x19\x00\x13\x00\x35\x00\x11\x00\x26\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x11\x00\x0a\x00\x26\x00\x53\x00\x54\x00\x55\x00\x01\x00\x03\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x13\x00\x26\x00\x20\x00\x2f\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x0a\x00\x18\x00\x11\x00\x11\x00\x1b\x00\x11\x00\x1d\x00\x03\x00\x0a\x00\x59\x00\x0a\x00\x12\x00\x0b\x00\x11\x00\x25\x00\x10\x00\x13\x00\x28\x00\x0b\x00\x0b\x00\x04\x00\x04\x00\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\x01\x00\x0f\x00\x10\x00\x12\x00\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\x3f\x00\x32\x00\x19\x00\x04\x00\x35\x00\x10\x00\x14\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x10\x00\x10\x00\x0c\x00\x53\x00\x54\x00\x55\x00\x01\x00\x12\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x12\x00\x19\x00\x12\x00\x12\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x12\x00\x18\x00\x27\x00\x05\x00\x1b\x00\x76\x00\x1d\x00\x20\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x76\x00\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\x36\x00\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x19\x00\x1a\x00\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x35\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\x0e\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\x1d\x00\x1e\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\x2e\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\x35\x00\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x02\x00\x03\x00\xff\xff\x53\x00\x54\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x01\x00\x02\x00\x13\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\x4d\x00\x4e\x00\x4f\x00\x27\x00\xff\xff\xff\xff\x53\x00\x54\x00\xff\xff\x1d\x00\x2e\x00\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x25\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\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x0f\x00\x10\x00\x1d\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\x2e\x00\xff\xff\xff\xff\x25\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x42\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x0c\x00\xff\xff\x18\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x25\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\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\x19\x00\x35\x00\x1b\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x25\x00\x26\x00\x27\x00\x47\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x2d\x00\x32\x00\x2f\x00\x30\x00\x35\x00\x32\x00\xff\xff\x19\x00\x35\x00\x1b\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\x47\x00\x25\x00\x26\x00\x27\x00\x47\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x2d\x00\x32\x00\x2f\x00\x30\x00\x35\x00\x32\x00\x02\x00\x03\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\x11\x00\x47\x00\xff\xff\xff\xff\xff\xff\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x11\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\xff\xff\x1d\x00\xff\xff\x02\x00\x03\x00\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\x0b\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\x02\x00\x03\x00\x1d\x00\xff\xff\xff\xff\xff\xff\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x19\x00\xff\xff\x12\x00\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x1d\x00\x27\x00\x0b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x2e\x00\xff\xff\x27\x00\x02\x00\x03\x00\x02\x00\x03\x00\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x13\x00\x12\x00\x27\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x2e\x00\x1d\x00\xff\xff\x1d\x00\x0b\x00\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\x02\x00\x03\x00\x02\x00\x03\x00\x2e\x00\xff\xff\x2e\x00\xff\xff\x1d\x00\x0b\x00\xff\xff\x0b\x00\xff\xff\x22\x00\x23\x00\x02\x00\x03\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x1d\x00\xff\xff\x1d\x00\x11\x00\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\x02\x00\x03\x00\x1d\x00\xff\xff\x2e\x00\xff\xff\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x1d\x00\x1b\x00\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x0e\x00\xff\xff\xff\xff\x27\x00\x25\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\x2e\x00\x19\x00\x2d\x00\x1b\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\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"#
-
-happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\x0c\x02\x22\x00\x42\x02\xdc\x00\xe5\x00\x0d\x01\xb3\x00\xb4\x00\x10\x01\x11\x01\x7d\x01\xac\x00\x51\x00\x61\x02\xb7\x01\x18\xff\x52\x00\xf2\x01\xb0\x00\xfc\xff\xdb\x01\x62\x01\x63\x01\x76\x00\x77\x00\xb4\x00\x22\x00\x28\x01\x29\x01\xe5\x00\xe5\x00\x5c\x02\x47\x01\xb5\x00\xda\xff\x43\x02\x5e\x02\x51\x00\xb6\x00\xb7\x00\xb9\x00\x52\x00\x73\xff\xb8\x00\x25\x02\x2f\x01\x78\x00\xb0\x00\xe7\x00\x12\x01\xb9\x00\x79\x00\x57\x00\x57\x02\xda\xff\xda\xff\x4b\x02\xf4\x01\x75\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x9b\x01\x12\x01\xf5\x01\xb3\x00\xb4\x00\xf2\x01\xe7\x00\xe7\x00\x5b\x00\x76\x00\x77\x00\x53\x02\xe5\x00\x5c\x00\x4c\x02\xb1\x00\x5d\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xb3\x00\xb4\x00\xe6\x00\xda\xff\x2f\x01\xb5\x00\xb0\x00\x78\x00\x5b\x00\x1a\xff\xb6\x00\xb7\x00\x79\x00\x5c\x00\x22\x00\xb8\x00\x5d\x00\x5e\x00\x5f\x02\xf3\x01\xf4\x01\x5f\x00\xb9\x00\x60\x00\x61\x00\x62\x00\xfc\xff\xb5\x00\x2f\x01\x52\x00\x18\xff\xe7\x00\xb6\x00\xb7\x00\x54\x02\xb3\x00\xb4\x00\xb8\x00\xb3\x00\xb4\x00\x30\x01\x37\x02\x5e\x00\xe5\x00\xb9\x00\xe5\x00\x5f\x00\xa0\xff\x60\x00\x61\x00\x62\x00\xfc\xff\x55\x02\xa0\xff\xa0\xff\xa0\xff\xa0\xff\x58\x02\x99\x01\xa0\xff\x6e\xff\xa0\xff\xb5\x00\xd8\x01\x32\x01\xb5\x00\xb0\x00\xb6\x00\xb7\x00\x59\x02\xb6\x00\xb7\x00\xb8\x00\x9a\x01\xa0\xff\xb8\x00\xb3\x00\xb4\x00\x65\x01\xb9\x00\x9b\x01\x6e\xff\xb9\x00\xa0\xff\xb0\x00\x9f\xff\x34\x02\xe7\x00\xf0\x00\xe7\x00\x35\x02\x9f\xff\x9f\xff\x9f\xff\x9f\xff\x93\x00\xb0\x00\x9f\xff\xf8\x00\x9f\xff\x46\x01\x3a\x02\x33\x01\xb5\x00\x47\x01\xb3\x00\xb4\x00\x36\x02\xb6\x00\xb7\x00\x94\x00\x41\x01\x9f\xff\xb8\x00\x1d\xff\x22\x00\x1a\xff\xa0\xff\xa0\xff\xb1\x00\xb9\x00\x9f\xff\xa0\xff\xa0\xff\xb0\x00\xa0\xff\x51\x00\xb0\x00\x25\x01\xb0\x00\x52\x00\xb1\x00\xb5\x00\xfc\xff\x48\x01\x22\x00\xb0\x00\xb6\x00\xb7\x00\x66\x01\x67\x01\x49\x01\xb8\x00\x39\x02\x4b\x01\x4c\x01\xa0\xff\xa0\xff\xa0\xff\xb9\x00\x52\x00\xff\xff\xb0\x00\xb0\x00\xa0\xff\x9f\xff\x9f\xff\x8e\x00\xb0\x00\x1f\x02\x9f\xff\x9f\xff\xb1\x00\x9f\xff\x7c\x01\xb0\x00\x4d\x01\x3b\x02\x68\x01\x69\x01\x6a\x01\x8b\x01\xb0\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xb3\x00\xb4\x00\x22\x00\x9f\xff\x9f\xff\x9f\xff\x8d\x01\x8f\x01\x5b\x00\x1b\xff\xb0\x00\x9f\xff\x91\x01\x5c\x00\x3d\x02\x18\x01\x5d\x00\x52\x00\x3e\x02\xb1\x00\xb3\x00\xb4\x00\x33\x01\xb0\x00\xb0\x00\xb0\x00\xa6\x01\xb5\x00\x19\x01\x19\xff\xb0\x00\x34\x01\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x46\x02\xb8\x00\xb0\x00\xe7\x00\x1d\xff\xb0\x00\x5e\x00\x14\xff\xb9\x00\xa9\x01\x5f\x00\xb5\x00\x60\x00\x61\x00\x62\x00\x48\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xfe\x01\xb8\x00\xaa\x01\xab\x01\xac\x01\xb5\x00\xf8\x00\x13\xff\xb9\x00\xad\x01\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x79\x01\xb8\x00\xb0\x00\xb1\x00\xe8\x00\xb0\x00\xb1\x00\x11\xff\xb9\x00\xb0\x00\x8f\x00\xb5\x00\xe7\x00\xb0\x00\x8e\x00\x4e\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xc7\x00\xb8\x00\xb9\x00\x38\x01\x8f\x00\xb5\x00\xe6\x01\x10\xff\xb9\x00\x16\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x0f\x02\xb8\x00\x60\x02\xfc\x00\x02\x02\x45\x02\xfe\x00\x0f\xff\xb9\x00\x22\x00\xb1\x00\xb5\x00\x1b\xff\xe8\x00\xb1\x00\x48\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x51\x00\xb8\x00\x4a\x00\x09\x02\x52\x00\xb5\x00\x16\x02\x0e\xff\xb9\x00\x37\x01\xb6\x00\xb7\x00\x19\xff\x50\x02\x0f\x02\xb8\x00\x16\x02\x38\x01\xc7\x00\x10\x02\xd9\x01\x0c\x01\xb9\x00\x17\x02\xae\x01\xb5\x00\x14\xff\x0a\x02\xc7\x00\x48\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xc8\x00\xb8\x00\x4a\x00\xac\x00\x68\xff\xb4\x00\xad\x00\xd2\xff\xb9\x00\x76\x00\xa6\x00\x72\x00\x13\xff\x68\xff\x68\xff\x68\xff\x65\x01\x9d\x01\x0c\x02\x68\xff\x73\xff\x68\xff\x68\xff\xe3\x01\x63\x01\xb5\x00\x11\xff\x83\x00\x32\x02\xa8\x00\xb6\x00\xb7\x00\x23\x02\x17\x00\x68\xff\xb8\x00\xdc\x00\x79\x00\x73\x00\x73\xff\x68\xff\x68\xff\xb9\x00\x74\x00\x75\x00\x0d\x02\x10\xff\x1b\x00\x68\xff\x68\xff\x6c\x01\x68\xff\x19\x02\x1c\x00\x6a\x01\x84\x00\x1e\x00\x6c\x01\x1f\x00\x6d\x01\x0f\xff\x20\x00\x76\x00\xa6\x00\x11\x02\x68\xff\xdc\x00\x76\x00\xa6\x00\x13\x02\xba\x01\xde\x00\xe4\x01\x63\x01\x68\xff\x13\x01\x85\x00\x66\x01\x67\x01\xd5\x01\x0e\xff\x33\x02\xa8\x00\x68\xff\x68\xff\x3f\x02\x15\x01\xa8\x00\xed\x01\x2b\x01\x79\x00\x14\x02\xb3\x00\xb4\x00\x22\x00\x79\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x88\x00\x0b\x01\x0c\x01\x68\x01\x69\x01\x6a\x01\x2b\x00\x66\x01\x67\x01\x68\xff\x68\xff\x68\xff\x2c\x00\x0f\x02\x2d\x00\x2e\x02\xb5\x00\x2e\x00\x1c\x02\xdc\x00\x2f\x02\xb6\x00\xb7\x00\xdd\x00\xde\x00\x1e\x02\xb8\x00\x30\x00\x48\x00\x31\x02\x31\x00\x2a\x01\x2b\x01\xb9\x00\x30\x02\x4a\x00\x68\x01\x69\x01\x6a\x01\xaf\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xb0\x01\x22\x00\xa1\x00\xb1\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x61\x01\x62\x01\x63\x01\xb2\x01\x29\x00\x2a\x00\x2b\x00\x2d\x01\x2e\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\xb3\x01\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x8d\xff\xa2\x00\xc0\x01\xb4\x01\x89\x00\xb5\x01\xa3\x00\xa4\x00\xb6\x01\x30\x00\xa5\x00\x12\x02\x31\x00\x76\x00\xa6\x00\xc1\x01\xc2\x01\x17\x00\xa6\x00\xc4\x01\xc6\x01\xc8\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xc9\x01\x1b\x00\xbd\x01\xa8\x00\xbe\x01\xca\x01\xcb\x01\x1c\x00\xcc\x01\x84\x00\x1e\x00\x79\x00\x1f\x00\xb3\x00\xb4\x00\x20\x00\xcd\x01\xce\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xcf\x01\xd1\x01\xd4\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x72\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xe5\x01\xe7\x01\xe9\x01\xb5\x00\x29\x00\x2a\x00\x2b\x00\xee\x01\xb6\x00\xb7\x00\xef\x01\xf6\x01\x2c\x00\xb8\x00\x2d\x00\x52\x01\xf8\x01\x2e\x00\x3e\x01\xa2\x00\xb9\x00\x53\x01\x57\x01\x58\x01\x74\x00\x75\x00\x72\x01\x30\x00\x7e\x01\x7f\x01\x31\x00\x80\x01\x0e\x01\x82\x01\x8a\x01\x8c\x01\x3f\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x8e\x01\x90\x01\x46\x00\x47\x00\x92\x01\x48\x00\xa3\x01\x49\x00\xa4\x01\xa8\x01\xcc\x00\x09\x01\x4a\x00\xda\x00\xd2\x00\xd5\x00\xd8\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xfd\x00\xff\x00\x00\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x07\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x06\x01\x0a\x01\x20\x01\x21\x01\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x26\x01\x2d\x00\x24\x01\x25\x01\x2e\x00\x2e\x01\x2f\x00\x31\x01\xb3\x00\xb4\x00\x69\x00\x6a\x00\x6e\x00\x70\x00\x30\x00\x89\x00\x91\x00\x31\x00\x76\x00\xa6\x00\x94\x00\x95\x00\x97\x00\x4d\xff\xae\x00\xb9\x00\xc3\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xb5\x00\xc0\x00\xbf\x01\xa8\x00\xc6\x00\xb6\x00\xb7\x00\x04\x00\x63\x02\x57\x01\xb8\x00\x79\x00\x50\x02\x52\x02\x53\x02\x5b\x02\xe7\x00\xb9\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x3d\x02\x41\x02\x3e\x00\x3f\x00\x40\x00\x22\x00\x44\x02\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x48\x02\xfe\x01\x45\x02\x4e\x02\x29\x00\x2a\x00\x2b\x00\x02\x02\x01\x02\x17\x00\x04\x02\x85\x01\x2c\x00\x05\x02\x2d\x00\x0f\x02\x1b\x02\x2e\x00\x16\x02\x2f\x00\x19\x02\x19\x00\x1a\x00\x1b\x00\x1c\x02\x21\x02\x26\x02\x30\x00\x27\x02\x1c\x00\x31\x00\x1d\x00\x1e\x00\x86\x01\x1f\x00\x28\x02\x29\x02\x20\x00\x2a\x02\xc5\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xc6\x01\xba\x01\xbd\x01\xe7\x00\xc8\x01\xdc\x00\xe3\x01\x87\x01\xd4\x01\xde\x01\xdf\x01\xe1\x01\xe2\x01\xb3\x00\xb4\x00\xfb\x01\xf2\x01\xfc\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x01\x3d\x01\x43\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x41\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x45\x01\x44\x01\x46\x01\xb5\x00\x29\x00\x2a\x00\x2b\x00\x4e\x01\xb6\x00\xb7\x00\x4f\x01\x55\x01\x2c\x00\xb8\x00\x2d\x00\x5a\x01\x5b\x01\x2e\x00\x5c\x01\x2f\x00\xb9\x00\x3b\x01\x5d\x01\x5e\x01\x61\x01\x6c\x01\x8b\x00\x30\x00\x6f\x01\x5f\x01\x31\x00\x74\x01\x75\x01\x76\x01\x79\x01\x17\x00\x1b\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x7c\x01\x46\x00\x47\x00\x84\x01\x48\x00\x1c\x00\x49\x00\x84\x00\x1e\x00\x98\x01\x1f\x00\x4a\x00\x94\x01\x20\x00\x9c\x01\x9e\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x9f\x01\xa0\x01\xa2\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xd7\x00\xca\x00\xd4\x00\xda\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\xdc\x00\x2d\x00\xc4\xff\xc5\xff\x2e\x00\xef\x00\x2f\x00\x00\x00\xdc\x00\x0a\x01\xdc\x00\x13\x01\x1a\x01\x2a\x01\x30\x00\x37\x01\x1a\x01\x31\x00\x36\x01\x3a\x01\x63\x00\x64\x00\x17\x00\x1c\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x66\x00\x46\x00\x47\x00\x67\x00\x48\x00\x1c\x00\x49\x00\x84\x00\x1e\x00\x68\x00\x1f\x00\x4a\x00\x69\x00\x20\x00\x6c\x00\x70\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x6d\x00\x6e\x00\x8b\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x7f\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x80\x00\x17\x00\x81\x00\x82\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x83\x00\x2d\x00\x1b\x00\x8c\x00\x2e\x00\xff\xff\x2f\x00\xb0\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\xff\xff\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1d\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\x05\x02\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x4a\x02\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1e\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\xc3\x01\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1f\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xd7\x00\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x8c\x00\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\x99\x00\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x76\x00\xa6\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x64\x02\x00\x00\x00\x00\xd0\x01\xa8\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x79\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x70\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x5c\x02\x00\x00\xdf\x00\xa6\x00\x00\x00\x2b\x00\xe0\x00\xde\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00\xa8\x00\xe2\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x57\x02\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x09\x02\x76\x00\xa6\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x94\x01\xa8\x00\x95\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x79\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x49\x02\x15\x01\xa8\x00\x00\x00\xa0\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x22\x02\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2b\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xb8\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xb8\x01\xbb\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2d\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xf0\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2e\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xf7\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x14\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\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\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\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\x3b\x00\x3c\x00\x3d\x00\xb3\x00\xb4\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x72\x00\x8a\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\x00\x00\xaa\x00\xab\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\xb9\x00\x00\x00\x00\x00\x00\x00\x74\x00\x75\x00\x00\x00\x7c\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\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x00\x00\x17\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x8d\x00\x42\x00\x43\x00\x44\x00\xaa\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x00\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x00\xb4\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x00\x00\xaa\x00\xab\x00\xb5\x00\x00\x00\x17\x00\x7d\x00\x7e\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\xb9\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x1c\x00\x00\x00\x05\x02\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x06\x02\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x07\x02\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x41\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x45\x00\x00\x00\x2d\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x7c\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\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcd\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x17\x00\x20\x00\xd1\x00\x00\x00\x17\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x84\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1c\x00\x1f\x00\x1d\x00\x1e\x00\x20\x00\x1f\x00\x00\x00\x17\x00\x20\x00\xe9\x00\x00\x00\x17\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x88\x01\x19\x00\x1a\x00\x1b\x00\x89\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1c\x00\x1f\x00\x1d\x00\x1e\x00\x20\x00\x1f\x00\xb3\x00\xb4\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x00\xb4\x00\x56\x01\xea\x00\x00\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xf3\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x57\x01\xb8\x00\x00\x00\x00\x00\xf4\x00\x00\x00\xb3\x00\xb4\x00\xb9\x00\xf5\x00\xf6\x00\x00\x00\x00\x00\xf7\x00\xb8\x00\x00\x02\xfb\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xf8\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\xfc\x00\xb8\x00\xb3\x00\xb4\x00\xb5\x00\x00\x00\x00\x00\x00\x00\xb9\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\xd3\x01\x00\x00\xdb\x01\x00\x00\xb5\x00\xb9\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\xb5\x00\xb8\x00\xdd\x01\x00\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\xb9\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb3\x00\xb4\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x00\x00\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\xe9\x01\xeb\x01\xb8\x00\x00\x00\xb3\x00\xb4\x00\x00\x00\x00\x00\x00\x00\xb9\x00\xb5\x00\x00\x00\xb5\x00\xec\x01\x00\x00\xb6\x00\xb7\x00\xb6\x00\xb7\x00\x00\x00\xb8\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb3\x00\xb4\x00\xb9\x00\x00\x00\xb9\x00\x00\x00\xb5\x00\xed\x01\x00\x00\xfd\x01\x00\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\xb5\x00\x00\x00\xb5\x00\x97\x01\x00\x00\xb6\x00\xb7\x00\xb6\x00\xb7\x00\x00\x00\xb8\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb5\x00\x00\x00\xb9\x00\x00\x00\xb9\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x00\xb5\x00\x9d\x00\x00\x00\x00\x00\x00\x00\xb6\x00\xb7\x00\x70\x00\x00\x00\x00\x00\xb8\x00\x19\x00\x1a\x00\x1b\x00\x9e\x00\x00\x00\x00\x00\xb9\x00\x17\x00\x1c\x00\x22\x01\x1d\x00\x1e\x00\x9f\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x23\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x5d\x02\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x7a\x01\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x85\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x03\x01\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x38\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x86\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x1e\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x22\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd6\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd8\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xf9\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x3b\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x50\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x51\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x5e\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x6f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x70\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x71\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x76\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x77\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x81\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xa2\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xa7\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xca\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xce\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd1\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd4\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xe3\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x98\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xed\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xef\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x64\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x90\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x96\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x98\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9a\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9b\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xba\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbc\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbe\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc1\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc3\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc5\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x18\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\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 = Happy_Data_Array.array (3, 249) [
-	(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)
-	]
-
-happy_n_terms = 119 :: Int
-happy_n_nonterms = 73 :: Int
-
-happyReduce_3 = happySpecReduce_0  0# happyReduction_3
-happyReduction_3  =  happyIn6
-		 ([]
-	)
-
-happyReduce_4 = happySpecReduce_2  0# happyReduction_4
-happyReduction_4 happy_x_2
-	happy_x_1
-	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_5 = happySpecReduce_2  0# happyReduction_5
-happyReduction_5 happy_x_2
-	happy_x_1
-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (map RealDecl happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_6 = happyReduce 4# 0# happyReduction_6
-happyReduction_6 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	case happyOut6 happy_x_4 of { happy_var_4 -> 
-	happyIn6
-		 (RealDecl (PInclude happy_var_2) : happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_7 = happySpecReduce_1  1# happyReduction_7
-happyReduction_7 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (happy_var_1
-	)}
-
-happyReduce_8 = happySpecReduce_1  1# happyReduction_8
-happyReduction_8 happy_x_1
-	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl (DataDecl happy_var_1)
-	)}
-
-happyReduce_9 = happySpecReduce_1  1# happyReduction_9
-happyReduction_9 happy_x_1
-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_10 = happySpecReduce_3  1# happyReduction_10
-happyReduction_10 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
-	happyIn7
-		 (RealDecl (Freeze happy_var_2)
-	)}
-
-happyReduce_11 = happyReduce 4# 1# happyReduction_11
-happyReduction_11 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut62 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_12 = happyReduce 4# 1# happyReduction_12
-happyReduction_12 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut63 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PDoUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_13 = happyReduce 4# 1# happyReduction_13
-happyReduction_13 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut64 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PIdiom happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_14 = happyReduce 4# 1# happyReduction_14
-happyReduction_14 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut65 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PParams happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_15 = happyReduce 4# 1# happyReduction_15
-happyReduction_15 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut66 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PNamespace happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_16 = happySpecReduce_1  1# happyReduction_16
-happyReduction_16 happy_x_1
-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_17 = happyReduce 6# 1# happyReduction_17
-happyReduction_17 (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 happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut40 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	happyIn7
-		 (PSyntax happy_var_2 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_18 = happySpecReduce_2  1# happyReduction_18
-happyReduction_18 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CInclude happy_var_2)
-	)}
-
-happyReduce_19 = happySpecReduce_2  1# happyReduction_19
-happyReduction_19 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CLib happy_var_2)
-	)}
-
-happyReduce_20 = happyReduce 5# 2# happyReduction_20
-happyReduction_20 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn8
-		 (Transform happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_21 = happyReduce 7# 3# happyReduction_21
-happyReduction_21 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	case happyOut15 happy_x_4 of { happy_var_4 -> 
-	case happyOut77 happy_x_5 of { happy_var_5 -> 
-	case happyOut76 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (FunType happy_var_1 happy_var_3 (nub happy_var_4) happy_var_5 happy_var_6
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_22 = happySpecReduce_3  3# happyReduction_22
-happyReduction_22 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	happyIn9
-		 (ProofScript happy_var_1 happy_var_2
-	)}}
-
-happyReduce_23 = happyReduce 9# 3# happyReduction_23
-happyReduction_23 (happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	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 happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut14 happy_x_6 of { happy_var_6 -> 
-	case happyOut77 happy_x_8 of { happy_var_8 -> 
-	case happyOut76 happy_x_9 of { happy_var_9 -> 
-	happyIn9
-		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}}}}
-
-happyReduce_24 = happyReduce 10# 3# happyReduction_24
-happyReduction_24 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	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 happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_7 of { happy_var_7 -> 
-	case happyOut77 happy_x_9 of { happy_var_9 -> 
-	case happyOut76 happy_x_10 of { happy_var_10 -> 
-	happyIn9
-		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_25 = happyReduce 8# 3# happyReduction_25
-happyReduction_25 (happy_x_8 `HappyStk`
-	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 happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut15 happy_x_5 of { happy_var_5 -> 
-	case happyOut77 happy_x_7 of { happy_var_7 -> 
-	case happyOut76 happy_x_8 of { happy_var_8 -> 
-	happyIn9
-		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_5)
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_26 = happyReduce 5# 3# happyReduction_26
-happyReduction_26 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn9
-		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
-	) `HappyStk` happyRest}}
-
-happyReduce_27 = happyReduce 8# 3# happyReduction_27
-happyReduction_27 (happy_x_8 `HappyStk`
-	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 happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_7 of { happy_var_7 -> 
-	happyIn9
-		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}
-
-happyReduce_28 = happyReduce 7# 3# happyReduction_28
-happyReduction_28 (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 happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut14 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_29 = happySpecReduce_1  4# happyReduction_29
-happyReduction_29 happy_x_1
-	 =  happyIn10
-		 (Vis Public
-	)
-
-happyReduce_30 = happySpecReduce_1  4# happyReduction_30
-happyReduction_30 happy_x_1
-	 =  happyIn10
-		 (Vis Private
-	)
-
-happyReduce_31 = happySpecReduce_1  4# happyReduction_31
-happyReduction_31 happy_x_1
-	 =  happyIn10
-		 (Vis Abstract
-	)
-
-happyReduce_32 = happySpecReduce_0  4# happyReduction_32
-happyReduction_32  =  happyIn10
-		 (Vis Public
-	)
-
-happyReduce_33 = happySpecReduce_1  5# happyReduction_33
-happyReduction_33 happy_x_1
-	 =  happyIn11
-		 (False
-	)
-
-happyReduce_34 = happySpecReduce_2  5# happyReduction_34
-happyReduction_34 happy_x_2
-	happy_x_1
-	 =  happyIn11
-		 (True
-	)
-
-happyReduce_35 = happySpecReduce_3  6# happyReduction_35
-happyReduction_35 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut12 happy_x_3 of { happy_var_3 -> 
-	happyIn12
-		 (happy_var_2:happy_var_3
-	)}}
-
-happyReduce_36 = happySpecReduce_0  6# happyReduction_36
-happyReduction_36  =  happyIn12
-		 ([]
-	)
-
-happyReduce_37 = happySpecReduce_1  7# happyReduction_37
-happyReduction_37 happy_x_1
-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
-	happyIn13
-		 (happy_var_1
-	)}
-
-happyReduce_38 = happySpecReduce_1  7# happyReduction_38
-happyReduction_38 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn13
-		 (happy_var_1
-	)}
-
-happyReduce_39 = happySpecReduce_3  7# happyReduction_39
-happyReduction_39 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn13
-		 (happy_var_2
-	)}
-
-happyReduce_40 = happyReduce 5# 7# happyReduction_40
-happyReduction_40 (happy_x_5 `HappyStk`
-	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 happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn13
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_41 = happySpecReduce_2  8# happyReduction_41
-happyReduction_41 happy_x_2
-	happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	case happyOut14 happy_x_2 of { happy_var_2 -> 
-	happyIn14
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_42 = happySpecReduce_1  8# happyReduction_42
-happyReduction_42 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn14
-		 ([happy_var_1]
-	)}
-
-happyReduce_43 = happySpecReduce_1  9# happyReduction_43
-happyReduction_43 happy_x_1
-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
-	happyIn15
-		 (happy_var_1
-	)}
-
-happyReduce_44 = happySpecReduce_3  9# happyReduction_44
-happyReduction_44 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut16 happy_x_2 of { happy_var_2 -> 
-	happyIn15
-		 (happy_var_2
-	)}
-
-happyReduce_45 = happySpecReduce_0  10# happyReduction_45
-happyReduction_45  =  happyIn16
-		 ([]
-	)
-
-happyReduce_46 = happySpecReduce_2  10# happyReduction_46
-happyReduction_46 happy_x_2
-	happy_x_1
-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
-	case happyOut16 happy_x_2 of { happy_var_2 -> 
-	happyIn16
-		 (happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_47 = happySpecReduce_1  11# happyReduction_47
-happyReduction_47 happy_x_1
-	 =  happyIn17
-		 ([NoCG]
-	)
-
-happyReduce_48 = happySpecReduce_1  11# happyReduction_48
-happyReduction_48 happy_x_1
-	 =  happyIn17
-		 ([CGEval, Inline]
-	)
-
-happyReduce_49 = happyReduce 4# 11# happyReduction_49
-happyReduction_49 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut38 happy_x_3 of { happy_var_3 -> 
-	happyIn17
-		 ([CGSpec happy_var_3]
-	) `HappyStk` happyRest}
-
-happyReduce_50 = happySpecReduce_1  11# happyReduction_50
-happyReduction_50 happy_x_1
-	 =  happyIn17
-		 ([CGSpec []]
-	)
-
-happyReduce_51 = happySpecReduce_1  11# happyReduction_51
-happyReduction_51 happy_x_1
-	 =  happyIn17
-		 ([Inline]
-	)
-
-happyReduce_52 = happySpecReduce_2  11# happyReduction_52
-happyReduction_52 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn17
-		 ([CExport happy_var_2]
-	)}
-
-happyReduce_53 = happyReduce 4# 12# happyReduction_53
-happyReduction_53 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut21 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	happyIn18
-		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
-	) `HappyStk` happyRest}}}
-
-happyReduce_54 = happySpecReduce_1  13# happyReduction_54
-happyReduction_54 happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	happyIn19
-		 ([happy_var_1]
-	)}
-
-happyReduce_55 = happySpecReduce_3  13# happyReduction_55
-happyReduction_55 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	happyIn19
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_56 = happySpecReduce_1  14# happyReduction_56
-happyReduction_56 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
-	happyIn20
-		 (happy_var_1
-	)}
-
-happyReduce_57 = happySpecReduce_1  14# happyReduction_57
-happyReduction_57 happy_x_1
-	 =  happyIn20
-		 ("-"
-	)
-
-happyReduce_58 = happySpecReduce_1  14# happyReduction_58
-happyReduction_58 happy_x_1
-	 =  happyIn20
-		 ("<"
-	)
-
-happyReduce_59 = happySpecReduce_1  14# happyReduction_59
-happyReduction_59 happy_x_1
-	 =  happyIn20
-		 (">"
-	)
-
-happyReduce_60 = happySpecReduce_1  15# happyReduction_60
-happyReduction_60 happy_x_1
-	 =  happyIn21
-		 (LeftAssoc
-	)
-
-happyReduce_61 = happySpecReduce_1  15# happyReduction_61
-happyReduction_61 happy_x_1
-	 =  happyIn21
-		 (RightAssoc
-	)
-
-happyReduce_62 = happySpecReduce_1  15# happyReduction_62
-happyReduction_62 happy_x_1
-	 =  happyIn21
-		 (NonAssoc
-	)
-
-happyReduce_63 = happyReduce 4# 16# happyReduction_63
-happyReduction_63 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut23 happy_x_3 of { happy_var_3 -> 
-	happyIn22
-		 (LatexDefs happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_64 = happySpecReduce_3  17# happyReduction_64
-happyReduction_64 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	happyIn23
-		 ([(happy_var_1,happy_var_3)]
-	)}}
-
-happyReduce_65 = happyReduce 5# 17# happyReduction_65
-happyReduction_65 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	case happyOut23 happy_x_5 of { happy_var_5 -> 
-	happyIn23
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_66 = happySpecReduce_2  18# happyReduction_66
-happyReduction_66 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	happyIn24
-		 ((happy_var_1, happy_var_2)
-	)}}
-
-happyReduce_67 = happySpecReduce_0  19# happyReduction_67
-happyReduction_67  =  happyIn25
-		 ([]
-	)
-
-happyReduce_68 = happySpecReduce_2  19# happyReduction_68
-happyReduction_68 happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	happyIn25
-		 ((happy_var_1,Nothing):happy_var_2
-	)}}
-
-happyReduce_69 = happyReduce 5# 19# happyReduction_69
-happyReduction_69 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn25
-		 ((RVar happy_var_4 happy_var_5 happy_var_1, Just happy_var_1):happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_70 = happyReduce 5# 19# happyReduction_70
-happyReduction_70 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut25 happy_x_5 of { happy_var_5 -> 
-	happyIn25
-		 ((happy_var_3, Just happy_var_1):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_71 = happyReduce 6# 20# happyReduction_71
-happyReduction_71 (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 happyOut28 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut27 happy_x_4 of { happy_var_4 -> 
-	case happyOut77 happy_x_5 of { happy_var_5 -> 
-	case happyOut76 happy_x_6 of { happy_var_6 -> 
-	happyIn26
-		 (mkDatatype happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_72 = happySpecReduce_3  21# happyReduction_72
-happyReduction_72 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
-	case happyOut70 happy_x_2 of { happy_var_2 -> 
-	happyIn27
-		 (Right (happy_var_1,happy_var_2)
-	)}}
-
-happyReduce_73 = happySpecReduce_3  21# happyReduction_73
-happyReduction_73 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
-	happyIn27
-		 (Left happy_var_2
-	)}
-
-happyReduce_74 = happySpecReduce_3  21# happyReduction_74
-happyReduction_74 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn27
-		 (Left (RConst happy_var_2 happy_var_3 TYPE)
-	)}}
-
-happyReduce_75 = happySpecReduce_0  22# happyReduction_75
-happyReduction_75  =  happyIn28
-		 ([]
-	)
-
-happyReduce_76 = happySpecReduce_3  22# happyReduction_76
-happyReduction_76 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
-	happyIn28
-		 (happy_var_2
-	)}
-
-happyReduce_77 = happySpecReduce_1  23# happyReduction_77
-happyReduction_77 happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	happyIn29
-		 ([happy_var_1]
-	)}
-
-happyReduce_78 = happySpecReduce_3  23# happyReduction_78
-happyReduction_78 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	case happyOut29 happy_x_3 of { happy_var_3 -> 
-	happyIn29
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_79 = happySpecReduce_1  24# happyReduction_79
-happyReduction_79 happy_x_1
-	 =  happyIn30
-		 (NoElim
-	)
-
-happyReduce_80 = happySpecReduce_1  24# happyReduction_80
-happyReduction_80 happy_x_1
-	 =  happyIn30
-		 (Collapsible
-	)
-
-happyReduce_81 = happySpecReduce_1  25# happyReduction_81
-happyReduction_81 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
-	happyIn31
-		 (happy_var_1
-	)}
-
-happyReduce_82 = happySpecReduce_3  25# happyReduction_82
-happyReduction_82 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut20 happy_x_2 of { happy_var_2 -> 
-	happyIn31
-		 (useropFn happy_var_2
-	)}
-
-happyReduce_83 = happyReduce 4# 26# happyReduction_83
-happyReduction_83 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	case happyOut53 happy_x_4 of { happy_var_4 -> 
-	happyIn32
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_84 = happyReduce 5# 26# happyReduction_84
-happyReduction_84 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
-	case happyOut42 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn32
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_85 = happySpecReduce_3  26# happyReduction_85
-happyReduction_85 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_86 = happySpecReduce_3  26# happyReduction_86
-happyReduction_86 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_87 = happySpecReduce_1  26# happyReduction_87
-happyReduction_87 happy_x_1
-	 =  happyIn32
-		 (RPlaceholder
-	)
-
-happyReduce_88 = happySpecReduce_3  26# happyReduction_88
-happyReduction_88 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_89 = happySpecReduce_3  26# happyReduction_89
-happyReduction_89 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_90 = happySpecReduce_1  27# happyReduction_90
-happyReduction_90 happy_x_1
-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_91 = happySpecReduce_3  27# happyReduction_91
-happyReduction_91 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn33
-		 (happy_var_2
-	)}
-
-happyReduce_92 = happyReduce 4# 27# happyReduction_92
-happyReduction_92 (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 happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	case happyOut53 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_93 = happyReduce 5# 27# happyReduction_93
-happyReduction_93 (happy_x_5 `HappyStk`
-	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 happyOut42 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn33
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_94 = happyReduce 4# 27# happyReduction_94
-happyReduction_94 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy")) RPlaceholder) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_95 = happyReduce 4# 27# happyReduction_95
-happyReduction_95 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (doBind Lam happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_96 = happyReduce 4# 27# happyReduction_96
-happyReduction_96 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut41 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (doLetBind happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_97 = happySpecReduce_1  27# happyReduction_97
-happyReduction_97 happy_x_1
-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_98 = happyReduce 8# 27# happyReduction_98
-happyReduction_98 (happy_x_8 `HappyStk`
-	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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut33 happy_x_6 of { happy_var_6 -> 
-	case happyOut77 happy_x_7 of { happy_var_7 -> 
-	case happyOut76 happy_x_8 of { happy_var_8 -> 
-	happyIn33
-		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else")) [happy_var_2,happy_var_4,happy_var_6]
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_99 = happySpecReduce_2  28# happyReduction_99
-happyReduction_99 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	happyIn34
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_100 = happyReduce 4# 28# happyReduction_100
-happyReduction_100 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut34 happy_x_4 of { happy_var_4 -> 
-	happyIn34
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_101 = happySpecReduce_3  29# happyReduction_101
-happyReduction_101 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
-	case happyOut35 happy_x_3 of { happy_var_3 -> 
-	happyIn35
-		 (happy_var_1 ++ happy_var_3
-	)}}
-
-happyReduce_102 = happySpecReduce_1  29# happyReduction_102
-happyReduction_102 happy_x_1
-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
-	happyIn35
-		 (happy_var_1
-	)}
-
-happyReduce_103 = happySpecReduce_3  30# happyReduction_103
-happyReduction_103 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	happyIn36
-		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
-	)}}
-
-happyReduce_104 = happySpecReduce_1  31# happyReduction_104
-happyReduction_104 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn37
-		 ([happy_var_1]
-	)}
-
-happyReduce_105 = happySpecReduce_3  31# happyReduction_105
-happyReduction_105 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut37 happy_x_3 of { happy_var_3 -> 
-	happyIn37
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_106 = happySpecReduce_2  32# happyReduction_106
-happyReduction_106 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	happyIn38
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_107 = happySpecReduce_1  32# happyReduction_107
-happyReduction_107 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn38
-		 ([(happy_var_1, 0)]
-	)}
-
-happyReduce_108 = happySpecReduce_3  32# happyReduction_108
-happyReduction_108 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut38 happy_x_3 of { happy_var_3 -> 
-	happyIn38
-		 ((happy_var_1,0):happy_var_3
-	)}}
-
-happyReduce_109 = happyReduce 4# 32# happyReduction_109
-happyReduction_109 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut38 happy_x_4 of { happy_var_4 -> 
-	happyIn38
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_110 = happySpecReduce_1  33# happyReduction_110
-happyReduction_110 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	happyIn39
-		 ([happy_var_1]
-	)}
-
-happyReduce_111 = happySpecReduce_3  33# happyReduction_111
-happyReduction_111 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut37 happy_x_3 of { happy_var_3 -> 
-	happyIn39
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_112 = happySpecReduce_1  34# happyReduction_112
-happyReduction_112 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn40
-		 ([happy_var_1]
-	)}
-
-happyReduce_113 = happySpecReduce_2  34# happyReduction_113
-happyReduction_113 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut40 happy_x_2 of { happy_var_2 -> 
-	happyIn40
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_114 = happyReduce 4# 35# happyReduction_114
-happyReduction_114 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn41
-		 ([(happy_var_1,happy_var_2,happy_var_4)]
-	) `HappyStk` happyRest}}}
-
-happyReduce_115 = happyReduce 6# 35# happyReduction_115
-happyReduction_115 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut41 happy_x_6 of { happy_var_6 -> 
-	happyIn41
-		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_116 = happySpecReduce_3  36# happyReduction_116
-happyReduction_116 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn42
-		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1)
-	)}}}
-
-happyReduce_117 = happySpecReduce_3  36# happyReduction_117
-happyReduction_117 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn42
-		 ((happy_var_1, happy_var_3)
-	)}}
-
-happyReduce_118 = happyReduce 4# 37# happyReduction_118
-happyReduction_118 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn43
-		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_119 = happyReduce 5# 37# happyReduction_119
-happyReduction_119 (happy_x_5 `HappyStk`
-	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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_120 = happyReduce 5# 37# happyReduction_120
-happyReduction_120 (happy_x_5 `HappyStk`
-	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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) [happy_var_1, happy_var_3]
-	) `HappyStk` happyRest}}}}
-
-happyReduce_121 = happyReduce 5# 37# happyReduction_121
-happyReduction_121 (happy_x_5 `HappyStk`
-	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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_122 = happyReduce 5# 37# happyReduction_122
-happyReduction_122 (happy_x_5 `HappyStk`
-	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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_123 = happyReduce 5# 37# happyReduction_123
-happyReduction_123 (happy_x_5 `HappyStk`
-	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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_124 = happySpecReduce_1  37# happyReduction_124
-happyReduction_124 happy_x_1
-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
-	happyIn43
-		 (happy_var_1
-	)}
-
-happyReduce_125 = happyReduce 5# 37# happyReduction_125
-happyReduction_125 (happy_x_5 `HappyStk`
-	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 happyOut53 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_126 = happyReduce 5# 38# happyReduction_126
-happyReduction_126 (happy_x_5 `HappyStk`
-	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 happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn44
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_127 = happyReduce 6# 39# happyReduction_127
-happyReduction_127 (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 happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_128 = happyReduce 6# 39# happyReduction_128
-happyReduction_128 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_129 = happyReduce 6# 39# happyReduction_129
-happyReduction_129 (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 happyOut46 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_130 = happyReduce 6# 39# happyReduction_130
-happyReduction_130 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut46 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_131 = happyReduce 6# 39# happyReduction_131
-happyReduction_131 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_132 = happyReduce 6# 39# happyReduction_132
-happyReduction_132 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex Eager happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_133 = happyReduce 6# 39# happyReduction_133
-happyReduction_133 (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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex Eager (RVar happy_var_4 happy_var_5 (MN "X" 0))) happy_var_3)
-	) `HappyStk` happyRest}}}
-
-happyReduce_134 = happyReduce 5# 39# happyReduction_134
-happyReduction_134 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (RBind (MN "X" 1) (Lam RPlaceholder)
-                    (RBind (MN "X" 2) (Pi Ex Eager (RVar happy_var_3 happy_var_4 (MN "X" 0)))
-                       (RVar happy_var_3 happy_var_4 (MN "X" 1))))
-	) `HappyStk` happyRest}}
-
-happyReduce_135 = happyReduce 5# 39# 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 happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                   (RBind (MN "X" 1) (Lam RPlaceholder)
-                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair"))
-                                    [RVar happy_var_3 happy_var_4 (MN "X" 0),
-                                     RVar happy_var_3 happy_var_4 (MN "X" 1)]))
-	) `HappyStk` happyRest}}
-
-happyReduce_136 = happyReduce 6# 39# 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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [happy_var_2,
-                                     RVar happy_var_4 happy_var_5 (MN "X" 0)])
-	) `HappyStk` happyRest}}}
-
-happyReduce_137 = happyReduce 6# 39# happyReduction_137
-happyReduction_137 (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 happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [RVar happy_var_4 happy_var_5 (MN "X" 0), happy_var_3])
-	) `HappyStk` happyRest}}}
-
-happyReduce_138 = happySpecReduce_1  40# happyReduction_138
-happyReduction_138 happy_x_1
-	 =  happyIn46
-		 ("<"
-	)
-
-happyReduce_139 = happySpecReduce_1  40# happyReduction_139
-happyReduction_139 happy_x_1
-	 =  happyIn46
-		 (">"
-	)
-
-happyReduce_140 = happySpecReduce_0  41# happyReduction_140
-happyReduction_140  =  happyIn47
-		 (RPlaceholder
-	)
-
-happyReduce_141 = happySpecReduce_2  41# happyReduction_141
-happyReduction_141 happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn47
-		 (happy_var_2
-	)}
-
-happyReduce_142 = happySpecReduce_0  42# happyReduction_142
-happyReduction_142  =  happyIn48
-		 (RPlaceholder
-	)
-
-happyReduce_143 = happySpecReduce_2  42# happyReduction_143
-happyReduction_143 happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn48
-		 (happy_var_2
-	)}
-
-happyReduce_144 = happyReduce 5# 43# happyReduction_144
-happyReduction_144 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut39 happy_x_1 of { happy_var_1 -> 
-	case happyOut48 happy_x_2 of { happy_var_2 -> 
-	case happyOut49 happy_x_5 of { happy_var_5 -> 
-	happyIn49
-		 (doBind (Pi Im Eager) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_145 = happySpecReduce_1  43# happyReduction_145
-happyReduction_145 happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	happyIn49
-		 (happy_var_1
-	)}
-
-happyReduce_146 = happySpecReduce_3  44# happyReduction_146
-happyReduction_146 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	happyIn50
-		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
-	)}}
-
-happyReduce_147 = happyReduce 5# 44# happyReduction_147
-happyReduction_147 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
-	case happyOut50 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (doBind (Pi Ex Eager) happy_var_2 happy_var_5
-	) `HappyStk` happyRest}}
-
-happyReduce_148 = happyReduce 5# 44# happyReduction_148
-happyReduction_148 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
-	case happyOut50 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (doBind (Pi Ex Lazy) happy_var_2 happy_var_5
-	) `HappyStk` happyRest}}
-
-happyReduce_149 = happySpecReduce_3  44# happyReduction_149
-happyReduction_149 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn50
-		 (bracket happy_var_2
-	)}
-
-happyReduce_150 = happyReduce 7# 44# happyReduction_150
-happyReduction_150 (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 happyOut50 happy_x_2 of { happy_var_2 -> 
-	case happyOut50 happy_x_4 of { happy_var_4 -> 
-	case happyOut77 happy_x_5 of { happy_var_5 -> 
-	case happyOut76 happy_x_6 of { happy_var_6 -> 
-	happyIn50
-		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_151 = happySpecReduce_1  44# happyReduction_151
-happyReduction_151 happy_x_1
-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
-	happyIn50
-		 (happy_var_1
-	)}
-
-happyReduce_152 = happySpecReduce_3  44# happyReduction_152
-happyReduction_152 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn50
-		 (happy_var_2
-	)}
-
-happyReduce_153 = happyReduce 5# 44# happyReduction_153
-happyReduction_153 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_154 = happyReduce 5# 44# happyReduction_154
-happyReduction_154 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut52 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_155 = happySpecReduce_1  44# happyReduction_155
-happyReduction_155 happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	happyIn50
-		 (happy_var_1
-	)}
-
-happyReduce_156 = happyReduce 8# 45# happyReduction_156
-happyReduction_156 (happy_x_8 `HappyStk`
-	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 happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut50 happy_x_5 of { happy_var_5 -> 
-	case happyOut77 happy_x_7 of { happy_var_7 -> 
-	case happyOut76 happy_x_8 of { happy_var_8 -> 
-	happyIn51
-		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_157 = happySpecReduce_3  46# happyReduction_157
-happyReduction_157 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	happyIn52
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_158 = happySpecReduce_3  46# happyReduction_158
-happyReduction_158 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut52 happy_x_3 of { happy_var_3 -> 
-	happyIn52
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_159 = happySpecReduce_3  47# happyReduction_159
-happyReduction_159 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_160 = happySpecReduce_3  47# happyReduction_160
-happyReduction_160 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (RReturn happy_var_2 happy_var_3
-	)}}
-
-happyReduce_161 = happySpecReduce_3  47# happyReduction_161
-happyReduction_161 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn53
-		 (bracket happy_var_2
-	)}
-
-happyReduce_162 = happySpecReduce_2  47# happyReduction_162
-happyReduction_162 happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_2 of { happy_var_2 -> 
-	happyIn53
-		 (RPure happy_var_2
-	)}
-
-happyReduce_163 = happySpecReduce_1  47# happyReduction_163
-happyReduction_163 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
-	happyIn53
-		 (RMetavar happy_var_1
-	)}
-
-happyReduce_164 = happyReduce 4# 47# happyReduction_164
-happyReduction_164 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn53
-		 (RExpVar happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_165 = happySpecReduce_3  47# happyReduction_165
-happyReduction_165 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_166 = happySpecReduce_1  47# happyReduction_166
-happyReduction_166 happy_x_1
-	 =  happyIn53
-		 (RRefl
-	)
-
-happyReduce_167 = happySpecReduce_3  47# happyReduction_167
-happyReduction_167 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_168 = happySpecReduce_3  47# happyReduction_168
-happyReduction_168 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_169 = happySpecReduce_1  47# happyReduction_169
-happyReduction_169 happy_x_1
-	 =  happyIn53
-		 (RPlaceholder
-	)
-
-happyReduce_170 = happySpecReduce_1  47# happyReduction_170
-happyReduction_170 happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 (RDo happy_var_1
-	)}
-
-happyReduce_171 = happySpecReduce_3  47# happyReduction_171
-happyReduction_171 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn53
-		 (RIdiom happy_var_2
-	)}
-
-happyReduce_172 = happyReduce 5# 47# happyReduction_172
-happyReduction_172 (happy_x_5 `HappyStk`
-	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 happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn53
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_173 = happySpecReduce_1  47# happyReduction_173
-happyReduction_173 happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 (happy_var_1
-	)}
-
-happyReduce_174 = happySpecReduce_1  47# happyReduction_174
-happyReduction_174 happy_x_1
-	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 (happy_var_1
-	)}
-
-happyReduce_175 = happySpecReduce_1  47# happyReduction_175
-happyReduction_175 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 (happy_var_1
-	)}
-
-happyReduce_176 = happyReduce 7# 48# happyReduction_176
-happyReduction_176 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut77 happy_x_6 of { happy_var_6 -> 
-	case happyOut76 happy_x_7 of { happy_var_7 -> 
-	happyIn54
-		 (RApp happy_var_6 happy_var_7 (RAppImp happy_var_6 happy_var_7 (UN "a") (RVar happy_var_6 happy_var_7 (UN "Exists")) happy_var_2) happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_177 = happyReduce 5# 48# happyReduction_177
-happyReduction_177 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut77 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn54
-		 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_178 = happySpecReduce_3  49# happyReduction_178
-happyReduction_178 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn55
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_179 = happySpecReduce_3  49# happyReduction_179
-happyReduction_179 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut55 happy_x_3 of { happy_var_3 -> 
-	happyIn55
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_180 = happyReduce 4# 50# happyReduction_180
-happyReduction_180 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut57 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_181 = happyReduce 10# 50# happyReduction_181
-happyReduction_181 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	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 happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	case happyOut77 happy_x_6 of { happy_var_6 -> 
-	case happyOut76 happy_x_7 of { happy_var_7 -> 
-	case happyOut57 happy_x_9 of { happy_var_9 -> 
-	happyIn56
-		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_182 = happySpecReduce_2  51# happyReduction_182
-happyReduction_182 happy_x_2
-	happy_x_1
-	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
-	case happyOut57 happy_x_2 of { happy_var_2 -> 
-	happyIn57
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_183 = happySpecReduce_1  51# happyReduction_183
-happyReduction_183 happy_x_1
-	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
-	happyIn57
-		 ([happy_var_1]
-	)}
-
-happyReduce_184 = happyReduce 7# 52# happyReduction_184
-happyReduction_184 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut77 happy_x_5 of { happy_var_5 -> 
-	case happyOut76 happy_x_6 of { happy_var_6 -> 
-	happyIn58
-		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_185 = happyReduce 8# 52# happyReduction_185
-happyReduction_185 (happy_x_8 `HappyStk`
-	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 happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	case happyOut77 happy_x_6 of { happy_var_6 -> 
-	case happyOut76 happy_x_7 of { happy_var_7 -> 
-	happyIn58
-		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_186 = happyReduce 4# 52# happyReduction_186
-happyReduction_186 (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 happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn58
-		 (DoExp happy_var_2 happy_var_3 happy_var_1
-	) `HappyStk` happyRest}}}
-
-happyReduce_187 = happySpecReduce_1  53# happyReduction_187
-happyReduction_187 happy_x_1
-	 =  happyIn59
-		 (TYPE
-	)
-
-happyReduce_188 = happySpecReduce_1  53# happyReduction_188
-happyReduction_188 happy_x_1
-	 =  happyIn59
-		 (StringType
-	)
-
-happyReduce_189 = happySpecReduce_1  53# happyReduction_189
-happyReduction_189 happy_x_1
-	 =  happyIn59
-		 (IntType
-	)
-
-happyReduce_190 = happySpecReduce_1  53# happyReduction_190
-happyReduction_190 happy_x_1
-	 =  happyIn59
-		 (CharType
-	)
-
-happyReduce_191 = happySpecReduce_1  53# happyReduction_191
-happyReduction_191 happy_x_1
-	 =  happyIn59
-		 (FloatType
-	)
-
-happyReduce_192 = happySpecReduce_1  53# happyReduction_192
-happyReduction_192 happy_x_1
-	 =  happyIn59
-		 (PtrType
-	)
-
-happyReduce_193 = happySpecReduce_1  53# happyReduction_193
-happyReduction_193 happy_x_1
-	 =  happyIn59
-		 (Builtin "Handle"
-	)
-
-happyReduce_194 = happySpecReduce_1  53# happyReduction_194
-happyReduction_194 happy_x_1
-	 =  happyIn59
-		 (Builtin "Lock"
-	)
-
-happyReduce_195 = happySpecReduce_1  53# happyReduction_195
-happyReduction_195 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
-	happyIn59
-		 (Num happy_var_1
-	)}
-
-happyReduce_196 = happySpecReduce_1  53# happyReduction_196
-happyReduction_196 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
-	happyIn59
-		 (Ch happy_var_1
-	)}
-
-happyReduce_197 = happySpecReduce_1  53# happyReduction_197
-happyReduction_197 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
-	happyIn59
-		 (Str happy_var_1
-	)}
-
-happyReduce_198 = happySpecReduce_1  53# happyReduction_198
-happyReduction_198 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
-	happyIn59
-		 (Bo happy_var_1
-	)}
-
-happyReduce_199 = happySpecReduce_1  53# happyReduction_199
-happyReduction_199 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
-	happyIn59
-		 (Fl happy_var_1
-	)}
-
-happyReduce_200 = happySpecReduce_0  54# happyReduction_200
-happyReduction_200  =  happyIn60
-		 ([]
-	)
-
-happyReduce_201 = happySpecReduce_2  54# happyReduction_201
-happyReduction_201 happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
-	case happyOut60 happy_x_2 of { happy_var_2 -> 
-	happyIn60
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_202 = happyReduce 4# 55# happyReduction_202
-happyReduction_202 (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 happyOut62 happy_x_3 of { happy_var_3 -> 
-	happyIn61
-		 ((happy_var_2, happy_var_3)
-	) `HappyStk` happyRest}}
-
-happyReduce_203 = happySpecReduce_3  55# happyReduction_203
-happyReduction_203 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOut76 happy_x_3 of { happy_var_3 -> 
-	happyIn61
-		 ((RConst happy_var_2 happy_var_3 TYPE, [])
-	)}}
-
-happyReduce_204 = happyReduce 4# 55# happyReduction_204
-happyReduction_204 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn61
-		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
-	) `HappyStk` happyRest}}}
-
-happyReduce_205 = happySpecReduce_0  56# happyReduction_205
-happyReduction_205  =  happyIn62
-		 ([]
-	)
-
-happyReduce_206 = happyReduce 4# 56# happyReduction_206
-happyReduction_206 (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 -> 
-	happyIn62
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_207 = happyReduce 7# 57# happyReduction_207
-happyReduction_207 (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 happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_6 of { happy_var_6 -> 
-	happyIn63
-		 ((happy_var_4,happy_var_6)
-	) `HappyStk` happyRest}}
-
-happyReduce_208 = happyReduce 6# 58# happyReduction_208
-happyReduction_208 (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 happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_5 of { happy_var_5 -> 
-	happyIn64
-		 ((happy_var_3,happy_var_5)
-	) `HappyStk` happyRest}}
-
-happyReduce_209 = happyReduce 4# 59# happyReduction_209
-happyReduction_209 (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 -> 
-	happyIn65
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_210 = happySpecReduce_2  60# happyReduction_210
-happyReduction_210 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn66
-		 (happy_var_2
-	)}
-
-happyReduce_211 = happySpecReduce_3  61# happyReduction_211
-happyReduction_211 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	happyIn67
-		 ([(happy_var_1, happy_var_3)]
-	)}}
-
-happyReduce_212 = happyReduce 5# 61# happyReduction_212
-happyReduction_212 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	case happyOut67 happy_x_5 of { happy_var_5 -> 
-	happyIn67
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_213 = happySpecReduce_1  62# happyReduction_213
-happyReduction_213 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn68
-		 ([happy_var_1]
-	)}
-
-happyReduce_214 = happySpecReduce_2  62# happyReduction_214
-happyReduction_214 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut68 happy_x_2 of { happy_var_2 -> 
-	happyIn68
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_215 = happySpecReduce_1  63# happyReduction_215
-happyReduction_215 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn69
-		 (happy_var_1
-	)}
-
-happyReduce_216 = happySpecReduce_1  63# happyReduction_216
-happyReduction_216 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn69
-		 (happy_var_1
-	)}
-
-happyReduce_217 = happySpecReduce_0  64# happyReduction_217
-happyReduction_217  =  happyIn70
-		 ([]
-	)
-
-happyReduce_218 = happySpecReduce_1  64# happyReduction_218
-happyReduction_218 happy_x_1
-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
-	happyIn70
-		 ([happy_var_1]
-	)}
-
-happyReduce_219 = happySpecReduce_3  64# happyReduction_219
-happyReduction_219 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
-	case happyOut70 happy_x_3 of { happy_var_3 -> 
-	happyIn70
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_220 = happySpecReduce_2  65# happyReduction_220
-happyReduction_220 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut72 happy_x_2 of { happy_var_2 -> 
-	happyIn71
-		 (Full happy_var_1 happy_var_2
-	)}}
-
-happyReduce_221 = happySpecReduce_2  65# happyReduction_221
-happyReduction_221 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut60 happy_x_2 of { happy_var_2 -> 
-	happyIn71
-		 (Simple happy_var_1 happy_var_2
-	)}}
-
-happyReduce_222 = happySpecReduce_2  66# happyReduction_222
-happyReduction_222 happy_x_2
-	happy_x_1
-	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
-	happyIn72
-		 (happy_var_2
-	)}
-
-happyReduce_223 = happySpecReduce_2  67# happyReduction_223
-happyReduction_223 happy_x_2
-	happy_x_1
-	 =  case happyOut37 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Intro happy_var_2
-	)}
-
-happyReduce_224 = happySpecReduce_1  67# happyReduction_224
-happyReduction_224 happy_x_1
-	 =  happyIn73
-		 (Intro []
-	)
-
-happyReduce_225 = happySpecReduce_2  67# happyReduction_225
-happyReduction_225 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Refine happy_var_2
-	)}
-
-happyReduce_226 = happySpecReduce_2  67# happyReduction_226
-happyReduction_226 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Generalise happy_var_2
-	)}
-
-happyReduce_227 = happySpecReduce_1  67# happyReduction_227
-happyReduction_227 happy_x_1
-	 =  happyIn73
-		 (ReflP
-	)
-
-happyReduce_228 = happySpecReduce_2  67# happyReduction_228
-happyReduction_228 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Rewrite False False happy_var_2
-	)}
-
-happyReduce_229 = happySpecReduce_3  67# happyReduction_229
-happyReduction_229 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn73
-		 (Rewrite False True happy_var_3
-	)}
-
-happyReduce_230 = happySpecReduce_2  67# happyReduction_230
-happyReduction_230 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Rewrite True False happy_var_2
-	)}
-
-happyReduce_231 = happySpecReduce_3  67# happyReduction_231
-happyReduction_231 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn73
-		 (Rewrite True True happy_var_3
-	)}
-
-happyReduce_232 = happySpecReduce_1  67# happyReduction_232
-happyReduction_232 happy_x_1
-	 =  happyIn73
-		 (Compute
-	)
-
-happyReduce_233 = happySpecReduce_2  67# happyReduction_233
-happyReduction_233 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Unfold happy_var_2
-	)}
-
-happyReduce_234 = happySpecReduce_1  67# happyReduction_234
-happyReduction_234 happy_x_1
-	 =  happyIn73
-		 (Undo
-	)
-
-happyReduce_235 = happySpecReduce_2  67# happyReduction_235
-happyReduction_235 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Induction happy_var_2
-	)}
-
-happyReduce_236 = happySpecReduce_2  67# happyReduction_236
-happyReduction_236 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Fill happy_var_2
-	)}
-
-happyReduce_237 = happySpecReduce_1  67# happyReduction_237
-happyReduction_237 happy_x_1
-	 =  happyIn73
-		 (Trivial
-	)
-
-happyReduce_238 = happySpecReduce_2  67# happyReduction_238
-happyReduction_238 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (RunTactic happy_var_2
-	)}
-
-happyReduce_239 = happySpecReduce_2  67# happyReduction_239
-happyReduction_239 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Believe happy_var_2
-	)}
-
-happyReduce_240 = happySpecReduce_2  67# happyReduction_240
-happyReduction_240 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Use happy_var_2
-	)}
-
-happyReduce_241 = happySpecReduce_2  67# happyReduction_241
-happyReduction_241 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (Decide happy_var_2
-	)}
-
-happyReduce_242 = happySpecReduce_1  67# happyReduction_242
-happyReduction_242 happy_x_1
-	 =  happyIn73
-		 (Abandon
-	)
-
-happyReduce_243 = happySpecReduce_1  67# happyReduction_243
-happyReduction_243 happy_x_1
-	 =  happyIn73
-		 (Qed
-	)
-
-happyReduce_244 = happyReduce 4# 68# happyReduction_244
-happyReduction_244 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut75 happy_x_3 of { happy_var_3 -> 
-	happyIn74
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_245 = happySpecReduce_2  69# happyReduction_245
-happyReduction_245 happy_x_2
-	happy_x_1
-	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
-	happyIn75
-		 ([happy_var_1]
-	)}
-
-happyReduce_246 = happySpecReduce_3  69# happyReduction_246
-happyReduction_246 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
-	case happyOut75 happy_x_3 of { happy_var_3 -> 
-	happyIn75
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_247 = happyMonadReduce 0# 70# happyReduction_247
-happyReduction_247 (happyRest) tk
-	 = happyThen (( getLineNo)
-	) (\r -> happyReturn (happyIn76 r))
-
-happyReduce_248 = happyMonadReduce 0# 71# happyReduction_248
-happyReduction_248 (happyRest) tk
-	 = happyThen (( getFileName)
-	) (\r -> happyReturn (happyIn77 r))
-
-happyReduce_249 = happyMonadReduce 0# 72# happyReduction_249
-happyReduction_249 (happyRest) tk
-	 = happyThen (( getOps)
-	) (\r -> happyReturn (happyIn78 r))
-
-happyNewToken action sts stk
-	= lexer(\tk -> 
-	let cont i = happyDoAction i tk action sts stk in
-	case tk of {
-	TokenEOF -> happyDoAction 118# tk action sts stk;
-	TokenName happy_dollar_dollar -> cont 1#;
-	TokenInfixName happy_dollar_dollar -> cont 2#;
-	TokenBrackName happy_dollar_dollar -> cont 3#;
-	TokenString happy_dollar_dollar -> cont 4#;
-	TokenInt happy_dollar_dollar -> cont 5#;
-	TokenFloat happy_dollar_dollar -> cont 6#;
-	TokenChar happy_dollar_dollar -> cont 7#;
-	TokenBool happy_dollar_dollar -> cont 8#;
-	TokenMetavar happy_dollar_dollar -> cont 9#;
-	TokenColon -> cont 10#;
-	TokenSemi -> cont 11#;
-	TokenBar -> cont 12#;
-	TokenStars -> cont 13#;
-	TokenLambda -> cont 14#;
-	TokenHashOB -> cont 15#;
-	TokenOB -> cont 16#;
-	TokenCB -> cont 17#;
-	TokenOCB -> cont 18#;
-	TokenCCB -> cont 19#;
-	TokenOSB -> cont 20#;
-	TokenCSB -> cont 21#;
-	TokenOId -> cont 22#;
-	TokenCId -> cont 23#;
-	TokenLPair -> cont 24#;
-	TokenRPair -> cont 25#;
-	TokenExists -> cont 26#;
-	TokenTilde -> cont 27#;
-	TokenPlus -> cont 28#;
-	TokenMinus -> cont 29#;
-	TokenTimes -> cont 30#;
-	TokenDivide -> cont 31#;
-	TokenEquals -> cont 32#;
-	TokenMightEqual -> cont 33#;
-	TokenLT -> cont 34#;
-	TokenGT -> cont 35#;
-	TokenEllipsis -> cont 36#;
-	TokenUnderscore -> cont 37#;
-	TokenComma -> cont 38#;
-	TokenTuple -> cont 39#;
-	TokenBang -> cont 40#;
-	TokenConcat -> cont 41#;
-	TokenGE -> cont 42#;
-	TokenLE -> cont 43#;
-	TokenOr -> cont 44#;
-	TokenAnd -> cont 45#;
-	TokenArrow -> cont 46#;
-	TokenFatArrow -> cont 47#;
-	TokenTransArrow -> cont 48#;
-	TokenLeftArrow -> cont 49#;
-	TokenIntType -> cont 50#;
-	TokenCharType -> cont 51#;
-	TokenFloatType -> cont 52#;
-	TokenStringType -> cont 53#;
-	TokenHandleType -> cont 54#;
-	TokenPtrType -> cont 55#;
-	TokenLockType -> cont 56#;
-	TokenType -> cont 57#;
-	TokenLazyBracket -> cont 58#;
-	TokenDataType -> cont 59#;
-	TokenInfix -> cont 60#;
-	TokenInfixL -> cont 61#;
-	TokenInfixR -> cont 62#;
-	TokenUsing -> cont 63#;
-	TokenIdiom -> cont 64#;
-	TokenParams -> cont 65#;
-	TokenNamespace -> cont 66#;
-	TokenPublic -> cont 67#;
-	TokenPrivate -> cont 68#;
-	TokenAbstract -> cont 69#;
-	TokenNoElim -> cont 70#;
-	TokenCollapsible -> cont 71#;
-	TokenWhere -> cont 72#;
-	TokenWith -> cont 73#;
-	TokenPartial -> cont 74#;
-	TokenSyntax -> cont 75#;
-	TokenLazy -> cont 76#;
-	TokenRefl -> cont 77#;
-	TokenEmptyType -> cont 78#;
-	TokenUnitType -> cont 79#;
-	TokenInclude -> cont 80#;
-	TokenExport -> cont 81#;
-	TokenInline -> cont 82#;
-	TokenDo -> cont 83#;
-	TokenReturn -> cont 84#;
-	TokenIf -> cont 85#;
-	TokenThen -> cont 86#;
-	TokenElse -> cont 87#;
-	TokenLet -> cont 88#;
-	TokenIn -> cont 89#;
-	TokenProof -> cont 90#;
-	TokenIntro -> cont 91#;
-	TokenRefine -> cont 92#;
-	TokenGeneralise -> cont 93#;
-	TokenReflP -> cont 94#;
-	TokenRewrite -> cont 95#;
-	TokenRewriteAll -> cont 96#;
-	TokenCompute -> cont 97#;
-	TokenUnfold -> cont 98#;
-	TokenUndo -> cont 99#;
-	TokenInduction -> cont 100#;
-	TokenFill -> cont 101#;
-	TokenTrivial -> cont 102#;
-	TokenMkTac -> cont 103#;
-	TokenBelieve -> cont 104#;
-	TokenUse -> cont 105#;
-	TokenDecide -> cont 106#;
-	TokenAbandon -> cont 107#;
-	TokenQED -> cont 108#;
-	TokenLaTeX -> cont 109#;
-	TokenNoCG -> cont 110#;
-	TokenEval -> cont 111#;
-	TokenSpec -> cont 112#;
-	TokenFreeze -> cont 113#;
-	TokenThaw -> cont 114#;
-	TokenTransform -> cont 115#;
-	TokenCInclude -> cont 116#;
-	TokenCLib -> cont 117#;
-	_ -> happyError' tk
-	})
-
-happyError_ tk = happyError' tk
-
-happyThen :: () => P a -> (a -> P b) -> P b
-happyThen = (thenP)
-happyReturn :: () => a -> P a
-happyReturn = (returnP)
-happyThen1 = happyThen
-happyReturn1 :: () => a -> P a
-happyReturn1 = happyReturn
-happyError' :: () => (Token) -> P a
-happyError' tk = (\token -> happyError) tk
-
-mkparse = happySomeParser where
-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
-
-mkparseTerm = happySomeParser where
-  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut33 x))
-
-mkparseTactic = happySomeParser where
-  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut73 x))
-
-happySeq = happyDontSeq
-
-
-data ConParse = Full Id RawTerm
-              | Simple Id [RawTerm]
-
-parse :: String -> FilePath -> Result [Decl]
-parse s fn = do ds <- mkparse s fn 1 []
-                collectDecls ds
-
-processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
-                  IO ([Decl], [FilePath])
-processImports opts imped (Success ds) = pi imped [] ds
-  where pi imps decls ((PInclude fp):xs)
-           | fp `elem` imps = pi imps decls xs
-           | otherwise = do
-                 f <- readLibFile defaultLibPath fp
-                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
-                 case parse f fp of
-                   Success t -> pi (fp:imps) decls (t++xs)
-                   Failure e f l ->
-                     fail $ f ++ ":" ++ show l ++ ":" ++ e
-        pi imps decls ((Using t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Using t ds']) xs
-        pi imps decls ((Params t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Params t ds']) xs
-        pi imps decls ((DoUsing b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[DoUsing b r ds']) xs
-        pi imps decls ((Idiom b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Idiom b r ds']) xs
-        pi imps decls ((Namespace n ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Namespace n ds']) xs
-        pi imps decls (x:xs) = pi imps (decls++[x]) xs
-        pi imps decls [] = return (decls, imps)
-
-processImports _ imped (Failure e f l) 
-    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
-
-
-parseTerm :: String -> Result RawTerm
-parseTerm s = mkparseTerm s "(input)" 0 []
-
-parseTactic :: String -> Result ITactic
-parseTactic s = mkparseTactic s "(tactic)" 0 []
-
-mkCon :: RawTerm -> ConParse -> (Id,RawTerm)
-mkCon _ (Full n t) = (n,t)
-mkCon ty (Simple n args) = (n, mkConTy args ty)
-   where mkConTy [] ty = ty
-         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex Eager a) (mkConTy as ty)
-
-mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
-   where mkImpApp f [] = f
-         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
-         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
-
-doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
-doBind b [] t = t
-doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
-
-doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
-doLetBind [] t = t
-doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
-
-mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
-mkTyApp file line n ty = mkApp file line (RVar file line n) (getTyArgs ty)
-   where getTyArgs (RBind n _ t) = (RVar file line n):(getTyArgs t)
-         getTyArgs x = []
-
-mkTyParams :: String -> Int -> [Id] -> RawTerm
-mkTyParams f l [] = RConst f l TYPE
-mkTyParams f l (x:xs) = RBind x (Pi Ex Eager (RConst f l TYPE)) (mkTyParams f l xs)
+newtype HappyAbsSyn t72 = HappyAbsSyn HappyAny
+#if __GLASGOW_HASKELL__ >= 607
+type HappyAny = Happy_GHC_Exts.Any
+#else
+type HappyAny = forall a . a
+#endif
+happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t72)
+happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn6 #-}
+happyOut6 :: (HappyAbsSyn t72) -> ([ParseDecl])
+happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut6 #-}
+happyIn7 :: (ParseDecl) -> (HappyAbsSyn t72)
+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn7 #-}
+happyOut7 :: (HappyAbsSyn t72) -> (ParseDecl)
+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut7 #-}
+happyIn8 :: (Decl) -> (HappyAbsSyn t72)
+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn8 #-}
+happyOut8 :: (HappyAbsSyn t72) -> (Decl)
+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut8 #-}
+happyIn9 :: (ParseDecl) -> (HappyAbsSyn t72)
+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn9 #-}
+happyOut9 :: (HappyAbsSyn t72) -> (ParseDecl)
+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut9 #-}
+happyIn10 :: (CGFlag) -> (HappyAbsSyn t72)
+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn10 #-}
+happyOut10 :: (HappyAbsSyn t72) -> (CGFlag)
+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut10 #-}
+happyIn11 :: (Bool) -> (HappyAbsSyn t72)
+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn11 #-}
+happyOut11 :: (HappyAbsSyn t72) -> (Bool)
+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut11 #-}
+happyIn12 :: ([RawTerm]) -> (HappyAbsSyn t72)
+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn12 #-}
+happyOut12 :: (HappyAbsSyn t72) -> ([RawTerm])
+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut12 #-}
+happyIn13 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn13 #-}
+happyOut13 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut13 #-}
+happyIn14 :: ([ParseDecl]) -> (HappyAbsSyn t72)
+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn14 #-}
+happyOut14 :: (HappyAbsSyn t72) -> ([ParseDecl])
+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut14 #-}
+happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t72)
+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn15 #-}
+happyOut15 :: (HappyAbsSyn t72) -> ([CGFlag])
+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut15 #-}
+happyIn16 :: ([CGFlag]) -> (HappyAbsSyn t72)
+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn16 #-}
+happyOut16 :: (HappyAbsSyn t72) -> ([CGFlag])
+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut16 #-}
+happyIn17 :: ([CGFlag]) -> (HappyAbsSyn t72)
+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn17 #-}
+happyOut17 :: (HappyAbsSyn t72) -> ([CGFlag])
+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut17 #-}
+happyIn18 :: ([Decl]) -> (HappyAbsSyn t72)
+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn18 #-}
+happyOut18 :: (HappyAbsSyn t72) -> ([Decl])
+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut18 #-}
+happyIn19 :: ([String]) -> (HappyAbsSyn t72)
+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn19 #-}
+happyOut19 :: (HappyAbsSyn t72) -> ([String])
+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut19 #-}
+happyIn20 :: (String) -> (HappyAbsSyn t72)
+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn20 #-}
+happyOut20 :: (HappyAbsSyn t72) -> (String)
+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut20 #-}
+happyIn21 :: (Fixity) -> (HappyAbsSyn t72)
+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn21 #-}
+happyOut21 :: (HappyAbsSyn t72) -> (Fixity)
+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut21 #-}
+happyIn22 :: (Decl) -> (HappyAbsSyn t72)
+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn22 #-}
+happyOut22 :: (HappyAbsSyn t72) -> (Decl)
+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut22 #-}
+happyIn23 :: ([(Id,String)]) -> (HappyAbsSyn t72)
+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn23 #-}
+happyOut23 :: (HappyAbsSyn t72) -> ([(Id,String)])
+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut23 #-}
+happyIn24 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t72)
+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn24 #-}
+happyOut24 :: (HappyAbsSyn t72) -> ((Id, [(RawTerm, Maybe Id)]))
+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut24 #-}
+happyIn25 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t72)
+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn25 #-}
+happyOut25 :: (HappyAbsSyn t72) -> ([(RawTerm,Maybe Id)])
+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut25 #-}
+happyIn26 :: (Datatype) -> (HappyAbsSyn t72)
+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn26 #-}
+happyOut26 :: (HappyAbsSyn t72) -> (Datatype)
+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut26 #-}
+happyIn27 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t72)
+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn27 #-}
+happyOut27 :: (HappyAbsSyn t72) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut27 #-}
+happyIn28 :: ([TyOpt]) -> (HappyAbsSyn t72)
+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn28 #-}
+happyOut28 :: (HappyAbsSyn t72) -> ([TyOpt])
+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut28 #-}
+happyIn29 :: ([TyOpt]) -> (HappyAbsSyn t72)
+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn29 #-}
+happyOut29 :: (HappyAbsSyn t72) -> ([TyOpt])
+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut29 #-}
+happyIn30 :: (TyOpt) -> (HappyAbsSyn t72)
+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn30 #-}
+happyOut30 :: (HappyAbsSyn t72) -> (TyOpt)
+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut30 #-}
+happyIn31 :: (Id) -> (HappyAbsSyn t72)
+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn31 #-}
+happyOut31 :: (HappyAbsSyn t72) -> (Id)
+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut31 #-}
+happyIn32 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn32 #-}
+happyOut32 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut32 #-}
+happyIn33 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn33 #-}
+happyOut33 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut33 #-}
+happyIn34 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn34 #-}
+happyOut34 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut34 #-}
+happyIn35 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn35 #-}
+happyOut35 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut35 #-}
+happyIn36 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn36 #-}
+happyOut36 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut36 #-}
+happyIn37 :: ([Id]) -> (HappyAbsSyn t72)
+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn37 #-}
+happyOut37 :: (HappyAbsSyn t72) -> ([Id])
+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut37 #-}
+happyIn38 :: ([(Id, Int)]) -> (HappyAbsSyn t72)
+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn38 #-}
+happyOut38 :: (HappyAbsSyn t72) -> ([(Id, Int)])
+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut38 #-}
+happyIn39 :: ([Id]) -> (HappyAbsSyn t72)
+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn39 #-}
+happyOut39 :: (HappyAbsSyn t72) -> ([Id])
+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut39 #-}
+happyIn40 :: ([Id]) -> (HappyAbsSyn t72)
+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn40 #-}
+happyOut40 :: (HappyAbsSyn t72) -> ([Id])
+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut40 #-}
+happyIn41 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn41 #-}
+happyOut41 :: (HappyAbsSyn t72) -> ([(Id, RawTerm, RawTerm)])
+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut41 #-}
+happyIn42 :: ((Id, RawTerm)) -> (HappyAbsSyn t72)
+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn42 #-}
+happyOut42 :: (HappyAbsSyn t72) -> ((Id, RawTerm))
+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut42 #-}
+happyIn43 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn43 #-}
+happyOut43 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut43 #-}
+happyIn44 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn44 #-}
+happyOut44 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut44 #-}
+happyIn45 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn45 #-}
+happyOut45 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut45 #-}
+happyIn46 :: (String) -> (HappyAbsSyn t72)
+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn46 #-}
+happyOut46 :: (HappyAbsSyn t72) -> (String)
+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut46 #-}
+happyIn47 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn47 #-}
+happyOut47 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut47 #-}
+happyIn48 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn48 #-}
+happyOut48 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut48 #-}
+happyIn49 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn49 #-}
+happyOut49 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut49 #-}
+happyIn50 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn50 #-}
+happyOut50 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut50 #-}
+happyIn51 :: (ArgOpt) -> (HappyAbsSyn t72)
+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn51 #-}
+happyOut51 :: (HappyAbsSyn t72) -> (ArgOpt)
+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut51 #-}
+happyIn52 :: ([ArgOpt]) -> (HappyAbsSyn t72)
+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn52 #-}
+happyOut52 :: (HappyAbsSyn t72) -> ([ArgOpt])
+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut52 #-}
+happyIn53 :: ([ArgOpt]) -> (HappyAbsSyn t72)
+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn53 #-}
+happyOut53 :: (HappyAbsSyn t72) -> ([ArgOpt])
+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut53 #-}
+happyIn54 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn54 #-}
+happyOut54 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut54 #-}
+happyIn55 :: ([RawTerm]) -> (HappyAbsSyn t72)
+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn55 #-}
+happyOut55 :: (HappyAbsSyn t72) -> ([RawTerm])
+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut55 #-}
+happyIn56 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn56 #-}
+happyOut56 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut56 #-}
+happyIn57 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn57 #-}
+happyOut57 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut57 #-}
+happyIn58 :: ([RawTerm]) -> (HappyAbsSyn t72)
+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn58 #-}
+happyOut58 :: (HappyAbsSyn t72) -> ([RawTerm])
+happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut58 #-}
+happyIn59 :: ([Do]) -> (HappyAbsSyn t72)
+happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn59 #-}
+happyOut59 :: (HappyAbsSyn t72) -> ([Do])
+happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut59 #-}
+happyIn60 :: ([Do]) -> (HappyAbsSyn t72)
+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn60 #-}
+happyOut60 :: (HappyAbsSyn t72) -> ([Do])
+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut60 #-}
+happyIn61 :: (Do) -> (HappyAbsSyn t72)
+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn61 #-}
+happyOut61 :: (HappyAbsSyn t72) -> (Do)
+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut61 #-}
+happyIn62 :: (Constant) -> (HappyAbsSyn t72)
+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn62 #-}
+happyOut62 :: (HappyAbsSyn t72) -> (Constant)
+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut62 #-}
+happyIn63 :: ([RawTerm]) -> (HappyAbsSyn t72)
+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn63 #-}
+happyOut63 :: (HappyAbsSyn t72) -> ([RawTerm])
+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut63 #-}
+happyIn64 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t72)
+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn64 #-}
+happyOut64 :: (HappyAbsSyn t72) -> ((RawTerm, [(Id, RawTerm)]))
+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut64 #-}
+happyIn65 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn65 #-}
+happyOut65 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut65 #-}
+happyIn66 :: ((Id,Id)) -> (HappyAbsSyn t72)
+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn66 #-}
+happyOut66 :: (HappyAbsSyn t72) -> ((Id,Id))
+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut66 #-}
+happyIn67 :: ((Id,Id)) -> (HappyAbsSyn t72)
+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn67 #-}
+happyOut67 :: (HappyAbsSyn t72) -> ((Id,Id))
+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut67 #-}
+happyIn68 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn68 #-}
+happyOut68 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut68 #-}
+happyIn69 :: (Id) -> (HappyAbsSyn t72)
+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn69 #-}
+happyOut69 :: (HappyAbsSyn t72) -> (Id)
+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut69 #-}
+happyIn70 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn70 #-}
+happyOut70 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut70 #-}
+happyIn71 :: ([Id]) -> (HappyAbsSyn t72)
+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn71 #-}
+happyOut71 :: (HappyAbsSyn t72) -> ([Id])
+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut71 #-}
+happyIn72 :: t72 -> (HappyAbsSyn t72)
+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn72 #-}
+happyOut72 :: (HappyAbsSyn t72) -> t72
+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut72 #-}
+happyIn73 :: ([ConParse]) -> (HappyAbsSyn t72)
+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn73 #-}
+happyOut73 :: (HappyAbsSyn t72) -> ([ConParse])
+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut73 #-}
+happyIn74 :: (ConParse) -> (HappyAbsSyn t72)
+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn74 #-}
+happyOut74 :: (HappyAbsSyn t72) -> (ConParse)
+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut74 #-}
+happyIn75 :: (RawTerm) -> (HappyAbsSyn t72)
+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn75 #-}
+happyOut75 :: (HappyAbsSyn t72) -> (RawTerm)
+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut75 #-}
+happyIn76 :: (ITactic) -> (HappyAbsSyn t72)
+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn76 #-}
+happyOut76 :: (HappyAbsSyn t72) -> (ITactic)
+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut76 #-}
+happyIn77 :: ([ITactic]) -> (HappyAbsSyn t72)
+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn77 #-}
+happyOut77 :: (HappyAbsSyn t72) -> ([ITactic])
+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut77 #-}
+happyIn78 :: ([ITactic]) -> (HappyAbsSyn t72)
+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn78 #-}
+happyOut78 :: (HappyAbsSyn t72) -> ([ITactic])
+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut78 #-}
+happyIn79 :: (LineNumber) -> (HappyAbsSyn t72)
+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn79 #-}
+happyOut79 :: (HappyAbsSyn t72) -> (LineNumber)
+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut79 #-}
+happyIn80 :: (String) -> (HappyAbsSyn t72)
+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn80 #-}
+happyOut80 :: (HappyAbsSyn t72) -> (String)
+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut80 #-}
+happyIn81 :: (Fixities) -> (HappyAbsSyn t72)
+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn81 #-}
+happyOut81 :: (HappyAbsSyn t72) -> (Fixities)
+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut81 #-}
+happyInTok :: (Token) -> (HappyAbsSyn t72)
+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyInTok #-}
+happyOutTok :: (HappyAbsSyn t72) -> (Token)
+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOutTok #-}
+
+
+happyActOffsets :: HappyAddr
+happyActOffsets = HappyA# "\x1b\x00\x6d\x05\x76\x08\x00\x00\x20\x04\x6d\x05\x1f\x01\x1f\x01\x6d\x05\x00\x00\x69\x03\x13\x03\x00\x00\x1f\x01\x00\x00\x6d\x05\x6d\x05\x00\x00\x6d\x05\x6d\x05\x6d\x05\x6d\x05\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x01\x61\x09\x67\x02\x6d\x05\x6d\x05\x38\x08\x6d\x05\x00\x00\x1f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x05\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x6d\x05\xae\x00\x1a\x04\x01\x00\x00\x00\x00\x00\x01\x00\x89\x04\x00\x00\x7b\x04\x00\x00\x2c\x02\x73\x04\x72\x04\x70\x04\x6e\x04\x6c\x04\x9b\x09\xd1\x01\x68\x04\x00\x00\x00\x00\x00\x00\x67\x04\x66\x04\x58\x04\xae\x00\xae\x00\x71\x04\x2e\x04\x55\x04\x65\x04\x6d\x05\x5b\x04\x56\x04\x00\x00\x00\x00\x29\x02\x00\x00\xae\x00\x50\x04\x53\x04\xae\x00\x00\x00\xae\x00\xae\x00\xae\x00\xae\x00\x32\x02\x4c\x04\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\xfe\xff\x00\x00\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\xd1\x00\xd1\x00\xd1\x00\xd1\x00\xd1\x00\x00\x00\xfd\x07\x51\x04\x02\x00\x27\x09\x43\x04\x2a\x00\x9b\x09\xd1\x01\x00\x00\x00\x00\x4a\x04\xff\x03\xe6\x01\x00\x00\x49\x04\x17\x05\x00\x00\x00\x00\x4f\x04\x00\x00\x4f\x04\x00\x00\xe1\x02\x78\x0a\x76\x01\x86\x03\xc1\x04\x3f\x04\xc1\x04\xc1\x04\x3e\x04\x33\x04\xc1\x04\xc1\x04\xcf\x01\x6c\x00\x00\x00\xc1\x04\xed\x08\xae\x00\x38\x04\x16\x04\x00\x00\x38\x08\x29\x04\x00\x00\xc1\x04\x1b\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\x00\x00\xa7\x01\x97\x01\x89\x01\x7a\x01\x67\x01\x58\x01\x00\x00\x4a\x01\xc1\x04\x36\x01\xc1\x04\x28\x01\x00\x00\x13\x04\x00\x00\xf8\x00\xae\x00\xc3\x00\x03\x00\x00\x00\x35\x04\x35\x04\x35\x04\x35\x04\x35\x04\x00\x00\xc1\x04\x35\x04\x38\x08\x00\x00\x00\x00\x00\x00\xc1\x04\x0b\x04\x61\x09\x1c\x04\x1e\x04\x08\x04\x17\x01\x19\x04\xc2\x00\x17\x04\x92\x08\x61\x09\x00\x00\x61\x09\x0f\x04\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\xc1\x04\x00\x00\xc1\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\x14\x04\x00\x00\x00\x00\xc1\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x36\x05\x0c\x04\x6b\x04\xae\x00\xfb\x03\x00\x00\x15\x04\x15\x04\xf7\x03\x07\x04\xfa\x03\x00\x04\x15\x04\x15\x04\x15\x04\xae\x03\x76\x08\xf9\x03\xf3\xff\x0d\x00\xea\x03\xfd\x07\x15\x04\x00\x00\x00\x00\xf5\x03\xf4\x03\xf1\x03\xee\x03\xec\x03\x00\x00\x00\x00\x32\x03\xed\x03\x00\x00\x00\x00\x15\x04\x15\x04\x15\x04\x00\x00\xe6\x03\xd7\x03\x00\x00\x00\x00\x1d\x03\xf0\x03\xde\x03\xd3\x03\xdd\x03\xae\x00\xcc\x03\x01\x00\xae\x00\xd0\x03\xc9\x03\x00\x00\x15\x04\xe0\x04\xd6\x03\xdc\x03\x00\x00\xbc\x03\x00\x00\x15\x04\x00\x00\x00\x00\xae\x00\x00\x00\x27\x09\x00\x00\xae\x00\xae\x00\xbb\x03\x27\x09\x00\x00\x00\x00\x32\x02\x00\x00\x8a\x04\x34\x04\x07\x05\x00\x00\x00\x00\x00\x00\x00\x00\x15\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x09\x00\x00\xae\x00\x00\x00\x00\x00\x20\x02\x20\x02\xd5\x03\x00\x00\x00\x00\x00\x00\xc8\x03\xc3\x03\x61\x09\xc7\x03\xbd\x03\x00\x00\x88\x03\xc9\x01\x59\x03\x00\x00\xd1\x01\x00\x00\x15\x04\xa6\x00\x5d\x00\x15\x04\xc2\x03\x00\x00\x00\x00\x00\x00\xa3\x03\x98\x08\x00\x00\x73\x08\xe3\x03\x00\x00\x61\x09\x00\x00\x30\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x03\x00\x00\xb9\x03\x00\x00\x38\x08\x00\x00\x9b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x61\x09\x61\x09\xa8\x03\x27\x09\xae\x00\x93\x03\x27\x09\x0d\x00\xae\x00\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x08\x73\x08\x73\x08\x73\x08\x73\x08\x73\x08\x00\x00\x00\x00\x00\x00\x00\x00\x61\x09\x00\x00\xb9\x00\x8d\x03\x10\x02\xd8\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x07\x00\x00\x87\x07\x00\x00\x4c\x07\x00\x00\x11\x07\xa9\x03\xa2\x03\xa1\x03\xa0\x03\x9f\x03\x0a\x00\x00\x00\x00\x00\x15\x04\xd6\x06\x8e\x03\x36\x05\x15\x04\x66\x00\x00\x00\xd5\x01\x9c\x03\x92\x03\x00\x00\x76\x08\x0d\x00\x6b\x03\xae\x00\x00\x00\x8f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x06\x00\x00\xd5\x01\x00\x00\x84\x03\x00\x00\x00\x00\x00\x00\xf8\xff\x00\x00\x60\x06\x8b\x03\x89\x03\x00\x00\x00\x00\x6e\x03\x81\x03\x03\x03\xae\x00\x6a\x03\x00\x00\x00\x00\xae\x00\x7e\x03\x00\x00\x00\x00\xae\x00\x00\x00\xae\x00\x00\x00\x38\x08\x00\x00\x00\x00\x27\x09\x00\x00\x45\x03\x00\x00\x00\x00\x00\x00\xae\x00\xd5\x01\x79\x03\x00\x00\x00\x00\x00\x00\x7a\x03\x00\x00\x7d\x01\x72\x03\x27\x09\x00\x00\xae\x00\x00\x00\x6f\x03\xae\x00\x7b\x03\x00\x00\x15\x04\x00\x00\x36\x05\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\x57\x03\x65\x03\x00\x00\x00\x00\x61\x09\x47\x03\x47\x03\x00\x00\x10\x02\x63\x03\x00\x00\x00\x00\x00\x00\x66\x00\x25\x06\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x03\x00\x00\x00\x00\x40\x03\xae\x00\x00\x00\x00\x00\x00\x00\x50\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x03\x00\x00\xea\x05\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x05\x51\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyGotoOffsets :: HappyAddr
+happyGotoOffsets = HappyA# "\x65\x0a\x97\x0d\x17\x03\x00\x00\x00\x00\x83\x0d\x97\x00\x41\x03\x7c\x0d\x00\x00\x68\x0d\x61\x0d\x00\x00\x38\x03\x00\x00\x4d\x0d\x46\x0d\x00\x00\x32\x0d\x2b\x0d\x17\x0d\x10\x0d\x00\x00\x00\x00\x00\x00\x06\x03\x77\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x52\x09\x83\x0a\xfc\x0c\xf5\x0c\xc6\x0d\xe1\x0c\x00\x00\x29\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x0c\x00\x00\xf6\x02\xf5\x02\x00\x00\xf4\x02\xc6\x0c\x8c\x01\x00\x00\x4b\x0a\x00\x00\x00\x00\x31\x0a\x00\x00\x00\x00\x36\x03\x00\x00\x0a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x28\x03\x24\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x03\x1e\x03\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x77\x01\xe2\x02\xaa\x01\x00\x00\x00\x00\x10\x01\x00\x00\x04\x00\x16\x03\xfa\xff\x0b\x03\x43\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x03\xd3\x02\x72\x01\x00\x00\xcb\x02\x97\x0a\x00\x00\xc6\x02\xc0\x02\x17\x0a\xfd\x09\xe3\x09\xc9\x09\x79\x09\x00\x00\x1e\x06\x00\x00\x00\x00\xbb\x0d\x00\x00\xfd\x02\xfd\xff\x18\x02\x00\x00\x00\x00\xd6\x02\x00\x00\x6e\x01\xb8\x02\xd4\x02\xd3\x0a\xb3\x02\xb2\x02\x6c\x01\xaf\x02\x6b\x01\x00\x00\x69\x01\x69\x01\x15\x01\x78\x00\xab\x0c\x00\x00\xa4\x0c\x90\x0c\x00\x00\x00\x00\xba\x04\x64\x04\x5d\x01\x00\x00\x00\x00\x89\x0c\x7a\x02\x0b\x02\xcf\x02\x00\x00\xae\x02\xab\x0d\x00\x00\xa4\x02\x75\x0c\xa2\x02\x6e\x0c\x5a\x0c\x53\x0c\x3f\x0c\x38\x0c\x9e\x02\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x00\x00\x5a\x01\x24\x0c\x5a\x01\x1d\x0c\x5a\x01\x00\x00\x00\x00\x00\x00\x5a\x01\x85\x00\x5a\x01\x5a\x01\x00\x00\x55\x01\x47\x01\x3e\x01\x3d\x01\x2c\x01\x98\x02\x09\x0c\x2a\x01\x9e\x0d\x94\x02\x8f\x02\x00\x00\x02\x0c\x00\x00\x2b\x08\x00\x00\x00\x00\x00\x00\x38\x00\x00\x00\x00\x00\x00\x00\x25\x01\xef\x07\x00\x00\xb4\x07\x00\x00\x8e\x02\x12\x01\x8d\x02\x08\x01\x8b\x02\xe6\x00\x88\x02\xe4\x00\x86\x02\x0e\x04\x00\x00\xb8\x03\xee\x0b\xe7\x0b\xb6\x02\xe0\x01\x00\x00\x00\x00\x84\x02\xd3\x0b\x81\x02\x80\x02\x7f\x02\x00\x00\x00\x00\x28\x00\xe3\x00\x00\x00\xbf\x0a\x3b\x01\x00\x00\x00\x00\xcc\x0b\xb8\x0b\x00\x00\x00\x00\x00\x00\xc1\x02\xb1\x0b\x9d\x0b\x96\x0b\x00\x00\xbc\x01\x90\x02\x01\x02\x00\x00\x00\x00\xe3\x05\x82\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x02\x6f\x02\xde\x00\x00\x00\x6b\x02\x68\x02\x7b\x0b\x67\x0b\x60\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x05\x09\x97\x02\x00\x00\x00\x00\x66\x02\x4c\x0b\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x0b\x00\x00\x00\x00\x8c\x02\x00\x00\x8e\x09\x64\x02\xf2\xff\x8c\x00\x00\x00\x29\x08\x63\x02\x62\x02\xaf\x01\x00\x00\xde\x00\xde\x00\xde\x00\x00\x00\x00\x00\x5f\x02\x00\x00\xe7\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x00\x5e\x02\x80\x00\x5d\x02\x00\x00\xce\x01\x5b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x07\x00\x00\x00\x00\x00\x00\xde\x00\xa3\x00\xde\x00\x00\x00\xcb\x00\x00\x00\x31\x0b\xde\x00\xde\x00\x2a\x0b\x3e\x02\x00\x00\x00\x00\x5b\x02\x00\x00\xf6\x07\x00\x00\xf6\x07\xde\x00\x5a\x02\x3f\x07\x59\x02\xde\x00\x00\x00\x58\x02\x4d\x02\x45\x02\x42\x02\x3d\x02\x3c\x02\x3a\x02\x00\x00\x35\x02\x00\x00\x21\x02\xbb\x07\x2a\x02\x00\x00\x27\x02\x00\x00\xff\x01\x00\x00\x04\x07\x1e\x02\x92\x01\x78\x07\x00\x02\x00\x00\x3d\x07\x00\x00\x16\x00\xde\x00\x1d\x02\x0c\x02\x00\x00\x0a\x02\xde\x00\x00\x00\x04\x02\xfc\x01\xf5\x01\xe5\x01\xda\x01\x00\x00\xcf\x06\xcf\x06\xcf\x06\xcf\x06\xcf\x06\xcf\x06\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x06\x00\x00\x00\x00\x00\x00\xcb\x01\x00\x00\x00\x00\xd0\x01\xb6\x01\xb3\x01\xa8\x01\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x01\x16\x0b\xcf\x06\x00\x00\xdd\x00\x0f\x0b\xcf\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\xef\x00\x00\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\xa4\x01\x00\x00\xa1\x01\x66\x05\x9e\x01\x0e\x02\x00\x00\x00\x00\x00\x00\x9b\x01\x86\x01\x38\x01\x24\x01\x99\x05\x00\x00\x00\x00\x00\x00\x68\x01\x00\x00\x00\x00\xcf\x00\x85\x01\x00\x00\x00\x00\x00\x00\x4f\x01\x00\x00\x00\x00\x00\x00\xf9\xff\x00\x00\x0b\x00\x00\x00\x18\x09\x00\x00\x00\x00\x02\x07\x64\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x01\xc5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x06\x00\x00\x34\x00\xea\x00\x00\x00\xf7\xff\xca\x00\x2e\x01\xfb\x0a\x00\x00\xbf\x00\x0e\x01\x77\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\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x06\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00\xbc\x00\x00\x00\x9f\x00\xad\x00\x59\x06\x73\x00\x00\x00\x37\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\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\x51\x00\x21\x00\x00\x00\x3c\x00\x59\x06\xab\x0a\xe5\xff\x59\x06\x00\x00\x00\x00\x00\x00\x00\x00\x59\x06\x00\x00\x00\x00\xd0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyDefActions :: HappyAddr
+happyDefActions = HappyA# "\x2c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\xff\x00\x00\x00\x00\x15\xff\x00\x00\x00\x00\x10\xff\x00\x00\x0e\xff\x00\x00\x00\x00\x0b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x06\xff\x05\xff\x04\xff\xff\xfe\xff\xfe\x9e\xff\x83\xff\x4b\xff\x4c\xff\xa5\xff\x4a\xff\x4f\xff\xff\xfe\xae\xff\x34\xff\x36\xff\x32\xff\x35\xff\x33\xff\x56\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xff\x00\x00\x3c\xff\x3b\xff\x3a\xff\x3d\xff\x38\xff\x39\xff\x37\xff\x3e\xff\x00\x00\x53\xff\xff\xfe\xff\xfe\x00\x00\xff\xfe\x00\x00\x00\x00\x00\x00\x2c\xff\xef\xff\xf8\xff\x2c\xff\x00\x00\xf6\xff\xdb\xff\xf7\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xff\xc1\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\xed\xff\xff\xfe\xff\xfe\x00\x00\x00\x00\x00\x00\x8f\xff\x27\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\xc6\xff\xc5\xff\xc4\xff\x00\x00\xff\xfe\xff\xfe\xd9\xff\xff\xfe\x00\x00\xa8\xff\xff\xfe\xff\xfe\x2c\xff\x2c\xff\x2c\xff\x2c\xff\x2c\xff\xbd\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x73\xff\x00\x00\xff\xfe\x00\xff\x73\xff\x00\x00\x00\xff\x00\xff\xff\xfe\xff\xfe\xff\xfe\x57\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x00\x00\x00\x00\xc7\xff\xc6\xff\x75\xff\x74\xff\xff\xfe\xff\xfe\xff\xfe\x00\x00\x64\xff\x00\x00\x00\x00\x00\x00\x73\xff\x00\x00\x00\xff\x00\x00\x00\x00\x00\xff\x00\x00\xff\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x0f\xff\xff\xfe\x00\x00\xff\xfe\x00\x00\xff\xfe\x18\xff\x97\xff\x1a\xff\xff\xfe\x00\x00\xff\xfe\xff\xfe\x5a\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x00\xff\x00\x00\xff\xfe\x00\x00\xff\xfe\xff\xfe\x54\xff\x00\x00\x9c\xff\x00\x00\x00\x00\x00\x00\x99\xff\xff\xfe\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\xa4\xff\x00\x00\x00\x00\x00\xff\xff\xfe\x00\xff\xff\xfe\x00\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x58\xff\xff\xfe\x75\xff\x74\xff\xff\xfe\xff\xfe\x00\x00\x4e\xff\xff\xfe\x00\x00\x00\xff\x00\xff\x00\xff\x52\xff\x51\xff\xff\xfe\xff\xfe\x00\x00\x42\xff\x00\x00\x00\x00\x59\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xdb\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\x71\xff\xd2\xff\x6e\xff\x91\xff\xbc\xff\x00\x00\xe9\xff\xbb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\xff\xfe\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\xad\xff\x00\x00\xb2\xff\xb0\xff\xaf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x2c\xff\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\xff\xfe\x00\x00\x00\x00\xc0\xff\x00\x00\xf9\xff\x00\x00\x8e\xff\x28\xff\x00\x00\x2b\xff\x00\x00\xff\xfe\x24\xff\x20\xff\x00\x00\x00\x00\xff\xfe\xff\xfe\x00\x00\xb3\xff\xff\xfe\xff\xfe\xff\xfe\xaa\xff\xa9\xff\xff\xfe\xd8\xff\x00\x00\xa7\xff\xa6\xff\xf0\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\xff\xfe\xff\xfe\x00\x00\xff\xfe\xd4\xff\xd2\xff\xd2\xff\x00\x00\xcc\xff\xd0\xff\xcf\xff\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\xff\xfe\xff\xfe\xff\xfe\xdc\xff\x00\x00\xca\xff\x00\x00\xff\xfe\xff\xfe\x00\x00\x73\xff\x43\xff\x45\xff\x00\xff\x00\x00\xa1\xff\x55\xff\x89\xff\xff\xfe\x00\xff\x00\x00\x00\xff\xff\xfe\x46\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\xff\xfe\x6d\xff\xff\xfe\x67\xff\xff\xfe\x6a\xff\x00\x00\x00\x00\x60\xff\x00\x00\x00\x00\x00\x00\x00\x00\x72\xff\x00\x00\xff\xfe\x00\xff\x00\xff\xa3\xff\x00\xff\xff\xfe\x8b\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x96\xff\x84\xff\x87\xff\x85\xff\x86\xff\x88\xff\x81\xff\xa2\xff\x82\xff\x9b\xff\x98\xff\x00\x00\x9a\xff\x72\xff\x00\x00\x00\x00\x5c\xff\x5b\xff\xff\xfe\x00\xff\x00\xff\x00\xff\xac\xff\x00\x00\x79\xff\x00\x00\x78\xff\x00\x00\x4d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xff\xff\xfe\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\xff\xfe\xc8\xff\x00\x00\x00\x00\x00\x00\x03\xff\x02\xff\x70\xff\x00\x00\x00\x00\xcb\xff\x00\x00\xd1\xff\x00\xff\x90\xff\x00\xff\xbc\xff\x00\xff\x00\x00\xe5\xff\x00\x00\xb1\xff\x00\xff\x00\xff\x2c\xff\xff\xfe\x31\xff\x00\x00\x1f\xff\x23\xff\x00\xff\x26\xff\x00\x00\xff\xfe\x00\x00\xbf\xff\xf5\xff\xeb\xff\x00\x00\x00\x00\xee\xff\x29\xff\x00\x00\xb8\xff\x20\xff\xb7\xff\x31\xff\x1c\xff\x1d\xff\x00\x00\x00\xff\x00\x00\xb6\xff\xb5\xff\x2e\xff\x00\x00\xd5\xff\x00\x00\xd7\xff\xb9\xff\xba\xff\x00\x00\xd3\xff\x94\xff\x00\x00\x00\x00\x01\xff\x00\x00\xff\xfe\x00\x00\x00\x00\xff\xfe\x00\xff\x00\x00\x3f\xff\xff\xfe\x00\xff\xff\xfe\x7b\xff\x77\xff\x7c\xff\x7f\xff\x7d\xff\x7e\xff\x80\xff\x76\xff\x7a\xff\xab\xff\x66\xff\x65\xff\x00\xff\x5e\xff\x00\x00\x63\xff\x62\xff\x00\x00\x6b\xff\x6c\xff\x61\xff\x00\x00\x00\x00\x00\xff\x49\xff\x00\xff\xff\xfe\x00\x00\x00\xff\x8c\xff\xff\xfe\x00\xff\x00\x00\x6f\xff\xce\xff\x95\xff\x00\x00\xea\xff\xe3\xff\xd6\xff\x00\x00\x2f\xff\x2d\xff\x1b\xff\x30\xff\x1e\xff\x25\xff\x2a\xff\xbe\xff\xe4\xff\x93\xff\x00\x00\xff\xfe\xe6\xff\x00\xff\x9d\xff\x00\x00\x00\xff\x00\x00\x5d\xff\x69\xff\x5f\xff\x41\xff\x00\x00\x00\x00\xe8\xff\x00\xff\x92\xff\xe7\xff\x44\xff\x40\xff"#
+
+happyCheck :: HappyAddr
+happyCheck = HappyA# "\xff\xff\x03\x00\x01\x00\x0b\x00\x07\x00\x02\x00\x03\x00\x14\x00\x02\x00\x03\x00\x0c\x00\x19\x00\x02\x00\x0c\x00\x0b\x00\x02\x00\x19\x00\x10\x00\x19\x00\x19\x00\x13\x00\x13\x00\x19\x00\x1a\x00\x19\x00\x49\x00\x23\x00\x11\x00\x01\x00\x19\x00\x20\x00\x21\x00\x1d\x00\x22\x00\x20\x00\x1d\x00\x19\x00\x22\x00\x23\x00\x0c\x00\x22\x00\x23\x00\x27\x00\x10\x00\x0a\x00\x27\x00\x49\x00\x19\x00\x33\x00\x2e\x00\x1c\x00\x41\x00\x2e\x00\x38\x00\x07\x00\x3f\x00\x2e\x00\x40\x00\x40\x00\x2e\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x40\x00\x52\x00\x53\x00\x49\x00\x19\x00\x1a\x00\x20\x00\x21\x00\x4b\x00\x19\x00\x43\x00\x44\x00\x15\x00\x29\x00\x51\x00\x31\x00\x19\x00\x54\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x03\x00\x02\x00\x03\x00\x29\x00\x33\x00\x70\x00\x71\x00\x72\x00\x4b\x00\x38\x00\x02\x00\x03\x00\x19\x00\x4a\x00\x51\x00\x12\x00\x02\x00\x54\x00\x6f\x00\x20\x00\x4a\x00\x49\x00\x73\x00\x3a\x00\x75\x00\x76\x00\x77\x00\x78\x00\x1d\x00\x78\x00\x41\x00\x11\x00\x78\x00\x22\x00\x23\x00\x4a\x00\x4a\x00\x1d\x00\x27\x00\x49\x00\x02\x00\x03\x00\x22\x00\x23\x00\x6f\x00\x2e\x00\x26\x00\x27\x00\x73\x00\x0b\x00\x75\x00\x76\x00\x77\x00\x78\x00\x2e\x00\x11\x00\x12\x00\x13\x00\x14\x00\x19\x00\x2e\x00\x17\x00\x24\x00\x19\x00\x19\x00\x1f\x00\x28\x00\x1d\x00\x20\x00\x21\x00\x1f\x00\x19\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x09\x00\x0a\x00\x0b\x00\x01\x00\x19\x00\x0b\x00\x2e\x00\x2f\x00\x49\x00\x58\x00\x1f\x00\x11\x00\x12\x00\x13\x00\x14\x00\x02\x00\x49\x00\x17\x00\x10\x00\x19\x00\x5a\x00\x4a\x00\x4a\x00\x1d\x00\x02\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x11\x00\x49\x00\x26\x00\x27\x00\x0b\x00\x43\x00\x44\x00\x24\x00\x01\x00\x11\x00\x2e\x00\x2f\x00\x52\x00\x53\x00\x0d\x00\x0e\x00\x02\x00\x57\x00\x58\x00\x0c\x00\x5a\x00\x26\x00\x1d\x00\x10\x00\x20\x00\x24\x00\x13\x00\x22\x00\x23\x00\x2e\x00\x49\x00\x27\x00\x27\x00\x19\x00\x19\x00\x4a\x00\x24\x00\x1c\x00\x2e\x00\x2e\x00\x20\x00\x24\x00\x70\x00\x71\x00\x72\x00\x4a\x00\x52\x00\x53\x00\x02\x00\x03\x00\x78\x00\x57\x00\x58\x00\x27\x00\x5a\x00\x24\x00\x24\x00\x0b\x00\x19\x00\x49\x00\x2e\x00\x24\x00\x24\x00\x4a\x00\x24\x00\x20\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x4a\x00\x1d\x00\x70\x00\x71\x00\x72\x00\x4a\x00\x22\x00\x23\x00\x4b\x00\x13\x00\x78\x00\x27\x00\x01\x00\x0a\x00\x51\x00\x19\x00\x0d\x00\x54\x00\x2e\x00\x4a\x00\x4a\x00\x19\x00\x02\x00\x03\x00\x24\x00\x4a\x00\x4a\x00\x10\x00\x4a\x00\x27\x00\x22\x00\x0b\x00\x4a\x00\x46\x00\x24\x00\x48\x00\x02\x00\x03\x00\x30\x00\x78\x00\x32\x00\x33\x00\x29\x00\x35\x00\x6f\x00\x0b\x00\x38\x00\x49\x00\x73\x00\x1d\x00\x75\x00\x76\x00\x77\x00\x24\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x24\x00\x47\x00\x4a\x00\x1d\x00\x19\x00\x0b\x00\x2e\x00\x49\x00\x22\x00\x23\x00\x02\x00\x03\x00\x4a\x00\x27\x00\x23\x00\x4a\x00\x11\x00\x24\x00\x24\x00\x0b\x00\x2e\x00\x0a\x00\x0b\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x4a\x00\x4a\x00\x78\x00\x27\x00\x0b\x00\x3b\x00\x4a\x00\x1d\x00\x4a\x00\x49\x00\x2e\x00\x24\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x0a\x00\x24\x00\x05\x00\x0d\x00\x1d\x00\x0b\x00\x2e\x00\x4a\x00\x4a\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x24\x00\x24\x00\x4a\x00\x24\x00\x4a\x00\x0b\x00\x2e\x00\x24\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x19\x00\x4a\x00\x78\x00\x27\x00\x0b\x00\x26\x00\x4a\x00\x19\x00\x1d\x00\x4a\x00\x2e\x00\x02\x00\x03\x00\x22\x00\x23\x00\x49\x00\x78\x00\x23\x00\x27\x00\x49\x00\x0b\x00\x4a\x00\x1d\x00\x4a\x00\x4a\x00\x2e\x00\x4a\x00\x22\x00\x23\x00\x11\x00\x4a\x00\x2d\x00\x27\x00\x2f\x00\x2e\x00\x4a\x00\x78\x00\x19\x00\x1d\x00\x2e\x00\x17\x00\x18\x00\x03\x00\x22\x00\x23\x00\x02\x00\x03\x00\x08\x00\x27\x00\x49\x00\x78\x00\x02\x00\x03\x00\x02\x00\x0b\x00\x2e\x00\x01\x00\x12\x00\x0a\x00\x0b\x00\x0b\x00\x0c\x00\x0d\x00\x14\x00\x19\x00\x78\x00\x11\x00\x0c\x00\x13\x00\x14\x00\x49\x00\x10\x00\x1d\x00\x49\x00\x02\x00\x03\x00\x49\x00\x22\x00\x23\x00\x49\x00\x1d\x00\x20\x00\x27\x00\x49\x00\x78\x00\x22\x00\x23\x00\x26\x00\x27\x00\x2e\x00\x2d\x00\x19\x00\x2f\x00\x1b\x00\x49\x00\x2e\x00\x2f\x00\x49\x00\x31\x00\x78\x00\x46\x00\x1d\x00\x48\x00\x25\x00\x26\x00\x27\x00\x22\x00\x23\x00\x09\x00\x0a\x00\x0b\x00\x27\x00\x3f\x00\x78\x00\x30\x00\x03\x00\x32\x00\x33\x00\x2e\x00\x35\x00\x08\x00\x48\x00\x38\x00\x19\x00\x4a\x00\x52\x00\x53\x00\x1d\x00\x1e\x00\x78\x00\x12\x00\x52\x00\x53\x00\x49\x00\x19\x00\x0d\x00\x0e\x00\x19\x00\x1d\x00\x1e\x00\x4a\x00\x02\x00\x03\x00\x01\x00\x49\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\x70\x00\x71\x00\x72\x00\x10\x00\x57\x00\x49\x00\x70\x00\x71\x00\x72\x00\x16\x00\x03\x00\x18\x00\x49\x00\x1d\x00\x1b\x00\x08\x00\x4a\x00\x2c\x00\x22\x00\x23\x00\x49\x00\x30\x00\x31\x00\x27\x00\x25\x00\x12\x00\x49\x00\x28\x00\x49\x00\x38\x00\x2e\x00\x2f\x00\x19\x00\x17\x00\x18\x00\x4c\x00\x4d\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x29\x00\x01\x00\x02\x00\x49\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4a\x00\x52\x00\x53\x00\x4a\x00\x0e\x00\x0f\x00\x10\x00\x46\x00\x47\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\x49\x00\x18\x00\x54\x00\x55\x00\x1b\x00\x49\x00\x1d\x00\x49\x00\x49\x00\x5b\x00\x0e\x00\x22\x00\x23\x00\x49\x00\x25\x00\x26\x00\x49\x00\x28\x00\x70\x00\x71\x00\x72\x00\x19\x00\x1a\x00\x2e\x00\x49\x00\x1d\x00\x1e\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x49\x00\x49\x00\x49\x00\x19\x00\x2c\x00\x4a\x00\x4a\x00\x4a\x00\x30\x00\x31\x00\x4a\x00\x4a\x00\x4a\x00\x49\x00\x19\x00\x49\x00\x38\x00\x4c\x00\x49\x00\x4e\x00\x4f\x00\x50\x00\x49\x00\x49\x00\x2a\x00\x54\x00\x55\x00\x56\x00\x01\x00\x02\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x06\x00\x49\x00\x49\x00\x49\x00\x0e\x00\x0f\x00\x10\x00\x4a\x00\x19\x00\x4a\x00\x1b\x00\x4a\x00\x16\x00\x49\x00\x18\x00\x49\x00\x49\x00\x1b\x00\x4a\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x4a\x00\x22\x00\x23\x00\x49\x00\x25\x00\x02\x00\x03\x00\x28\x00\x30\x00\x49\x00\x32\x00\x33\x00\x34\x00\x35\x00\x4a\x00\x49\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x29\x00\x4a\x00\x19\x00\x49\x00\x49\x00\x29\x00\x1d\x00\x29\x00\x4a\x00\x49\x00\x05\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x4c\x00\x4a\x00\x4e\x00\x4f\x00\x50\x00\x0b\x00\x2e\x00\x4a\x00\x54\x00\x55\x00\x56\x00\x01\x00\x4a\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4a\x00\x01\x00\x05\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x19\x00\x22\x00\x23\x00\x0a\x00\x0b\x00\x16\x00\x27\x00\x18\x00\x4a\x00\x10\x00\x1b\x00\x19\x00\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\x0e\x00\x19\x00\x25\x00\x19\x00\x16\x00\x28\x00\x06\x00\x20\x00\x4a\x00\x4a\x00\x4a\x00\x11\x00\x19\x00\x11\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x4a\x00\x1d\x00\x4a\x00\x19\x00\x22\x00\x23\x00\x22\x00\x23\x00\x26\x00\x27\x00\x26\x00\x27\x00\x19\x00\x02\x00\x03\x00\x46\x00\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x13\x00\x15\x00\x26\x00\x54\x00\x55\x00\x56\x00\x01\x00\x12\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x15\x00\x11\x00\x2e\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x15\x00\x22\x00\x23\x00\x26\x00\x03\x00\x16\x00\x27\x00\x18\x00\x13\x00\x11\x00\x1b\x00\x0b\x00\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\x13\x00\x48\x00\x25\x00\x11\x00\x26\x00\x28\x00\x11\x00\x0b\x00\x26\x00\x0c\x00\x0b\x00\x11\x00\x14\x00\x2e\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x15\x00\x1d\x00\x14\x00\x0b\x00\x22\x00\x23\x00\x22\x00\x23\x00\x26\x00\x27\x00\x20\x00\x27\x00\x11\x00\x11\x00\x11\x00\x11\x00\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x11\x00\x2e\x00\x14\x00\x54\x00\x55\x00\x56\x00\x01\x00\x2e\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\x11\x00\x11\x00\x0a\x00\x0e\x00\x0f\x00\x10\x00\x13\x00\x19\x00\x0b\x00\x1b\x00\x31\x00\x16\x00\x13\x00\x18\x00\x10\x00\x04\x00\x1b\x00\x20\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x04\x00\x0b\x00\x26\x00\x13\x00\x25\x00\x02\x00\x03\x00\x28\x00\x30\x00\x20\x00\x32\x00\x33\x00\x20\x00\x35\x00\x11\x00\x11\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x0a\x00\x15\x00\x19\x00\x26\x00\x11\x00\x13\x00\x1d\x00\x13\x00\x4a\x00\x0a\x00\x13\x00\x22\x00\x23\x00\x13\x00\x13\x00\x5b\x00\x27\x00\x4c\x00\x0c\x00\x4e\x00\x4f\x00\x50\x00\x26\x00\x2e\x00\x0b\x00\x54\x00\x55\x00\x56\x00\x01\x00\x20\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x13\x00\x26\x00\x0d\x00\x13\x00\x0e\x00\x0f\x00\x10\x00\x0a\x00\x19\x00\x11\x00\x1b\x00\x11\x00\x16\x00\x31\x00\x18\x00\x26\x00\x11\x00\x1b\x00\x26\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\x03\x00\x26\x00\x25\x00\x20\x00\x13\x00\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\x0a\x00\x35\x00\x11\x00\x2f\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x11\x00\x11\x00\x1d\x00\x03\x00\x0a\x00\x0a\x00\x12\x00\x22\x00\x23\x00\x4a\x00\x5a\x00\x04\x00\x27\x00\x0b\x00\x11\x00\x0b\x00\x04\x00\x10\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x01\x00\x12\x00\x10\x00\x54\x00\x55\x00\x56\x00\x01\x00\x3f\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x04\x00\x10\x00\x10\x00\xff\xff\x0e\x00\x0f\x00\x10\x00\x14\x00\x19\x00\x12\x00\x1b\x00\x12\x00\x16\x00\x12\x00\x18\x00\x12\x00\x12\x00\x1b\x00\x0c\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\x05\x00\x20\x00\x25\x00\xff\xff\x78\x00\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\x78\x00\x35\x00\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\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x4a\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\xff\xff\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\xff\xff\x35\x00\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\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x4a\x00\xff\xff\xff\xff\x27\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\x12\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x16\x00\x27\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\xff\xff\x1d\x00\xff\xff\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\xff\xff\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x13\x00\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x19\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4c\x00\x0b\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\x10\x00\x27\x00\x54\x00\x55\x00\x56\x00\xff\xff\x16\x00\x59\x00\x18\x00\xff\xff\x30\x00\x1b\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x39\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x45\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\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x13\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x13\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\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\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x11\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x16\x00\x1d\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\xff\xff\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x0c\x00\x25\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\x27\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x25\x00\x35\x00\xff\xff\xff\xff\x38\x00\x39\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x13\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x1d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\x4f\x00\x50\x00\x27\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x2c\x00\x2e\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\x0c\x00\x25\x00\xff\xff\x0f\x00\x10\x00\x38\x00\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\x21\x00\x4f\x00\x50\x00\xff\xff\x18\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x02\x00\x03\x00\xff\xff\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x19\x00\xff\xff\x1b\x00\x27\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0e\x00\x2e\x00\xff\xff\x25\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\x30\x00\x38\x00\x32\x00\x33\x00\x27\x00\x35\x00\x19\x00\x1a\x00\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x21\x00\x32\x00\x33\x00\x19\x00\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\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"#
+
+happyTable :: HappyAddr
+happyTable = HappyA# "\x00\x00\xb6\x00\x24\x00\x12\x02\x10\x01\xb5\x00\xb6\x00\x69\x01\xb5\x00\xb6\x00\xda\xff\x4b\x01\xe8\x00\x53\x00\x11\xff\xe8\x00\x90\x00\x54\x00\x32\x01\x32\x01\xfc\xff\x1b\x01\x78\x00\x79\x00\x36\x01\x6f\x02\x48\x02\x2b\x02\x24\x00\x32\x01\xda\xff\xda\xff\xb7\x00\x45\x01\x1c\x01\xb7\x00\xf7\x01\xb8\x00\xb9\x00\x53\x00\xb8\x00\xb9\x00\xba\x00\x54\x00\xdf\x00\xba\x00\x6a\x02\xae\x00\x7a\x00\xbb\x00\xbb\x01\xfa\x01\xbb\x00\x7b\x00\x77\x00\x59\x00\xea\x00\x59\x02\x33\x01\xea\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x35\x01\x6a\x01\x6b\x01\xda\xff\x78\x00\x79\x00\x13\x01\x14\x01\x5d\x00\x4b\x02\x58\x02\xf9\x01\x4a\x01\x81\x01\x5e\x00\x73\xff\x4b\x01\x5f\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x95\x00\xb5\x00\xb6\x00\xfb\x00\x7a\x00\x6c\x01\x6d\x01\x6e\x01\x5d\x00\x7b\x00\xb5\x00\xb6\x00\x1c\x02\x6d\x02\x5e\x00\x96\x00\xe8\x00\x5f\x00\x60\x00\x6e\x02\xbb\x00\x15\x01\x61\x00\x4c\x01\x62\x00\x63\x00\x64\x00\xfc\xff\xb7\x00\x11\xff\x4d\x01\xe9\x00\xff\xff\xb8\x00\xb9\x00\x61\x02\x28\x01\xb7\x00\xba\x00\x6c\x02\xb5\x00\xb6\x00\xb8\x00\xb9\x00\x60\x00\xbb\x00\x24\x02\xba\x00\x61\x00\xa0\xff\x62\x00\x63\x00\x64\x00\xfc\xff\xbb\x00\xa0\xff\xa0\xff\xa0\xff\xa0\xff\xc9\x00\xea\x00\xa0\xff\xb2\x00\xa0\xff\xc9\x00\xeb\x01\xf3\x00\xb7\x00\x2b\x01\x2c\x01\xb2\x01\xf7\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xa0\xff\xba\x00\xe0\x01\x66\x01\x67\x01\x24\x00\xc9\x00\x9f\xff\xbb\x00\xa0\xff\x60\x02\xdd\x01\xca\x00\x9f\xff\x9f\xff\x9f\xff\x9f\xff\xe8\x00\x62\x02\x9f\xff\x54\x00\x9f\xff\x8d\xff\x42\x02\xb3\x00\xb7\x00\xe8\x00\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x6e\xff\x15\x01\x9f\xff\xba\x00\x13\xff\xf8\x01\xf9\x01\xb2\x00\x24\x00\x9d\x01\xbb\x00\x9f\xff\xa0\xff\xa0\xff\xde\x01\x0f\x01\xe8\x00\xa0\xff\xa0\xff\x53\x00\xa0\xff\x6e\xff\xb7\x00\x54\x00\x9e\x01\xb2\x00\xfc\xff\xb8\x00\xb9\x00\xea\x00\x65\x02\x9f\x01\xba\x00\x1c\x02\xae\x00\xb3\x00\xb2\x00\xaf\x00\xea\x00\xbb\x00\x5d\x02\xb2\x00\xa0\xff\xa0\xff\xa0\xff\x64\x02\x9f\xff\x9f\xff\xb5\x00\xb6\x00\xa0\xff\x9f\xff\x9f\xff\x9f\x01\x9f\xff\xb2\x00\xb2\x00\x17\xff\x1c\x02\x66\x02\xea\x00\xb2\x00\xb2\x00\x44\x02\xb2\x00\x1d\x02\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x47\x02\xb7\x00\x9f\xff\x9f\xff\x9f\xff\xb3\x00\xb8\x00\xb9\x00\x5d\x00\x85\x00\x9f\xff\xba\x00\x24\x00\xa1\x01\x5e\x00\x19\x00\x73\xff\x5f\x00\xbb\x00\x25\x02\xb3\x00\x36\x01\xb5\x00\xb6\x00\xb2\x00\x80\x01\x8f\x01\x54\x00\x91\x01\x1d\x00\x37\x01\x16\xff\x4a\x02\x70\x01\xb2\x00\x1f\x02\xb5\x00\xb6\x00\x1e\x00\x13\xff\x86\x00\x20\x00\xfb\x00\x21\x00\x60\x00\x14\xff\x22\x00\x41\x02\x61\x00\xb7\x00\x62\x00\x63\x00\x64\x00\xb2\x00\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xb2\x00\x87\x00\x93\x01\xb7\x00\x7d\x01\x12\xff\xbb\x00\x43\x02\xb8\x00\xb9\x00\xb5\x00\xb6\x00\x95\x01\xba\x00\x91\x00\xbb\x00\x5b\x02\xb2\x00\xb2\x00\x0d\xff\xbb\x00\xe8\x01\x67\x01\xb7\x00\x3b\x01\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x0f\x02\xb3\x00\x17\xff\xba\x00\x0c\xff\x10\x02\xaa\x01\xb7\x00\xad\x01\x46\x02\xbb\x00\xb2\x00\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xdf\x00\xea\x00\x4f\x02\x73\xff\xb7\x00\x0a\xff\xbb\x00\xae\x01\xaf\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xb2\x00\xb2\x00\xb0\x01\xb2\x00\x29\x02\x09\xff\xbb\x00\xea\x00\xb7\x00\x53\x02\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x04\x02\xb1\x01\x16\xff\xba\x00\x08\xff\x50\x02\xb3\x00\x90\x00\xb7\x00\xeb\x00\xbb\x00\xb5\x00\xb6\x00\xb8\x00\xb9\x00\x55\x02\x14\xff\x91\x00\xba\x00\x08\x02\x07\xff\xb3\x00\xb7\x00\xff\x00\x01\x01\xbb\x00\xb3\x00\xb8\x00\xb9\x00\x3a\x01\xeb\x00\x38\x02\xba\x00\x68\x02\xc0\x01\xb3\x00\x12\xff\x3b\x01\xb7\x00\xbb\x00\xf2\x01\x2e\x01\x15\x02\xb8\x00\xb9\x00\xb5\x00\xb6\x00\x52\x02\xba\x00\x12\x02\x0d\xff\x68\xff\xb6\x00\x74\x00\xd2\xff\xbb\x00\x24\x00\x4a\x00\xe9\x01\x67\x01\x68\xff\x68\xff\x68\xff\x69\x01\x4c\x00\x0c\xff\x68\xff\x53\x00\x68\xff\x68\xff\x13\x02\x54\x00\xb7\x00\x17\x02\xb5\x00\xb6\x00\x19\x02\xb8\x00\xb9\x00\x1a\x02\x75\x00\x68\xff\xba\x00\x34\x02\x0a\xff\x76\x00\x77\x00\x68\xff\x68\xff\xbb\x00\x38\x02\x19\x00\x39\x02\xd0\x00\x35\x02\x68\xff\x68\xff\x36\x02\x68\xff\x09\xff\x70\x01\xb7\x00\x71\x01\x1b\x00\x1c\x00\x1d\x00\xb8\x00\xb9\x00\x65\x01\x66\x01\x67\x01\xba\x00\x68\xff\x08\xff\x1e\x00\x15\x02\x1f\x00\x20\x00\xbb\x00\x21\x00\x16\x02\x68\xff\x22\x00\xdf\x00\x37\x02\x6a\x01\x6b\x01\xbe\x01\xe1\x00\x07\xff\x4a\x00\x68\xff\x68\xff\xb3\x01\xdf\x00\x0e\x01\x0f\x01\x4c\x00\xe0\x00\xe1\x00\x88\x01\xb5\x00\xb6\x00\x24\x00\xb4\x01\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x8a\x00\x78\x00\xa8\x00\x6c\x01\x6d\x01\x6e\x01\x2d\x00\x0c\x01\xb5\x01\x68\xff\x68\xff\x68\xff\x2e\x00\x15\x02\x2f\x00\xb6\x01\xb7\x00\x30\x00\x22\x02\xc5\x01\xc2\x01\xb8\x00\xb9\x00\xb7\x01\xaa\x00\xc3\x01\xba\x00\x32\x00\x4a\x00\xb8\x01\x33\x00\xb9\x01\x7b\x00\xbb\x00\x3e\x01\x4c\x00\x2d\x01\x2e\x01\x3b\x02\x3c\x02\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xba\x01\xda\x01\x24\x00\xa3\x00\xc9\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xc6\x01\x6a\x01\x6b\x01\xc7\x01\x2b\x00\x2c\x00\x2d\x00\x30\x01\x31\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\xcb\x01\x2f\x00\x40\x00\x41\x00\x30\x00\xcd\x01\xa4\x00\xce\x01\xcf\x01\x8b\x00\x72\x00\xa5\x00\xa6\x00\xd0\x01\x32\x00\xa7\x00\xd1\x01\x33\x00\x6c\x01\x6d\x01\x6e\x01\xe2\x00\xa8\x00\xa8\x00\xd2\x01\xe3\x00\xe1\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xd3\x01\xd4\x01\xd6\x01\xd9\x01\xfd\x01\xe4\x00\xea\x01\xec\x01\xee\x01\xaa\x00\xe5\x00\xf3\x01\xf4\x01\xfb\x01\x3f\x01\x42\x01\x56\x01\x7b\x00\x3c\x00\x57\x01\x3d\x00\x3e\x00\x3f\x00\x5b\x01\x5c\x01\x6e\x01\x40\x00\x41\x00\x42\x00\x24\x00\x74\x00\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x76\x01\x82\x01\x83\x01\x84\x01\x2b\x00\x2c\x00\x2d\x00\x86\x01\x19\x00\x8e\x01\x89\x01\x90\x01\x2e\x00\x92\x01\x2f\x00\x94\x01\x96\x01\x30\x00\xa7\x01\xa4\x00\x1b\x00\x1c\x00\x1d\x00\xa8\x01\x76\x00\x77\x00\xac\x01\x32\x00\xb5\x00\xb6\x00\x33\x00\x1e\x00\xcf\x00\x1f\x00\x20\x00\x8a\x01\x21\x00\xd5\x00\xd8\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xdb\x00\xdd\x00\x00\x01\xfe\x00\x02\x01\x03\x01\x09\x01\xb7\x00\x0d\x01\x8b\x01\x0a\x01\x11\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xff\x00\xba\x00\x3c\x00\x23\x01\x3d\x00\x3e\x00\x3f\x00\x06\x02\xbb\x00\x24\x01\x40\x00\x41\x00\x42\x00\x24\x00\x27\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x28\x01\x24\x00\x29\x01\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x31\x01\xb8\x00\xb9\x00\x4f\x01\x50\x01\x2e\x00\xba\x00\x2f\x00\x3c\x01\x54\x00\x30\x00\x34\x01\x31\x00\xbb\x00\xb5\x00\xb6\x00\xb5\x00\xb6\x00\x72\x00\x6b\x00\x32\x00\x6c\x00\x70\x00\x33\x00\x8b\x00\x51\x01\x93\x00\x96\x00\x97\x00\x47\xff\x99\x00\x5a\x01\xc5\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xb7\x00\xb0\x00\xb7\x00\xbb\x00\xc2\x00\xb8\x00\xb9\x00\xb8\x00\xb9\x00\x5b\x01\xba\x00\x5b\x01\xba\x00\xc8\x00\xb5\x00\xb6\x00\x04\x00\xbb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x71\x02\x5d\x02\x5f\x02\x40\x00\x41\x00\x42\x00\x24\x00\xe0\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x60\x02\x68\x02\xea\x00\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x40\x02\xb8\x00\xb9\x00\x41\x02\x00\x00\x2e\x00\xba\x00\x2f\x00\x4a\x02\x4e\x02\x30\x00\x51\x02\x31\x00\xbb\x00\xf5\x00\xb6\x00\xb5\x00\xb6\x00\x52\x02\x55\x02\x32\x00\x5b\x02\x04\x02\x33\x00\x07\x02\xe2\x01\x08\x02\x0a\x02\x0b\x02\xf6\x00\x15\x02\x1f\x02\xc7\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xf7\x00\x1c\x02\xb7\x00\x21\x02\x22\x02\xf8\x00\xf9\x00\xb8\x00\xb9\x00\xfa\x00\xba\x00\x27\x02\xba\x00\x2c\x02\x2d\x02\x2e\x02\x2f\x02\xfb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x30\x02\x3d\x02\xc2\x01\x40\x00\x41\x00\x42\x00\x24\x00\xbe\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xea\x00\xcb\x01\xcd\x01\xdf\x00\x2b\x00\x2c\x00\x2d\x00\xe3\x01\x19\x00\xe4\x01\xd4\x00\xd9\x01\x2e\x00\xe6\x01\x2f\x00\xe7\x01\xe8\x01\x30\x00\xf7\x01\x31\x00\x1b\x00\x1c\x00\x1d\x00\x01\x02\x02\x02\x00\x02\x42\x01\x32\x00\xb5\x00\xb6\x00\x33\x00\x1e\x00\x41\x01\x1f\x00\x20\x00\x45\x01\x21\x00\x47\x01\x49\x01\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x48\x01\x4a\x01\x53\x01\xd8\x01\x52\x01\x59\x01\x5e\x01\xb7\x00\x5f\x01\x8c\x01\x70\x01\x60\x01\xb8\x00\xb9\x00\x61\x01\x62\x01\x73\x01\xba\x00\x3c\x00\x8d\x00\x3d\x00\x3e\x00\x3f\x00\x65\x01\xbb\x00\x79\x01\x40\x00\x41\x00\x42\x00\x24\x00\x7a\x01\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x80\x01\x78\x01\x88\x01\x98\x01\x2b\x00\x2c\x00\x2d\x00\xa4\x01\x19\x00\x9c\x01\xd7\x00\xa0\x01\x2e\x00\x7d\x01\x2f\x00\xa2\x01\xa3\x01\x30\x00\xa6\x01\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x00\x00\xcd\x00\x32\x00\xd7\x00\xda\x00\x33\x00\x1e\x00\xf1\x01\x1f\x00\x20\x00\xdf\x00\x21\x00\xc4\xff\xdd\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xc5\xff\xf2\x00\xb7\x00\x00\x00\xdf\x00\xdf\x00\x16\x01\xb8\x00\xb9\x00\x8d\x01\x0d\x01\x65\x00\xba\x00\x1d\x01\x2d\x01\x39\x01\x66\x00\x3a\x01\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x68\x00\x69\x00\x6e\x00\x40\x00\x41\x00\x42\x00\x24\x00\x6a\x00\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x6b\x00\x6f\x00\x70\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x72\x00\x19\x00\x81\x00\xec\x00\x82\x00\x2e\x00\x83\x00\x2f\x00\x84\x00\x85\x00\x30\x00\x8d\x00\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x8e\x00\xb2\x00\x32\x00\x00\x00\xff\xff\x33\x00\x1e\x00\xf2\x01\x1f\x00\x20\x00\xff\xff\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xed\x00\x00\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\x00\x00\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x19\x00\x00\x00\xee\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x03\x02\x1f\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xef\x00\x00\x00\x00\x00\xba\x00\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\xf0\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x00\x00\x2e\x00\xba\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbb\x00\xb5\x00\xb6\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xff\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xb7\x00\x00\x00\xb7\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xb8\x00\xb9\x00\x00\x00\xba\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\x00\x00\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x18\x02\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x19\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x3c\x00\x72\x02\x3d\x00\x3e\x00\x3f\x00\x00\x00\x2d\x00\x1d\x00\x40\x00\x41\x00\x42\x00\x00\x00\x2e\x00\x43\x00\x2f\x00\x00\x00\x1e\x00\x30\x00\x0b\x02\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x0c\x02\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x02\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x6a\x02\x63\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x64\x02\x1d\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x0f\x02\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x3e\x02\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x4c\x02\x18\x01\x00\x00\x3d\x02\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x28\x02\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x31\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x56\x02\x18\x01\x00\x00\xc4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x32\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xbc\x01\x18\x01\x00\x00\xd5\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x33\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xbc\x01\xbf\x01\x00\x00\xe4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x34\x02\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x98\x01\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xc8\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x99\x01\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xf5\x01\x18\x01\x00\x00\xa4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x00\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x74\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x01\x44\x00\x45\x00\x46\x00\x00\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x47\x00\x7e\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\x1a\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x80\x00\x00\x00\x1d\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x0b\x02\x20\x00\x7e\x00\x21\x00\x00\x00\x00\x00\x22\x00\x57\x02\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\xee\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x78\x00\xa8\x00\x00\x00\xb7\x00\x00\x00\xac\x00\xad\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x7f\x00\x80\x00\xba\x00\x1e\x01\x44\x00\x45\x00\x46\x00\x00\x00\xa9\x00\xbb\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x47\x00\x7e\x00\x00\x00\x48\x00\x49\x00\x7b\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x16\x01\x7f\x00\x80\x00\x00\x00\x2f\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xfc\x01\x18\x01\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x1f\x01\x44\x00\x45\x00\x46\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x20\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x80\x00\x00\x00\x00\x00\x00\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x21\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x22\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x8e\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x8f\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\x9e\x00\x00\x00\x9f\x00\xba\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x72\x00\xbb\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x25\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\xa1\x00\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x26\x01\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x6b\x02\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x7e\x01\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x89\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x06\x01\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x45\x02\x1e\x00\x00\x00\x1f\x00\x20\x00\x8a\x01\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x24\x02\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x28\x02\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xdb\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xdd\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xfe\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x3e\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x53\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x54\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x55\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x62\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x73\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x74\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x75\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x7a\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x7b\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x85\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd2\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd3\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xa6\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xab\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xcd\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xce\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd1\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd2\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd3\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd4\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd7\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xe6\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9a\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xf0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xf2\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x66\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x92\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x98\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9a\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9c\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9d\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbc\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbd\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbe\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbf\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc1\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc3\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc5\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc7\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xcb\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x1a\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x00\x00\x1e\x00\x22\x00\xa9\x01\x20\x00\x1d\x00\x21\x00\x78\x00\xa8\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x16\x01\xda\x00\x20\x00\x19\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x17\x01\x18\x01\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x9b\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\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 = Happy_Data_Array.array (3, 257) [
+	(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)
+	]
+
+happy_n_terms = 121 :: Int
+happy_n_nonterms = 76 :: Int
+
+happyReduce_3 = happySpecReduce_0  0# happyReduction_3
+happyReduction_3  =  happyIn6
+		 ([]
+	)
+
+happyReduce_4 = happySpecReduce_2  0# happyReduction_4
+happyReduction_4 happy_x_2
+	happy_x_1
+	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_5 = happySpecReduce_2  0# happyReduction_5
+happyReduction_5 happy_x_2
+	happy_x_1
+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (map RealDecl happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_6 = happyReduce 4# 0# happyReduction_6
+happyReduction_6 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	case happyOut6 happy_x_4 of { happy_var_4 -> 
+	happyIn6
+		 (RealDecl (PInclude happy_var_2) : happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_7 = happySpecReduce_1  1# happyReduction_7
+happyReduction_7 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (happy_var_1
+	)}
+
+happyReduce_8 = happySpecReduce_1  1# happyReduction_8
+happyReduction_8 happy_x_1
+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl (DataDecl happy_var_1)
+	)}
+
+happyReduce_9 = happySpecReduce_1  1# happyReduction_9
+happyReduction_9 happy_x_1
+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_10 = happyReduce 5# 1# happyReduction_10
+happyReduction_10 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn7
+		 (RealDecl (Freeze happy_var_3 happy_var_4 [] happy_var_2)
+	) `HappyStk` happyRest}}}
+
+happyReduce_11 = happyReduce 4# 1# happyReduction_11
+happyReduction_11 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut65 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_12 = happyReduce 4# 1# happyReduction_12
+happyReduction_12 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut66 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PDoUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_13 = happyReduce 4# 1# happyReduction_13
+happyReduction_13 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut67 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PIdiom happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_14 = happyReduce 4# 1# happyReduction_14
+happyReduction_14 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PParams happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_15 = happyReduce 4# 1# happyReduction_15
+happyReduction_15 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut69 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PNamespace happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_16 = happySpecReduce_1  1# happyReduction_16
+happyReduction_16 happy_x_1
+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_17 = happyReduce 6# 1# happyReduction_17
+happyReduction_17 (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 happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut40 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	happyIn7
+		 (RealDecl (SynDef happy_var_2 happy_var_3 happy_var_5)
+	) `HappyStk` happyRest}}}
+
+happyReduce_18 = happySpecReduce_2  1# happyReduction_18
+happyReduction_18 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CInclude happy_var_2)
+	)}
+
+happyReduce_19 = happySpecReduce_2  1# happyReduction_19
+happyReduction_19 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CLib happy_var_2)
+	)}
+
+happyReduce_20 = happyReduce 5# 2# happyReduction_20
+happyReduction_20 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn8
+		 (Transform happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_21 = happyReduce 7# 3# happyReduction_21
+happyReduction_21 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	case happyOut15 happy_x_4 of { happy_var_4 -> 
+	case happyOut80 happy_x_5 of { happy_var_5 -> 
+	case happyOut79 happy_x_6 of { happy_var_6 -> 
+	happyIn9
+		 (FunType happy_var_1 happy_var_3 (nub happy_var_4) happy_var_5 happy_var_6
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_22 = happySpecReduce_3  3# happyReduction_22
+happyReduction_22 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	happyIn9
+		 (ProofScript happy_var_1 happy_var_2
+	)}}
+
+happyReduce_23 = happyReduce 9# 3# happyReduction_23
+happyReduction_23 (happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	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 happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	case happyOut80 happy_x_8 of { happy_var_8 -> 
+	case happyOut79 happy_x_9 of { happy_var_9 -> 
+	happyIn9
+		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}}}}
+
+happyReduce_24 = happyReduce 10# 3# happyReduction_24
+happyReduction_24 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	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 happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_7 of { happy_var_7 -> 
+	case happyOut80 happy_x_9 of { happy_var_9 -> 
+	case happyOut79 happy_x_10 of { happy_var_10 -> 
+	happyIn9
+		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_25 = happyReduce 8# 3# happyReduction_25
+happyReduction_25 (happy_x_8 `HappyStk`
+	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 happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut15 happy_x_5 of { happy_var_5 -> 
+	case happyOut80 happy_x_7 of { happy_var_7 -> 
+	case happyOut79 happy_x_8 of { happy_var_8 -> 
+	happyIn9
+		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_5)
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_26 = happyReduce 5# 3# happyReduction_26
+happyReduction_26 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn9
+		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
+	) `HappyStk` happyRest}}
+
+happyReduce_27 = happyReduce 8# 3# happyReduction_27
+happyReduction_27 (happy_x_8 `HappyStk`
+	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 happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_7 of { happy_var_7 -> 
+	happyIn9
+		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}
+
+happyReduce_28 = happyReduce 7# 3# happyReduction_28
+happyReduction_28 (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 happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	happyIn9
+		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_29 = happySpecReduce_1  4# happyReduction_29
+happyReduction_29 happy_x_1
+	 =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_30 = happySpecReduce_1  4# happyReduction_30
+happyReduction_30 happy_x_1
+	 =  happyIn10
+		 (Vis Private
+	)
+
+happyReduce_31 = happySpecReduce_1  4# happyReduction_31
+happyReduction_31 happy_x_1
+	 =  happyIn10
+		 (Vis Abstract
+	)
+
+happyReduce_32 = happySpecReduce_0  4# happyReduction_32
+happyReduction_32  =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_33 = happySpecReduce_1  5# happyReduction_33
+happyReduction_33 happy_x_1
+	 =  happyIn11
+		 (False
+	)
+
+happyReduce_34 = happySpecReduce_2  5# happyReduction_34
+happyReduction_34 happy_x_2
+	happy_x_1
+	 =  happyIn11
+		 (True
+	)
+
+happyReduce_35 = happySpecReduce_3  6# happyReduction_35
+happyReduction_35 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut12 happy_x_3 of { happy_var_3 -> 
+	happyIn12
+		 (happy_var_2:happy_var_3
+	)}}
+
+happyReduce_36 = happySpecReduce_0  6# happyReduction_36
+happyReduction_36  =  happyIn12
+		 ([]
+	)
+
+happyReduce_37 = happySpecReduce_1  7# happyReduction_37
+happyReduction_37 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_38 = happySpecReduce_1  7# happyReduction_38
+happyReduction_38 happy_x_1
+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_39 = happySpecReduce_3  7# happyReduction_39
+happyReduction_39 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn13
+		 (happy_var_2
+	)}
+
+happyReduce_40 = happyReduce 5# 7# happyReduction_40
+happyReduction_40 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut58 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn13
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_41 = happySpecReduce_2  8# happyReduction_41
+happyReduction_41 happy_x_2
+	happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	case happyOut14 happy_x_2 of { happy_var_2 -> 
+	happyIn14
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_42 = happySpecReduce_1  8# happyReduction_42
+happyReduction_42 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn14
+		 ([happy_var_1]
+	)}
+
+happyReduce_43 = happySpecReduce_1  9# happyReduction_43
+happyReduction_43 happy_x_1
+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
+	happyIn15
+		 (happy_var_1
+	)}
+
+happyReduce_44 = happySpecReduce_3  9# happyReduction_44
+happyReduction_44 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn15
+		 (happy_var_2
+	)}
+
+happyReduce_45 = happySpecReduce_0  10# happyReduction_45
+happyReduction_45  =  happyIn16
+		 ([]
+	)
+
+happyReduce_46 = happySpecReduce_2  10# happyReduction_46
+happyReduction_46 happy_x_2
+	happy_x_1
+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
+	case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn16
+		 (happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_47 = happySpecReduce_1  11# happyReduction_47
+happyReduction_47 happy_x_1
+	 =  happyIn17
+		 ([NoCG]
+	)
+
+happyReduce_48 = happySpecReduce_1  11# happyReduction_48
+happyReduction_48 happy_x_1
+	 =  happyIn17
+		 ([CGEval, Inline]
+	)
+
+happyReduce_49 = happyReduce 4# 11# happyReduction_49
+happyReduction_49 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn17
+		 ([CGSpec happy_var_3]
+	) `HappyStk` happyRest}
+
+happyReduce_50 = happySpecReduce_1  11# happyReduction_50
+happyReduction_50 happy_x_1
+	 =  happyIn17
+		 ([CGSpec []]
+	)
+
+happyReduce_51 = happySpecReduce_1  11# happyReduction_51
+happyReduction_51 happy_x_1
+	 =  happyIn17
+		 ([Inline]
+	)
+
+happyReduce_52 = happySpecReduce_2  11# happyReduction_52
+happyReduction_52 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn17
+		 ([CExport happy_var_2]
+	)}
+
+happyReduce_53 = happyReduce 4# 12# happyReduction_53
+happyReduction_53 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut21 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn18
+		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
+	) `HappyStk` happyRest}}}
+
+happyReduce_54 = happySpecReduce_1  13# happyReduction_54
+happyReduction_54 happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	happyIn19
+		 ([happy_var_1]
+	)}
+
+happyReduce_55 = happySpecReduce_3  13# happyReduction_55
+happyReduction_55 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn19
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_56 = happySpecReduce_1  14# happyReduction_56
+happyReduction_56 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
+	happyIn20
+		 (happy_var_1
+	)}
+
+happyReduce_57 = happySpecReduce_1  14# happyReduction_57
+happyReduction_57 happy_x_1
+	 =  happyIn20
+		 ("-"
+	)
+
+happyReduce_58 = happySpecReduce_1  14# happyReduction_58
+happyReduction_58 happy_x_1
+	 =  happyIn20
+		 ("<"
+	)
+
+happyReduce_59 = happySpecReduce_1  14# happyReduction_59
+happyReduction_59 happy_x_1
+	 =  happyIn20
+		 (">"
+	)
+
+happyReduce_60 = happySpecReduce_1  15# happyReduction_60
+happyReduction_60 happy_x_1
+	 =  happyIn21
+		 (LeftAssoc
+	)
+
+happyReduce_61 = happySpecReduce_1  15# happyReduction_61
+happyReduction_61 happy_x_1
+	 =  happyIn21
+		 (RightAssoc
+	)
+
+happyReduce_62 = happySpecReduce_1  15# happyReduction_62
+happyReduction_62 happy_x_1
+	 =  happyIn21
+		 (NonAssoc
+	)
+
+happyReduce_63 = happyReduce 4# 16# happyReduction_63
+happyReduction_63 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut23 happy_x_3 of { happy_var_3 -> 
+	happyIn22
+		 (LatexDefs happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_64 = happySpecReduce_3  17# happyReduction_64
+happyReduction_64 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	happyIn23
+		 ([(happy_var_1,happy_var_3)]
+	)}}
+
+happyReduce_65 = happyReduce 5# 17# happyReduction_65
+happyReduction_65 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	case happyOut23 happy_x_5 of { happy_var_5 -> 
+	happyIn23
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_66 = happySpecReduce_2  18# happyReduction_66
+happyReduction_66 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn24
+		 ((happy_var_1, happy_var_2)
+	)}}
+
+happyReduce_67 = happySpecReduce_0  19# happyReduction_67
+happyReduction_67  =  happyIn25
+		 ([]
+	)
+
+happyReduce_68 = happySpecReduce_2  19# happyReduction_68
+happyReduction_68 happy_x_2
+	happy_x_1
+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn25
+		 ((happy_var_1,Nothing):happy_var_2
+	)}}
+
+happyReduce_69 = happyReduce 5# 19# happyReduction_69
+happyReduction_69 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut25 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((RVar happy_var_4 happy_var_5 happy_var_1, Just happy_var_1):happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_70 = happyReduce 5# 19# happyReduction_70
+happyReduction_70 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut25 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((happy_var_3, Just happy_var_1):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_71 = happyReduce 6# 20# happyReduction_71
+happyReduction_71 (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 happyOut28 happy_x_2 of { happy_var_2 -> 
+	case happyOut31 happy_x_3 of { happy_var_3 -> 
+	case happyOut27 happy_x_4 of { happy_var_4 -> 
+	case happyOut80 happy_x_5 of { happy_var_5 -> 
+	case happyOut79 happy_x_6 of { happy_var_6 -> 
+	happyIn26
+		 (mkDatatype happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_72 = happySpecReduce_3  21# happyReduction_72
+happyReduction_72 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
+	case happyOut73 happy_x_2 of { happy_var_2 -> 
+	happyIn27
+		 (Right (happy_var_1,happy_var_2)
+	)}}
+
+happyReduce_73 = happySpecReduce_3  21# happyReduction_73
+happyReduction_73 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
+	happyIn27
+		 (Left happy_var_2
+	)}
+
+happyReduce_74 = happySpecReduce_3  21# happyReduction_74
+happyReduction_74 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn27
+		 (Left (RConst happy_var_2 happy_var_3 TYPE)
+	)}}
+
+happyReduce_75 = happySpecReduce_0  22# happyReduction_75
+happyReduction_75  =  happyIn28
+		 ([]
+	)
+
+happyReduce_76 = happySpecReduce_3  22# happyReduction_76
+happyReduction_76 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
+	happyIn28
+		 (happy_var_2
+	)}
+
+happyReduce_77 = happySpecReduce_1  23# happyReduction_77
+happyReduction_77 happy_x_1
+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
+	happyIn29
+		 ([happy_var_1]
+	)}
+
+happyReduce_78 = happySpecReduce_3  23# happyReduction_78
+happyReduction_78 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
+	case happyOut29 happy_x_3 of { happy_var_3 -> 
+	happyIn29
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_79 = happySpecReduce_1  24# happyReduction_79
+happyReduction_79 happy_x_1
+	 =  happyIn30
+		 (NoElim
+	)
+
+happyReduce_80 = happySpecReduce_1  24# happyReduction_80
+happyReduction_80 happy_x_1
+	 =  happyIn30
+		 (Collapsible
+	)
+
+happyReduce_81 = happySpecReduce_1  25# happyReduction_81
+happyReduction_81 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
+	happyIn31
+		 (happy_var_1
+	)}
+
+happyReduce_82 = happySpecReduce_3  25# happyReduction_82
+happyReduction_82 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_2 of { happy_var_2 -> 
+	happyIn31
+		 (useropFn happy_var_2
+	)}
+
+happyReduce_83 = happyReduce 4# 26# happyReduction_83
+happyReduction_83 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	case happyOut56 happy_x_4 of { happy_var_4 -> 
+	happyIn32
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_84 = happyReduce 5# 26# happyReduction_84
+happyReduction_84 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut42 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn32
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_85 = happySpecReduce_3  26# happyReduction_85
+happyReduction_85 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_86 = happySpecReduce_3  26# happyReduction_86
+happyReduction_86 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_87 = happySpecReduce_1  26# happyReduction_87
+happyReduction_87 happy_x_1
+	 =  happyIn32
+		 (RPlaceholder
+	)
+
+happyReduce_88 = happySpecReduce_3  26# happyReduction_88
+happyReduction_88 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
+	)}}
+
+happyReduce_89 = happySpecReduce_3  26# happyReduction_89
+happyReduction_89 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
+	)}}
+
+happyReduce_90 = happySpecReduce_1  27# happyReduction_90
+happyReduction_90 happy_x_1
+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
+	happyIn33
+		 (happy_var_1
+	)}
+
+happyReduce_91 = happySpecReduce_3  27# happyReduction_91
+happyReduction_91 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn33
+		 (happy_var_2
+	)}
+
+happyReduce_92 = happyReduce 4# 27# happyReduction_92
+happyReduction_92 (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 happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	case happyOut56 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_93 = happyReduce 5# 27# happyReduction_93
+happyReduction_93 (happy_x_5 `HappyStk`
+	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 happyOut42 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn33
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_94 = happyReduce 4# 27# happyReduction_94
+happyReduction_94 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy")) RPlaceholder) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_95 = happyReduce 4# 27# happyReduction_95
+happyReduction_95 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (doBind Lam happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_96 = happyReduce 4# 27# happyReduction_96
+happyReduction_96 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut41 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (doLetBind happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_97 = happySpecReduce_1  27# happyReduction_97
+happyReduction_97 happy_x_1
+	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
+	happyIn33
+		 (happy_var_1
+	)}
+
+happyReduce_98 = happyReduce 8# 27# happyReduction_98
+happyReduction_98 (happy_x_8 `HappyStk`
+	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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut33 happy_x_6 of { happy_var_6 -> 
+	case happyOut80 happy_x_7 of { happy_var_7 -> 
+	case happyOut79 happy_x_8 of { happy_var_8 -> 
+	happyIn33
+		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else")) [happy_var_2,happy_var_4,happy_var_6]
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_99 = happySpecReduce_2  28# happyReduction_99
+happyReduction_99 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	happyIn34
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_100 = happyReduce 4# 28# happyReduction_100
+happyReduction_100 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_101 = happySpecReduce_3  29# happyReduction_101
+happyReduction_101 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
+	case happyOut35 happy_x_3 of { happy_var_3 -> 
+	happyIn35
+		 (happy_var_1 ++ happy_var_3
+	)}}
+
+happyReduce_102 = happySpecReduce_1  29# happyReduction_102
+happyReduction_102 happy_x_1
+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
+	happyIn35
+		 (happy_var_1
+	)}
+
+happyReduce_103 = happySpecReduce_3  30# happyReduction_103
+happyReduction_103 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	happyIn36
+		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
+	)}}
+
+happyReduce_104 = happySpecReduce_1  31# happyReduction_104
+happyReduction_104 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn37
+		 ([happy_var_1]
+	)}
+
+happyReduce_105 = happySpecReduce_3  31# happyReduction_105
+happyReduction_105 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut37 happy_x_3 of { happy_var_3 -> 
+	happyIn37
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_106 = happySpecReduce_2  32# happyReduction_106
+happyReduction_106 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	happyIn38
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_107 = happySpecReduce_1  32# happyReduction_107
+happyReduction_107 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn38
+		 ([(happy_var_1, 0)]
+	)}
+
+happyReduce_108 = happySpecReduce_3  32# happyReduction_108
+happyReduction_108 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn38
+		 ((happy_var_1,0):happy_var_3
+	)}}
+
+happyReduce_109 = happyReduce 4# 32# happyReduction_109
+happyReduction_109 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut38 happy_x_4 of { happy_var_4 -> 
+	happyIn38
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_110 = happySpecReduce_1  33# happyReduction_110
+happyReduction_110 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	happyIn39
+		 ([happy_var_1]
+	)}
+
+happyReduce_111 = happySpecReduce_3  33# happyReduction_111
+happyReduction_111 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut37 happy_x_3 of { happy_var_3 -> 
+	happyIn39
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_112 = happySpecReduce_0  34# happyReduction_112
+happyReduction_112  =  happyIn40
+		 ([]
+	)
+
+happyReduce_113 = happySpecReduce_2  34# happyReduction_113
+happyReduction_113 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut40 happy_x_2 of { happy_var_2 -> 
+	happyIn40
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_114 = happyReduce 4# 35# happyReduction_114
+happyReduction_114 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn41
+		 ([(happy_var_1,happy_var_2,happy_var_4)]
+	) `HappyStk` happyRest}}}
+
+happyReduce_115 = happyReduce 6# 35# happyReduction_115
+happyReduction_115 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut41 happy_x_6 of { happy_var_6 -> 
+	happyIn41
+		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_116 = happySpecReduce_3  36# happyReduction_116
+happyReduction_116 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn42
+		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1)
+	)}}}
+
+happyReduce_117 = happySpecReduce_3  36# happyReduction_117
+happyReduction_117 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn42
+		 ((happy_var_1, happy_var_3)
+	)}}
+
+happyReduce_118 = happyReduce 4# 37# happyReduction_118
+happyReduction_118 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn43
+		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_119 = happyReduce 5# 37# happyReduction_119
+happyReduction_119 (happy_x_5 `HappyStk`
+	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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_120 = happyReduce 5# 37# happyReduction_120
+happyReduction_120 (happy_x_5 `HappyStk`
+	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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) [happy_var_1, happy_var_3]
+	) `HappyStk` happyRest}}}}
+
+happyReduce_121 = happyReduce 5# 37# happyReduction_121
+happyReduction_121 (happy_x_5 `HappyStk`
+	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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_122 = happyReduce 5# 37# happyReduction_122
+happyReduction_122 (happy_x_5 `HappyStk`
+	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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_123 = happyReduce 5# 37# happyReduction_123
+happyReduction_123 (happy_x_5 `HappyStk`
+	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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn43
+		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_124 = happySpecReduce_1  37# happyReduction_124
+happyReduction_124 happy_x_1
+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
+	happyIn43
+		 (happy_var_1
+	)}
+
+happyReduce_125 = happyReduce 5# 37# happyReduction_125
+happyReduction_125 (happy_x_5 `HappyStk`
+	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 happyOut56 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_126 = happyReduce 5# 38# happyReduction_126
+happyReduction_126 (happy_x_5 `HappyStk`
+	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 happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_127 = happyReduce 6# 39# happyReduction_127
+happyReduction_127 (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 happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_128 = happyReduce 6# 39# happyReduction_128
+happyReduction_128 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_129 = happyReduce 6# 39# happyReduction_129
+happyReduction_129 (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 happyOut46 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_130 = happyReduce 6# 39# happyReduction_130
+happyReduction_130 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut46 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_131 = happyReduce 6# 39# happyReduction_131
+happyReduction_131 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}
+
+happyReduce_132 = happyReduce 6# 39# happyReduction_132
+happyReduction_132 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex [] happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}
+
+happyReduce_133 = happyReduce 6# 39# happyReduction_133
+happyReduction_133 (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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex [] (RVar happy_var_4 happy_var_5 (MN "X" 0))) happy_var_3)
+	) `HappyStk` happyRest}}}
+
+happyReduce_134 = happyReduce 5# 39# happyReduction_134
+happyReduction_134 (happy_x_5 `HappyStk`
+	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 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (RBind (MN "X" 1) (Lam RPlaceholder)
+                    (RBind (MN "X" 2) (Pi Ex [] (RVar happy_var_3 happy_var_4 (MN "X" 0)))
+                       (RVar happy_var_3 happy_var_4 (MN "X" 1))))
+	) `HappyStk` happyRest}}
+
+happyReduce_135 = happyReduce 5# 39# 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 happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                   (RBind (MN "X" 1) (Lam RPlaceholder)
+                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair"))
+                                    [RVar happy_var_3 happy_var_4 (MN "X" 0),
+                                     RVar happy_var_3 happy_var_4 (MN "X" 1)]))
+	) `HappyStk` happyRest}}
+
+happyReduce_136 = happyReduce 6# 39# 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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
+                                    [happy_var_2,
+                                     RVar happy_var_4 happy_var_5 (MN "X" 0)])
+	) `HappyStk` happyRest}}}
+
+happyReduce_137 = happyReduce 6# 39# happyReduction_137
+happyReduction_137 (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 happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
+                                    [RVar happy_var_4 happy_var_5 (MN "X" 0), happy_var_3])
+	) `HappyStk` happyRest}}}
+
+happyReduce_138 = happySpecReduce_1  40# happyReduction_138
+happyReduction_138 happy_x_1
+	 =  happyIn46
+		 ("<"
+	)
+
+happyReduce_139 = happySpecReduce_1  40# happyReduction_139
+happyReduction_139 happy_x_1
+	 =  happyIn46
+		 (">"
+	)
+
+happyReduce_140 = happySpecReduce_0  41# happyReduction_140
+happyReduction_140  =  happyIn47
+		 (RPlaceholder
+	)
+
+happyReduce_141 = happySpecReduce_2  41# happyReduction_141
+happyReduction_141 happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn47
+		 (happy_var_2
+	)}
+
+happyReduce_142 = happySpecReduce_0  42# happyReduction_142
+happyReduction_142  =  happyIn48
+		 (RPlaceholder
+	)
+
+happyReduce_143 = happySpecReduce_2  42# happyReduction_143
+happyReduction_143 happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn48
+		 (happy_var_2
+	)}
+
+happyReduce_144 = happyReduce 5# 43# happyReduction_144
+happyReduction_144 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut39 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut49 happy_x_5 of { happy_var_5 -> 
+	happyIn49
+		 (doBind (Pi Im []) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_145 = happySpecReduce_1  43# happyReduction_145
+happyReduction_145 happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	happyIn49
+		 (happy_var_1
+	)}
+
+happyReduce_146 = happySpecReduce_3  44# happyReduction_146
+happyReduction_146 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn50
+		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
+	)}}
+
+happyReduce_147 = happyReduce 6# 44# happyReduction_147
+happyReduction_147 (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 happyOut35 happy_x_2 of { happy_var_2 -> 
+	case happyOut52 happy_x_4 of { happy_var_4 -> 
+	case happyOut50 happy_x_6 of { happy_var_6 -> 
+	happyIn50
+		 (doBind (Pi Ex happy_var_4) happy_var_2 happy_var_6
+	) `HappyStk` happyRest}}}
+
+happyReduce_148 = happyReduce 5# 44# happyReduction_148
+happyReduction_148 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (doBind (Pi Ex [Lazy]) happy_var_2 happy_var_5
+	) `HappyStk` happyRest}}
+
+happyReduce_149 = happySpecReduce_3  44# happyReduction_149
+happyReduction_149 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn50
+		 (bracket happy_var_2
+	)}
+
+happyReduce_150 = happyReduce 7# 44# happyReduction_150
+happyReduction_150 (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 happyOut50 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_4 of { happy_var_4 -> 
+	case happyOut80 happy_x_5 of { happy_var_5 -> 
+	case happyOut79 happy_x_6 of { happy_var_6 -> 
+	happyIn50
+		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_151 = happySpecReduce_1  44# happyReduction_151
+happyReduction_151 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (happy_var_1
+	)}
+
+happyReduce_152 = happySpecReduce_3  44# happyReduction_152
+happyReduction_152 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn50
+		 (happy_var_2
+	)}
+
+happyReduce_153 = happyReduce 5# 44# happyReduction_153
+happyReduction_153 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_154 = happyReduce 5# 44# happyReduction_154
+happyReduction_154 (happy_x_5 `HappyStk`
+	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 happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_155 = happySpecReduce_1  44# happyReduction_155
+happyReduction_155 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (happy_var_1
+	)}
+
+happyReduce_156 = happySpecReduce_1  45# happyReduction_156
+happyReduction_156 happy_x_1
+	 =  happyIn51
+		 (Lazy
+	)
+
+happyReduce_157 = happySpecReduce_1  45# happyReduction_157
+happyReduction_157 happy_x_1
+	 =  happyIn51
+		 (Static
+	)
+
+happyReduce_158 = happySpecReduce_3  46# happyReduction_158
+happyReduction_158 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut53 happy_x_2 of { happy_var_2 -> 
+	happyIn52
+		 (happy_var_2
+	)}
+
+happyReduce_159 = happySpecReduce_0  46# happyReduction_159
+happyReduction_159  =  happyIn52
+		 ([]
+	)
+
+happyReduce_160 = happySpecReduce_3  47# happyReduction_160
+happyReduction_160 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOut53 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_161 = happySpecReduce_1  47# happyReduction_161
+happyReduction_161 happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 ([happy_var_1]
+	)}
+
+happyReduce_162 = happyReduce 8# 48# happyReduction_162
+happyReduction_162 (happy_x_8 `HappyStk`
+	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 happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	case happyOut80 happy_x_7 of { happy_var_7 -> 
+	case happyOut79 happy_x_8 of { happy_var_8 -> 
+	happyIn54
+		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_163 = happySpecReduce_3  49# happyReduction_163
+happyReduction_163 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn55
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_164 = happySpecReduce_3  49# happyReduction_164
+happyReduction_164 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut55 happy_x_3 of { happy_var_3 -> 
+	happyIn55
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_165 = happySpecReduce_3  50# happyReduction_165
+happyReduction_165 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (RVar happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_166 = happySpecReduce_3  50# happyReduction_166
+happyReduction_166 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (RReturn happy_var_2 happy_var_3
+	)}}
+
+happyReduce_167 = happySpecReduce_3  50# happyReduction_167
+happyReduction_167 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn56
+		 (bracket happy_var_2
+	)}
+
+happyReduce_168 = happySpecReduce_2  50# happyReduction_168
+happyReduction_168 happy_x_2
+	happy_x_1
+	 =  case happyOut56 happy_x_2 of { happy_var_2 -> 
+	happyIn56
+		 (RPure happy_var_2
+	)}
+
+happyReduce_169 = happySpecReduce_1  50# happyReduction_169
+happyReduction_169 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
+	happyIn56
+		 (RMetavar happy_var_1
+	)}
+
+happyReduce_170 = happyReduce 4# 50# happyReduction_170
+happyReduction_170 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn56
+		 (RExpVar happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_171 = happySpecReduce_3  50# happyReduction_171
+happyReduction_171 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_172 = happySpecReduce_1  50# happyReduction_172
+happyReduction_172 happy_x_1
+	 =  happyIn56
+		 (RRefl
+	)
+
+happyReduce_173 = happySpecReduce_3  50# happyReduction_173
+happyReduction_173 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
+	)}}
+
+happyReduce_174 = happySpecReduce_3  50# happyReduction_174
+happyReduction_174 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
+	)}}
+
+happyReduce_175 = happySpecReduce_1  50# happyReduction_175
+happyReduction_175 happy_x_1
+	 =  happyIn56
+		 (RPlaceholder
+	)
+
+happyReduce_176 = happySpecReduce_1  50# happyReduction_176
+happyReduction_176 happy_x_1
+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
+	happyIn56
+		 (RDo happy_var_1
+	)}
+
+happyReduce_177 = happySpecReduce_3  50# happyReduction_177
+happyReduction_177 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn56
+		 (RIdiom happy_var_2
+	)}
+
+happyReduce_178 = happyReduce 5# 50# happyReduction_178
+happyReduction_178 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut58 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn56
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_179 = happySpecReduce_1  50# happyReduction_179
+happyReduction_179 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn56
+		 (happy_var_1
+	)}
+
+happyReduce_180 = happySpecReduce_1  50# happyReduction_180
+happyReduction_180 happy_x_1
+	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
+	happyIn56
+		 (happy_var_1
+	)}
+
+happyReduce_181 = happySpecReduce_1  50# happyReduction_181
+happyReduction_181 happy_x_1
+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
+	happyIn56
+		 (happy_var_1
+	)}
+
+happyReduce_182 = happyReduce 7# 51# happyReduction_182
+happyReduction_182 (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 happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut80 happy_x_6 of { happy_var_6 -> 
+	case happyOut79 happy_x_7 of { happy_var_7 -> 
+	happyIn57
+		 (RApp happy_var_6 happy_var_7 (RApp happy_var_6 happy_var_7 (RVar happy_var_6 happy_var_7 (UN "Exists")) happy_var_2) happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_183 = happyReduce 5# 51# happyReduction_183
+happyReduction_183 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut80 happy_x_4 of { happy_var_4 -> 
+	case happyOut79 happy_x_5 of { happy_var_5 -> 
+	happyIn57
+		 (RApp happy_var_4 happy_var_5 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists")) RPlaceholder) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_184 = happySpecReduce_3  52# happyReduction_184
+happyReduction_184 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn58
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_185 = happySpecReduce_3  52# happyReduction_185
+happyReduction_185 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut58 happy_x_3 of { happy_var_3 -> 
+	happyIn58
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_186 = happyReduce 4# 53# happyReduction_186
+happyReduction_186 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut60 happy_x_3 of { happy_var_3 -> 
+	happyIn59
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_187 = happyReduce 10# 53# happyReduction_187
+happyReduction_187 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	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 happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	case happyOut80 happy_x_6 of { happy_var_6 -> 
+	case happyOut79 happy_x_7 of { happy_var_7 -> 
+	case happyOut60 happy_x_9 of { happy_var_9 -> 
+	happyIn59
+		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_188 = happySpecReduce_2  54# happyReduction_188
+happyReduction_188 happy_x_2
+	happy_x_1
+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
+	case happyOut60 happy_x_2 of { happy_var_2 -> 
+	happyIn60
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_189 = happySpecReduce_1  54# happyReduction_189
+happyReduction_189 happy_x_1
+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
+	happyIn60
+		 ([happy_var_1]
+	)}
+
+happyReduce_190 = happyReduce 7# 55# happyReduction_190
+happyReduction_190 (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 happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut80 happy_x_5 of { happy_var_5 -> 
+	case happyOut79 happy_x_6 of { happy_var_6 -> 
+	happyIn61
+		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_191 = happyReduce 8# 55# happyReduction_191
+happyReduction_191 (happy_x_8 `HappyStk`
+	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 happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	case happyOut80 happy_x_6 of { happy_var_6 -> 
+	case happyOut79 happy_x_7 of { happy_var_7 -> 
+	happyIn61
+		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_192 = happyReduce 4# 55# happyReduction_192
+happyReduction_192 (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 happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn61
+		 (DoExp happy_var_2 happy_var_3 happy_var_1
+	) `HappyStk` happyRest}}}
+
+happyReduce_193 = happySpecReduce_1  56# happyReduction_193
+happyReduction_193 happy_x_1
+	 =  happyIn62
+		 (TYPE
+	)
+
+happyReduce_194 = happySpecReduce_1  56# happyReduction_194
+happyReduction_194 happy_x_1
+	 =  happyIn62
+		 (StringType
+	)
+
+happyReduce_195 = happySpecReduce_1  56# happyReduction_195
+happyReduction_195 happy_x_1
+	 =  happyIn62
+		 (IntType
+	)
+
+happyReduce_196 = happySpecReduce_1  56# happyReduction_196
+happyReduction_196 happy_x_1
+	 =  happyIn62
+		 (CharType
+	)
+
+happyReduce_197 = happySpecReduce_1  56# happyReduction_197
+happyReduction_197 happy_x_1
+	 =  happyIn62
+		 (FloatType
+	)
+
+happyReduce_198 = happySpecReduce_1  56# happyReduction_198
+happyReduction_198 happy_x_1
+	 =  happyIn62
+		 (PtrType
+	)
+
+happyReduce_199 = happySpecReduce_1  56# happyReduction_199
+happyReduction_199 happy_x_1
+	 =  happyIn62
+		 (Builtin "Handle"
+	)
+
+happyReduce_200 = happySpecReduce_1  56# happyReduction_200
+happyReduction_200 happy_x_1
+	 =  happyIn62
+		 (Builtin "Lock"
+	)
+
+happyReduce_201 = happySpecReduce_1  56# happyReduction_201
+happyReduction_201 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
+	happyIn62
+		 (Num happy_var_1
+	)}
+
+happyReduce_202 = happySpecReduce_1  56# happyReduction_202
+happyReduction_202 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
+	happyIn62
+		 (Ch happy_var_1
+	)}
+
+happyReduce_203 = happySpecReduce_1  56# happyReduction_203
+happyReduction_203 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
+	happyIn62
+		 (Str happy_var_1
+	)}
+
+happyReduce_204 = happySpecReduce_1  56# happyReduction_204
+happyReduction_204 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
+	happyIn62
+		 (Bo happy_var_1
+	)}
+
+happyReduce_205 = happySpecReduce_1  56# happyReduction_205
+happyReduction_205 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
+	happyIn62
+		 (Fl happy_var_1
+	)}
+
+happyReduce_206 = happySpecReduce_0  57# happyReduction_206
+happyReduction_206  =  happyIn63
+		 ([]
+	)
+
+happyReduce_207 = happySpecReduce_2  57# happyReduction_207
+happyReduction_207 happy_x_2
+	happy_x_1
+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
+	case happyOut63 happy_x_2 of { happy_var_2 -> 
+	happyIn63
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_208 = happyReduce 4# 58# happyReduction_208
+happyReduction_208 (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 happyOut65 happy_x_3 of { happy_var_3 -> 
+	happyIn64
+		 ((happy_var_2, happy_var_3)
+	) `HappyStk` happyRest}}
+
+happyReduce_209 = happySpecReduce_3  58# happyReduction_209
+happyReduction_209 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
+	case happyOut79 happy_x_3 of { happy_var_3 -> 
+	happyIn64
+		 ((RConst happy_var_2 happy_var_3 TYPE, [])
+	)}}
+
+happyReduce_210 = happyReduce 4# 58# happyReduction_210
+happyReduction_210 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut71 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	case happyOut79 happy_x_4 of { happy_var_4 -> 
+	happyIn64
+		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
+	) `HappyStk` happyRest}}}
+
+happyReduce_211 = happySpecReduce_0  59# happyReduction_211
+happyReduction_211  =  happyIn65
+		 ([]
+	)
+
+happyReduce_212 = happyReduce 4# 59# happyReduction_212
+happyReduction_212 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut70 happy_x_3 of { happy_var_3 -> 
+	happyIn65
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_213 = happyReduce 7# 60# happyReduction_213
+happyReduction_213 (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 happyOut31 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_6 of { happy_var_6 -> 
+	happyIn66
+		 ((happy_var_4,happy_var_6)
+	) `HappyStk` happyRest}}
+
+happyReduce_214 = happyReduce 6# 61# happyReduction_214
+happyReduction_214 (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 happyOut31 happy_x_3 of { happy_var_3 -> 
+	case happyOut31 happy_x_5 of { happy_var_5 -> 
+	happyIn67
+		 ((happy_var_3,happy_var_5)
+	) `HappyStk` happyRest}}
+
+happyReduce_215 = happyReduce 4# 62# happyReduction_215
+happyReduction_215 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut70 happy_x_3 of { happy_var_3 -> 
+	happyIn68
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_216 = happySpecReduce_2  63# happyReduction_216
+happyReduction_216 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn69
+		 (happy_var_2
+	)}
+
+happyReduce_217 = happySpecReduce_3  64# happyReduction_217
+happyReduction_217 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	happyIn70
+		 ([(happy_var_1, happy_var_3)]
+	)}}
+
+happyReduce_218 = happyReduce 5# 64# happyReduction_218
+happyReduction_218 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	case happyOut70 happy_x_5 of { happy_var_5 -> 
+	happyIn70
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_219 = happySpecReduce_1  65# happyReduction_219
+happyReduction_219 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn71
+		 ([happy_var_1]
+	)}
+
+happyReduce_220 = happySpecReduce_2  65# happyReduction_220
+happyReduction_220 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut71 happy_x_2 of { happy_var_2 -> 
+	happyIn71
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_221 = happySpecReduce_1  66# happyReduction_221
+happyReduction_221 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn72
+		 (happy_var_1
+	)}
+
+happyReduce_222 = happySpecReduce_1  66# happyReduction_222
+happyReduction_222 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn72
+		 (happy_var_1
+	)}
+
+happyReduce_223 = happySpecReduce_0  67# happyReduction_223
+happyReduction_223  =  happyIn73
+		 ([]
+	)
+
+happyReduce_224 = happySpecReduce_1  67# happyReduction_224
+happyReduction_224 happy_x_1
+	 =  case happyOut74 happy_x_1 of { happy_var_1 -> 
+	happyIn73
+		 ([happy_var_1]
+	)}
+
+happyReduce_225 = happySpecReduce_3  67# happyReduction_225
+happyReduction_225 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut74 happy_x_1 of { happy_var_1 -> 
+	case happyOut73 happy_x_3 of { happy_var_3 -> 
+	happyIn73
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_226 = happySpecReduce_2  68# happyReduction_226
+happyReduction_226 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut75 happy_x_2 of { happy_var_2 -> 
+	happyIn74
+		 (Full happy_var_1 happy_var_2
+	)}}
+
+happyReduce_227 = happySpecReduce_2  68# happyReduction_227
+happyReduction_227 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut63 happy_x_2 of { happy_var_2 -> 
+	happyIn74
+		 (Simple happy_var_1 happy_var_2
+	)}}
+
+happyReduce_228 = happySpecReduce_2  69# happyReduction_228
+happyReduction_228 happy_x_2
+	happy_x_1
+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
+	happyIn75
+		 (happy_var_2
+	)}
+
+happyReduce_229 = happySpecReduce_2  70# happyReduction_229
+happyReduction_229 happy_x_2
+	happy_x_1
+	 =  case happyOut37 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Intro happy_var_2
+	)}
+
+happyReduce_230 = happySpecReduce_1  70# happyReduction_230
+happyReduction_230 happy_x_1
+	 =  happyIn76
+		 (Intro []
+	)
+
+happyReduce_231 = happySpecReduce_2  70# happyReduction_231
+happyReduction_231 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Refine happy_var_2
+	)}
+
+happyReduce_232 = happySpecReduce_2  70# happyReduction_232
+happyReduction_232 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Exists happy_var_2
+	)}
+
+happyReduce_233 = happySpecReduce_2  70# happyReduction_233
+happyReduction_233 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Generalise happy_var_2
+	)}
+
+happyReduce_234 = happySpecReduce_1  70# happyReduction_234
+happyReduction_234 happy_x_1
+	 =  happyIn76
+		 (ReflP
+	)
+
+happyReduce_235 = happySpecReduce_2  70# happyReduction_235
+happyReduction_235 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Rewrite False False happy_var_2
+	)}
+
+happyReduce_236 = happySpecReduce_3  70# happyReduction_236
+happyReduction_236 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn76
+		 (Rewrite False True happy_var_3
+	)}
+
+happyReduce_237 = happySpecReduce_2  70# happyReduction_237
+happyReduction_237 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Rewrite True False happy_var_2
+	)}
+
+happyReduce_238 = happySpecReduce_3  70# happyReduction_238
+happyReduction_238 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn76
+		 (Rewrite True True happy_var_3
+	)}
+
+happyReduce_239 = happySpecReduce_1  70# happyReduction_239
+happyReduction_239 happy_x_1
+	 =  happyIn76
+		 (Compute
+	)
+
+happyReduce_240 = happySpecReduce_2  70# happyReduction_240
+happyReduction_240 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Unfold happy_var_2
+	)}
+
+happyReduce_241 = happySpecReduce_1  70# happyReduction_241
+happyReduction_241 happy_x_1
+	 =  happyIn76
+		 (Undo
+	)
+
+happyReduce_242 = happySpecReduce_2  70# happyReduction_242
+happyReduction_242 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Induction happy_var_2
+	)}
+
+happyReduce_243 = happySpecReduce_2  70# happyReduction_243
+happyReduction_243 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Fill happy_var_2
+	)}
+
+happyReduce_244 = happySpecReduce_1  70# happyReduction_244
+happyReduction_244 happy_x_1
+	 =  happyIn76
+		 (Trivial
+	)
+
+happyReduce_245 = happySpecReduce_2  70# happyReduction_245
+happyReduction_245 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (RunTactic happy_var_2
+	)}
+
+happyReduce_246 = happySpecReduce_2  70# happyReduction_246
+happyReduction_246 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Believe happy_var_2
+	)}
+
+happyReduce_247 = happySpecReduce_2  70# happyReduction_247
+happyReduction_247 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Use happy_var_2
+	)}
+
+happyReduce_248 = happySpecReduce_2  70# happyReduction_248
+happyReduction_248 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Decide happy_var_2
+	)}
+
+happyReduce_249 = happySpecReduce_1  70# happyReduction_249
+happyReduction_249 happy_x_1
+	 =  happyIn76
+		 (Abandon
+	)
+
+happyReduce_250 = happySpecReduce_1  70# happyReduction_250
+happyReduction_250 happy_x_1
+	 =  happyIn76
+		 (ProofTerm
+	)
+
+happyReduce_251 = happySpecReduce_1  70# happyReduction_251
+happyReduction_251 happy_x_1
+	 =  happyIn76
+		 (Qed
+	)
+
+happyReduce_252 = happyReduce 4# 71# happyReduction_252
+happyReduction_252 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut78 happy_x_3 of { happy_var_3 -> 
+	happyIn77
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_253 = happySpecReduce_2  72# happyReduction_253
+happyReduction_253 happy_x_2
+	happy_x_1
+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
+	happyIn78
+		 ([happy_var_1]
+	)}
+
+happyReduce_254 = happySpecReduce_3  72# happyReduction_254
+happyReduction_254 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
+	case happyOut78 happy_x_3 of { happy_var_3 -> 
+	happyIn78
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_255 = happyMonadReduce 0# 73# happyReduction_255
+happyReduction_255 (happyRest) tk
+	 = happyThen (( getLineNo)
+	) (\r -> happyReturn (happyIn79 r))
+
+happyReduce_256 = happyMonadReduce 0# 74# happyReduction_256
+happyReduction_256 (happyRest) tk
+	 = happyThen (( getFileName)
+	) (\r -> happyReturn (happyIn80 r))
+
+happyReduce_257 = happyMonadReduce 0# 75# happyReduction_257
+happyReduction_257 (happyRest) tk
+	 = happyThen (( getOps)
+	) (\r -> happyReturn (happyIn81 r))
+
+happyNewToken action sts stk
+	= lexer(\tk -> 
+	let cont i = happyDoAction i tk action sts stk in
+	case tk of {
+	TokenEOF -> happyDoAction 120# tk action sts stk;
+	TokenName happy_dollar_dollar -> cont 1#;
+	TokenInfixName happy_dollar_dollar -> cont 2#;
+	TokenBrackName happy_dollar_dollar -> cont 3#;
+	TokenString happy_dollar_dollar -> cont 4#;
+	TokenInt happy_dollar_dollar -> cont 5#;
+	TokenFloat happy_dollar_dollar -> cont 6#;
+	TokenChar happy_dollar_dollar -> cont 7#;
+	TokenBool happy_dollar_dollar -> cont 8#;
+	TokenMetavar happy_dollar_dollar -> cont 9#;
+	TokenColon -> cont 10#;
+	TokenSemi -> cont 11#;
+	TokenBar -> cont 12#;
+	TokenStars -> cont 13#;
+	TokenLambda -> cont 14#;
+	TokenHashOB -> cont 15#;
+	TokenOB -> cont 16#;
+	TokenCB -> cont 17#;
+	TokenOCB -> cont 18#;
+	TokenCCB -> cont 19#;
+	TokenOSB -> cont 20#;
+	TokenCSB -> cont 21#;
+	TokenOId -> cont 22#;
+	TokenCId -> cont 23#;
+	TokenLPair -> cont 24#;
+	TokenRPair -> cont 25#;
+	TokenExists -> cont 26#;
+	TokenTilde -> cont 27#;
+	TokenPlus -> cont 28#;
+	TokenMinus -> cont 29#;
+	TokenTimes -> cont 30#;
+	TokenDivide -> cont 31#;
+	TokenEquals -> cont 32#;
+	TokenMightEqual -> cont 33#;
+	TokenLT -> cont 34#;
+	TokenGT -> cont 35#;
+	TokenEllipsis -> cont 36#;
+	TokenUnderscore -> cont 37#;
+	TokenComma -> cont 38#;
+	TokenTuple -> cont 39#;
+	TokenBang -> cont 40#;
+	TokenConcat -> cont 41#;
+	TokenGE -> cont 42#;
+	TokenLE -> cont 43#;
+	TokenOr -> cont 44#;
+	TokenAnd -> cont 45#;
+	TokenArrow -> cont 46#;
+	TokenFatArrow -> cont 47#;
+	TokenTransArrow -> cont 48#;
+	TokenLeftArrow -> cont 49#;
+	TokenIntType -> cont 50#;
+	TokenCharType -> cont 51#;
+	TokenFloatType -> cont 52#;
+	TokenStringType -> cont 53#;
+	TokenHandleType -> cont 54#;
+	TokenPtrType -> cont 55#;
+	TokenLockType -> cont 56#;
+	TokenType -> cont 57#;
+	TokenLazyBracket -> cont 58#;
+	TokenDataType -> cont 59#;
+	TokenInfix -> cont 60#;
+	TokenInfixL -> cont 61#;
+	TokenInfixR -> cont 62#;
+	TokenUsing -> cont 63#;
+	TokenIdiom -> cont 64#;
+	TokenParams -> cont 65#;
+	TokenNamespace -> cont 66#;
+	TokenPublic -> cont 67#;
+	TokenPrivate -> cont 68#;
+	TokenAbstract -> cont 69#;
+	TokenNoElim -> cont 70#;
+	TokenCollapsible -> cont 71#;
+	TokenWhere -> cont 72#;
+	TokenWith -> cont 73#;
+	TokenPartial -> cont 74#;
+	TokenSyntax -> cont 75#;
+	TokenLazy -> cont 76#;
+	TokenStatic -> cont 77#;
+	TokenRefl -> cont 78#;
+	TokenEmptyType -> cont 79#;
+	TokenUnitType -> cont 80#;
+	TokenInclude -> cont 81#;
+	TokenExport -> cont 82#;
+	TokenInline -> cont 83#;
+	TokenDo -> cont 84#;
+	TokenReturn -> cont 85#;
+	TokenIf -> cont 86#;
+	TokenThen -> cont 87#;
+	TokenElse -> cont 88#;
+	TokenLet -> cont 89#;
+	TokenIn -> cont 90#;
+	TokenProof -> cont 91#;
+	TokenIntro -> cont 92#;
+	TokenRefine -> cont 93#;
+	TokenGeneralise -> cont 94#;
+	TokenReflP -> cont 95#;
+	TokenRewrite -> cont 96#;
+	TokenRewriteAll -> cont 97#;
+	TokenCompute -> cont 98#;
+	TokenUnfold -> cont 99#;
+	TokenUndo -> cont 100#;
+	TokenInduction -> cont 101#;
+	TokenFill -> cont 102#;
+	TokenTrivial -> cont 103#;
+	TokenMkTac -> cont 104#;
+	TokenBelieve -> cont 105#;
+	TokenUse -> cont 106#;
+	TokenDecide -> cont 107#;
+	TokenAbandon -> cont 108#;
+	TokenProofTerm -> cont 109#;
+	TokenQED -> cont 110#;
+	TokenLaTeX -> cont 111#;
+	TokenNoCG -> cont 112#;
+	TokenEval -> cont 113#;
+	TokenSpec -> cont 114#;
+	TokenFreeze -> cont 115#;
+	TokenThaw -> cont 116#;
+	TokenTransform -> cont 117#;
+	TokenCInclude -> cont 118#;
+	TokenCLib -> cont 119#;
+	_ -> happyError' tk
+	})
+
+happyError_ tk = happyError' tk
+
+happyThen :: () => P a -> (a -> P b) -> P b
+happyThen = (thenP)
+happyReturn :: () => a -> P a
+happyReturn = (returnP)
+happyThen1 = happyThen
+happyReturn1 :: () => a -> P a
+happyReturn1 = happyReturn
+happyError' :: () => (Token) -> P a
+happyError' tk = (\token -> happyError) tk
+
+mkparse = happySomeParser where
+  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
+
+mkparseTerm = happySomeParser where
+  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut33 x))
+
+mkparseTactic = happySomeParser where
+  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut76 x))
+
+happySeq = happyDontSeq
+
+
+data ConParse = Full Id RawTerm
+              | Simple Id [RawTerm]
+
+parse :: String -> FilePath -> Result [Decl]
+parse s fn = do ds <- mkparse s fn 1 []
+                collectDecls ds
+
+processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
+                  IO ([Decl], [FilePath])
+processImports opts imped (Success ds) = pi imped [] ds
+  where pi imps decls ((PInclude fp):xs)
+           | fp `elem` imps = pi imps decls xs
+           | otherwise = do
+                 f <- readLibFile defaultLibPath fp
+                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
+                 case parse f fp of
+                   Success t -> pi (fp:imps) decls (t++xs)
+                   Failure e f l ->
+                     fail $ f ++ ":" ++ show l ++ ":" ++ e
+        pi imps decls ((Using t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Using t ds']) xs
+        pi imps decls ((Params t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Params t ds']) xs
+        pi imps decls ((DoUsing b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[DoUsing b r ds']) xs
+        pi imps decls ((Idiom b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Idiom b r ds']) xs
+        pi imps decls ((Namespace n ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Namespace n ds']) xs
+        pi imps decls (x:xs) = pi imps (decls++[x]) xs
+        pi imps decls [] = return (decls, imps)
+
+processImports _ imped (Failure e f l) 
+    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
+
+
+parseTerm :: String -> Result RawTerm
+parseTerm s = mkparseTerm s "(input)" 0 []
+
+parseTactic :: String -> Result ITactic
+parseTactic s = mkparseTactic s "(tactic)" 0 []
+
+mkCon :: RawTerm -> ConParse -> (Id,RawTerm)
+mkCon _ (Full n t) = (n,t)
+mkCon ty (Simple n args) = (n, mkConTy args ty)
+   where mkConTy [] ty = ty
+         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex [] a) (mkConTy as ty)
+
+mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
+   where mkImpApp f [] = f
+         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
+         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
+
+doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
+doBind b [] t = t
+doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
+
+doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
+doLetBind [] t = t
+doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
+
+mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
+mkTyApp file line n ty = mkApp file line (RVar file line n) (getTyArgs ty)
+   where getTyArgs (RBind n _ t) = (RVar file line n):(getTyArgs t)
+         getTyArgs x = []
+
+mkTyParams :: String -> Int -> [Id] -> RawTerm
+mkTyParams f l [] = RConst f l TYPE
+mkTyParams f l (x:xs) = RBind x (Pi Ex [] (RConst f l TYPE)) (mkTyParams f l xs)
 
 mkDatatype :: String -> Int ->
               Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
diff --git a/idris.cabal b/idris.cabal
--- a/idris.cabal
+++ b/idris.cabal
@@ -1,5 +1,5 @@
 Name:           idris
-Version:        0.1.4
+Version:        0.1.5
 License:        BSD3
 License-file:   LICENSE
 Author:         Edwin Brady
@@ -36,6 +36,8 @@
 Data-files:     Prelude.e *.idr
 Data-dir:       lib
 
+Extra-source-files: CHANGELOG
+
 Library
         Exposed-modules: Idris.Parser, Idris.Lexer, Idris.Lib, 
                          Idris.AbsSyntax, Idris.Context, Idris.Latex
@@ -46,8 +48,8 @@
         Other-modules:   Paths_idris
 
         Build-depends:   base>=4 && <5, containers, array, parsec, mtl,
-                         readline, ivor>=0.1.11, directory, haskell98,
-                         old-time, old-locale, binary, epic>=0.1.4
+                         readline, ivor>=0.1.12, directory, haskell98,
+                         old-time, old-locale, binary, epic>=0.1.5, Cabal
                                 
         Extensions:      MagicHash, UndecidableInstances, OverlappingInstances
 
@@ -61,7 +63,7 @@
                               Idris.SimpleCase, Idris.Serialise
 
                Build-depends:   base>=4 && <5, containers, array, parsec, mtl,
-                                readline, ivor>=0.1.10, directory, haskell98,
-                                old-time, old-locale, binary, epic>=0.1.3
+                                readline, ivor>=0.1.12, directory, haskell98,
+                                old-time, old-locale, binary, epic>=0.1.4, Cabal
                                 
                Extensions:      MagicHash, UndecidableInstances, OverlappingInstances
diff --git a/lib/Prelude.e b/lib/Prelude.e
--- a/lib/Prelude.e
+++ b/lib/Prelude.e
@@ -28,6 +28,8 @@
 __epic_streq (x:String, y:String) -> Data =
     foreign Int "streq" (x:String, y:String)
 
+%inline __epic_chareq (x:Int, y:Int) -> Data = x==y
+
 %inline __epic_strlt (x:String, y:String) -> Data =
     foreign Int "strlt" (x:String, y:String)
 
diff --git a/lib/bool.idr b/lib/bool.idr
--- a/lib/bool.idr
+++ b/lib/bool.idr
@@ -10,7 +10,7 @@
 if_then_else True t f = t;
 if_then_else False t f = f;
 
-data so : Bool -> # where oh : so True;
+data so : Bool -> Set where oh : so True;
 
 infixl 4 &&,||;
 
diff --git a/lib/builtins.idr b/lib/builtins.idr
--- a/lib/builtins.idr
+++ b/lib/builtins.idr
@@ -3,31 +3,47 @@
 data __Unit = II;
 data __Empty = ;
 
-data Sigma : (A:#)->(P:A->#)-># where
-   Exists : {P:A->#} -> {a:A} -> P a -> Sigma A P;
+data Sigma : (A:Set)->(P:A->Set)->Set where
+   Exists : {P:A->Set} -> (a:A) -> P a -> Sigma A P;
 
-getSigIdx : {P:a->#} ->  (s:Sigma a P) -> a;
-getSigIdx (Exists {a} v) = a;
+getSigIdx : {P:a->Set} ->  (s:Sigma a P) -> a;
+getSigIdx (Exists a v) = a;
 
-getSigVal : {P:a->#} -> (s:Sigma a P) -> P (getSigIdx s);
-getSigVal (Exists v) = v;
+getSigVal : {P:a->Set} -> (s:Sigma a P) -> P (getSigIdx s);
+getSigVal (Exists a v) = v;
 
 data Pair a b = mkPair a b;
 
-rewrite : {A:B->#} -> A m -> (m=n) -> A n;
+rewrite : {A:B->Set} -> A m -> (m=n) -> A n;
 rewrite t (refl m) = t;
 
 -- This way is needed for Ivor's rewriting tactic
 
-__eq_repl : (A:#)->(x:A) -> (y:A) -> (q:(x=y)) -> (P:(m:A)->#) -> (p:P x) -> (P y);
+__eq_repl : (A:Set)->(x:A) -> (y:A) -> (q:(x=y)) -> (P:(m:A)->Set) -> (p:P x) -> (P y);
 __eq_repl A x x (refl x) P p = p;
 
-__eq_sym : (A:#) -> (a:A) -> (b:A) -> (p:(a=b)) -> (b=a);
+__eq_sym : (A:Set) -> (a:A) -> (b:A) -> (p:(a=b)) -> (b=a);
 __eq_sym A a a p = refl _;
 
+-- For proofs which should not be stored at run-time. Programs can
+-- construct objects of type Proof A, and manipulate them,
+-- but not inspect them. 'Proof' is treated as collapsible.
+
+data Proof : (A:Set) -> Set where
+  __mkProof : (a:A) -> Proof A;
+
+prove : (a:A) -> Proof A;
+prove x = __mkProof x;
+
+-- This is the only function allowed to manipulate proofs.
+-- It'd be easier if we could hide '__mkProof'!
+
+proof_bind : Proof A -> (A -> Proof B) -> Proof B;
+proof_bind (__mkProof a) p = p a;
+
 -- Used by the 'believe' tactic to make a temporary proof. Programs
 -- using this are not to be trusted!
 
-__Prove_Anything : {A:#} -> A;
+__Prove_Anything : {A:Set} -> A;
 __Suspend_Disbelief : (m:A) -> (n:A) -> (m = n);
 
diff --git a/lib/either.idr b/lib/either.idr
--- a/lib/either.idr
+++ b/lib/either.idr
@@ -1,1 +1,5 @@
 data Either A B = Left A | Right B;
+
+choose : (x:Bool) -> Either (so (not x)) (so x);
+choose False = Left oh;
+choose True = Right oh;
diff --git a/lib/io.idr b/lib/io.idr
--- a/lib/io.idr
+++ b/lib/io.idr
@@ -3,9 +3,9 @@
 -- FAny is to allow C functions to build up Idris data
 -- types. Obviously this needs care...
 
-data FType = FUnit | FInt | FStr | FPtr | FAny #;
+data FType = FUnit | FInt | FStr | FPtr | FAny Set;
 
-i_ftype : FType -> #;
+i_ftype : FType -> Set;
 i_ftype FInt = Int;
 i_ftype FStr = String;
 i_ftype FPtr = Ptr;
@@ -23,7 +23,7 @@
 f_name : ForeignFun -> String;
 f_name (FFun nm args ret) = nm;
 
-data FArgList : (List FType) -> # where
+data FArgList : (List FType) -> Set where
     fNil : FArgList Nil
   | fCons : {x:FType} -> (fx:i_ftype x) -> (fxs:FArgList xs) ->
 			 (FArgList (Cons x xs));
@@ -35,26 +35,26 @@
 
 namespace IO {
 
-  data IO : # -> #;
+  data IO : Set -> Set;
 
-  data Command : # where
+  data Command : Set where
       PutStr : String -> Command
     | GetStr : Command
-    | Fork : {A:#} -> A -> Command
+    | Fork : {A:Set} -> A -> Command
     | NewLock : Int -> Command
     | DoLock : Lock -> Command
     | DoUnlock : Lock -> Command
     | NewRef : Command
-    | ReadRef : # -> Int -> Command
-    | WriteRef : {A:#} -> Int -> A -> Command
+    | ReadRef : Set -> Int -> Command
+    | WriteRef : {A:Set} -> Int -> A -> Command
     | While : (IO Bool) -> (IO ()) -> Command
-    | WhileAcc : {A:#} -> (IO Bool) -> A -> (A -> IO A) -> Command
+    | WhileAcc : {A:Set} -> (IO Bool) -> A -> (A -> IO A) -> Command
     | Within : Int -> (IO A) -> (IO A) -> Command
-    | IOLift : {A:#} -> (IO A) -> Command 
+    | IOLift : {A:Set} -> (IO A) -> Command 
     | Foreign : (f:ForeignFun) -> 
   	        (args:FArgList (f_args f)) -> Command;
 
-  Response : Command -> #;
+  Response : Command -> Set;
   Response (PutStr s) = ();
   Response GetStr = String;
   Response (Fork proc) = ();
@@ -64,14 +64,14 @@
   Response NewRef = Int;
   Response (ReadRef A i) = A;
   Response (WriteRef i val) = ();
-  Response (While test body) = ();
-  Response (WhileAcc {A} test acc body) = A;
+  Response (While _ body) = ();
+  Response (WhileAcc {A} _ acc body) = A;
   Response (Within {A} time body failure) = A;
   Response (IOLift {A} f) = A;
   Response (Foreign t args) = i_ftype (f_retType t);
 
 
-  data IO : # -> # where
+  data IO : Set -> Set where
      IOReturn : A -> (IO A)
    | IODo : (c:Command) -> ((Response c) -> (IO A)) -> (IO A);
 
@@ -92,7 +92,7 @@
 kbind (IODo c p) k = IODo c (\x => (kbind (p x) k));
 
 while : |(test:IO Bool) -> |(body: IO ()) -> IO ();
-while test body = IODo (While test body) (\a => (IOReturn II));
+while t body = IODo (While t body) (\a => (IOReturn II));
 
 while_accTR : Bool -> 
             |(test:IO Bool) -> acc -> |(body: acc -> IO acc) -> IO acc;
@@ -121,7 +121,7 @@
 
 data IOException = IOExcept String; 
 
-data IOe : # -> # where
+data IOe : Set -> Set where
    IOK : (IO A) -> (IOe A)
  | IOError : String -> (IOe A);
 
@@ -192,12 +192,12 @@
 writeIORef : (IORef A) -> A -> (IO ());
 writeIORef (MkIORef i) val = writeIORefPrim i val;
 
-mkFType' : (List FType) -> FType -> #   %nocg;
+mkFType' : (List FType) -> FType -> Set   %nocg;
 
 mkFType' Nil rt = IO (i_ftype rt);
-mkFType' (Cons t ts) rt = #((i_ftype t) -> (mkFType' ts rt));
+mkFType' (Cons t ts) rt = (i_ftype t) -> (mkFType' ts rt);
 
-mkFType : ForeignFun -> #    %nocg;
+mkFType : ForeignFun -> Set    %nocg;
 mkFType (FFun fn args rt) = mkFType' args rt;
 
 mkFDef : String -> (ts:List FType) -> (xs:List FType) -> (FArgList xs) ->
diff --git a/lib/list.idr b/lib/list.idr
--- a/lib/list.idr
+++ b/lib/list.idr
@@ -54,4 +54,15 @@
 	%refl;
 	%qed;
 };
- 
+
+app_Nil : (xs:List a) -> (app xs Nil = xs);
+app_Nil Nil = refl _;
+app_Nil (Cons x xs) = ?appNil_Cons;
+appNil_Cons proof {
+	%intro a;
+	%intro;
+	%rewrite <- app_Nil xs;
+	%refl;
+	%qed;
+};
+
diff --git a/lib/maybe.idr b/lib/maybe.idr
--- a/lib/maybe.idr
+++ b/lib/maybe.idr
@@ -8,3 +8,6 @@
 maybe Nothing def f = def;
 maybe (Just a) def f = f a;
 
+maybeBind : Maybe a -> (a -> Maybe b) -> Maybe b;
+maybeBind Nothing  mf = Nothing;
+maybeBind (Just x) mf = mf x;
diff --git a/lib/nat.idr b/lib/nat.idr
--- a/lib/nat.idr
+++ b/lib/nat.idr
@@ -11,6 +11,10 @@
 eq_resp_S : (m=n) -> ((S m) = (S n));
 eq_resp_S (refl n) = refl (S n);
 
+power : Nat -> Nat -> Nat;
+power n O = S O;
+power n (S k) = mult n (power n k);
+
 ------- Int/String conversions -------
 
 intToNat : Int -> Nat;
@@ -115,7 +119,7 @@
 
 ---- Comparing Nats
 
-data Compare : Nat -> Nat -> # where
+data Compare : Nat -> Nat -> Set where
    cmpLT : (y:Nat) -> (Compare x (plus x (S y)))
  | cmpEQ : Compare x x
  | cmpGT : (x:Nat) -> (Compare (plus y (S x)) y);
diff --git a/lib/perm.idr b/lib/perm.idr
new file mode 100644
--- /dev/null
+++ b/lib/perm.idr
@@ -0,0 +1,139 @@
+include "vect.idr";
+
+-- Yes, it's a DSL! One which gives a sequence of operations for converting a
+-- list into its permutation.
+
+using (x:A, xs:List A, xs':List A, xs'':List A, 
+       ys:List A, ys':List A,
+       zs:List A)
+{
+  data Perm : (List A) -> (List A) -> Set where
+     pnil : {A:Set} -> (Perm {A} Nil Nil)
+   | pskip : (Perm xs xs') -> (Perm (Cons x xs) (Cons x xs'))
+   | pswap : (Perm (Cons x (Cons y xs)) (Cons y (Cons x xs)))
+   | ptrans : (Perm xs xs') -> (Perm xs' xs'') -> (Perm xs xs'');
+
+  perm_id: Perm xs xs;
+  perm_id {xs=Nil} = pnil;
+  perm_id {xs=Cons x xs} = pskip perm_id;
+
+  perm_sym : Perm xs xs' -> Perm xs' xs;
+  perm_sym pnil = pnil;
+  perm_sym (pskip p) = pskip (perm_sym p);
+  perm_sym pswap = pswap;
+  perm_sym (ptrans p q) = ptrans (perm_sym q) (perm_sym p);
+
+  perm_refl : Perm xs xs;
+  perm_refl {xs=Nil} = pnil;
+  perm_refl {xs=Cons x xs} = pskip perm_refl;
+
+  perm_app_head : (xs:List A) -> 
+                  Perm xs' ys' -> Perm (app xs xs') (app xs ys');
+  perm_app_head Nil p = p;
+  perm_app_head (Cons x xs) p = pskip (perm_app_head xs p);
+
+  perm_add_cons : Perm (Cons x xs) (Cons x ys) -> Perm xs ys;
+  perm_add_cons (pskip p) = p;
+  perm_add_cons pswap = pskip perm_id;
+
+  perm_app : Perm xs ys -> Perm xs' ys' ->
+             Perm (app xs xs') (app ys ys');
+  perm_app {xs=Nil} {ys=Nil} p p' = p';
+  perm_app {xs=Cons x xs} {ys=Cons y ys} {xs'} {ys'} (ptrans p1 p2) p' = 
+     let r1 = perm_app p1 p' in
+     let r2 = perm_app p2 p' in ?papp_cons;
+
+  perm_rewrite : Perm xs xs' -> Perm xs ys -> Perm xs' ys;
+  perm_rewrite p1 p2 = ptrans (perm_sym p1) p2;
+
+  perm_rewrite_cons : Perm (Cons x xs) xs' -> Perm xs ys -> 
+                      Perm (Cons x ys) xs';
+  perm_rewrite_cons (pskip p1) p2 = pskip (ptrans (perm_sym p2) p1);
+  perm_rewrite_cons pswap p = ptrans (pskip (perm_sym p)) pswap;
+  perm_rewrite_cons (ptrans p1 p2) p3 = ptrans (perm_rewrite_cons p1 p3) p2;
+
+  perm_rewrite_app : Perm (app xs ys) xs' -> Perm ys zs ->
+                     Perm (app xs zs) xs';
+  perm_rewrite_app {xs=Nil} p1 p2 = perm_rewrite p2 p1;
+  perm_rewrite_app {xs=Cons x xs} p1 p2 
+       = perm_rewrite_cons p1 (perm_app perm_id p2);
+
+  perm_swapr : Perm xs (Cons x (Cons y ys)) ->
+               Perm xs (Cons y (Cons x ys));
+  perm_swapr {xs=Cons a (Cons b xs)} p = ptrans p pswap;
+
+  perm_swapl : Perm (Cons x (Cons y ys)) xs ->
+               Perm (Cons y (Cons x ys)) xs;
+  perm_swapl {xs=Cons a (Cons b xs)} p = ptrans pswap p;
+
+  perm_move_cons : Perm xs (app ys (Cons x zs)) ->
+                   Perm xs (Cons x (app ys zs));
+  perm_move_cons {ys=Nil} p = p;
+  perm_move_cons {ys=Cons y ys} p 
+        = perm_swapr (perm_sym 
+             (perm_rewrite_cons (perm_sym p) (perm_move_cons perm_id)));
+
+  perm_cons_move : Perm xs (Cons x (app ys zs)) ->
+                   Perm xs (app ys (Cons x zs));
+                  
+  perm_cons_move {ys=Nil} p = p;
+  perm_cons_move {ys=Cons y ys} p 
+        = perm_sym (perm_rewrite_cons
+             (perm_swapl (perm_sym p)) (perm_cons_move perm_id));
+
+  -- This is by induction on the *list* xs, not the permutation, despite
+  -- initial appearances.
+
+  perm_app_cons : Perm xs (app xs' ys') ->
+  		  Perm (Cons x xs) (app xs' (Cons x ys'));
+  perm_app_cons {xs'=Nil} {ys'=Nil} p = pskip p;
+  perm_app_cons {x} {xs=Cons x' xs} {xs'=Cons x' xs'}
+                (pskip p) = let prec = perm_app_cons {x=x} p in
+  		  perm_swapl (perm_rewrite_cons perm_id (perm_sym prec));
+  perm_app_cons {xs=Cons x (Cons y _)} {xs'=Cons y (Cons x _)}
+                pswap = perm_swapl (perm_swapr (pskip (perm_swapl
+  		  (pskip (perm_app_cons perm_id))))); -- list is smaller!
+  perm_app_cons {xs=Cons x' xs} {xs'=Cons x' xs'}
+                (ptrans p1 p2) = perm_swapl (pskip (perm_app_cons
+  		  (perm_add_cons (ptrans p1 p2)))); -- list is smaller!
+
+  -- Again by induction on the list xs. Maybe there are shorter proofs,
+  -- but it doesn't really matter, we're not going to run them...
+
+  perm_app_swap : Perm (app xs ys) zs -> Perm (app ys xs) zs;
+  perm_app_swap {xs=Nil} p ?= p;   [papp_swap_nil]
+  perm_app_swap {xs=Cons x xs} {zs=Cons x zs} 
+                (pskip p) = perm_sym
+                     (perm_app_cons (perm_sym (perm_app_swap p)));
+  perm_app_swap {xs=Cons x (Cons y _)}
+                pswap = perm_swapr (perm_sym 
+		        (perm_app_cons 
+			 (perm_rewrite_cons 
+			  (perm_app_cons perm_id) (perm_app_swap perm_id))));
+  perm_app_swap {xs=Cons x xs} {zs=Cons z zs}
+                (ptrans p1 p2) = perm_sym (perm_cons_move 
+                                  (perm_sym (perm_rewrite_cons 
+                                    (ptrans p1 p2) (perm_app_swap perm_id))));
+
+}
+
+
+papp_cons proof {
+	%intro a;
+	%intro;
+	%refine ptrans;
+	%fill (app X xs');
+	%refine ptrans;
+	%fill (app X ys');
+	%fill r1;
+	%fill perm_app_head X (perm_sym p');
+	%fill r2;
+	%qed;
+};
+
+papp_swap_nil proof {
+	%intro;
+	%use value;
+	%fill app_Nil X1;
+	%qed;
+};
diff --git a/lib/prelude.idr b/lib/prelude.idr
--- a/lib/prelude.idr
+++ b/lib/prelude.idr
@@ -1,10 +1,11 @@
 flip : (a -> b -> c) -> b -> a -> c;
 flip f x y = f y x;
 
-infixl 5 ==;
+infixl 5 ==, /=;
 infixl 6 <, <=, >, >=;
-infixl 7 +,-,++;
-infixl 8 *,/;
+infixl 7 <=<, >=>;
+infixl 8 +,-,++;
+infixl 9 *,/;
 
 (+) : Int -> Int -> Int inline;
 (+) x y = __addInt x y;
@@ -35,6 +36,15 @@
 
 (==) : Int -> Int -> Bool inline;
 (==) x y = __eq x y;
+
+(/=) : Int -> Int -> Bool inline;
+(/=) x y = not (__eq x y);
+
+(<=<) : Int -> Int -> Int inline;
+(<=<) x y = __shl x y;
+
+(>=>) : Int -> Int -> Int inline;
+(>=>) x y = __shr x y;
  
 include "nat.idr";
 include "maybe.idr";
diff --git a/lib/string.idr b/lib/string.idr
--- a/lib/string.idr
+++ b/lib/string.idr
@@ -18,6 +18,14 @@
 strTail: String -> Maybe String inline;
 strTail s = if (strNull s) then Nothing else (Just (__strTail s));
 
+-- Some more, faster, string manipulations
+
+strHead' : (x:String) -> (so (not (strNull x))) -> Char;
+strHead' x p = __strHead x;
+
+strTail' : (x:String) -> (so (not (strNull x))) -> String;
+strTail' x p = __strTail x;
+
 strCons: Char -> String -> String inline;
 strCons c s = __strCons c s;
 
@@ -26,6 +34,31 @@
   | (Just h,  Just t)  = Just (h, t);
   | (Nothing, Nothing) = Nothing;
 }
+
+{-- A view of strings, for better, faster, pattern matching --}
+
+data StrM : String -> Set where
+   StrNil : StrM ""
+ | StrCons : (x:Char) -> (xs:String) -> StrM (strCons x xs);
+
+strM : (x:String) -> StrM x;
+strM x with choose (strNull x) {
+   | Left p ?= StrCons (strHead' x p) (strTail' x p);     [strMleft]
+   | Right p ?= StrNil;                                   [strMright]
+}
+
+strMright proof {
+  %intro;
+  %believe value; -- it's a primitive operation, we have to believe it!
+  %qed;
+};
+
+strMleft proof {
+  %intro;
+  %believe value; -- it's a primitive operation, we have to believe it!
+  %qed;
+};
+
 
 charAt: Int -> String -> Maybe Char inline;
 charAt x str =
diff --git a/lib/system.idr b/lib/system.idr
new file mode 100644
--- /dev/null
+++ b/lib/system.idr
@@ -0,0 +1,7 @@
+-- Interaction with the outside world, operating system, etc.
+
+%include "system_glue.h"
+%lib "system_glue.o"
+
+
+
diff --git a/lib/tactics.idr b/lib/tactics.idr
--- a/lib/tactics.idr
+++ b/lib/tactics.idr
@@ -1,5 +1,5 @@
-data Tactic : # where
-    TFill : {a:#} -> a -> Tactic
+data Tactic : Set where
+    TFill : {a:Set} -> a -> Tactic
   | TRefine : String -> Tactic
   | TTrivial : Tactic
   | TTry : Tactic -> Tactic -> Tactic
diff --git a/lib/vect.idr b/lib/vect.idr
--- a/lib/vect.idr
+++ b/lib/vect.idr
@@ -2,14 +2,22 @@
 
 infixr 5 ::;
 
-data Vect : # -> Nat -> # where
+data Vect : Set -> Nat -> Set where
    VNil : Vect A O
  | (::) : A -> (Vect A k) -> (Vect A (S k));
 
-data Fin : Nat -> # where
+data Fin : Nat -> Set where
    fO : Fin (S k)
  | fS : (Fin k) -> (Fin (S k));
 
+finToNat : Fin k -> Nat;
+finToNat fO = O;
+finToNat (fS k) = S (finToNat k);
+
+natToFin : (x:Nat) -> Fin (S x);
+natToFin O = fO;
+natToFin (S k) = fS (natToFin k);
+
 vlookup : (Fin k) -> (Vect A k) -> A;
 vlookup fO (x :: xs) = x;
 vlookup (fS k) (x :: xs) = vlookup k xs;
@@ -28,9 +36,9 @@
 
 -- Membership predicate for vectors, and means to compute one.
 
-using (A:#, n:Nat, i:Fin n, x:A, y:A, xs:Vect A n) {
+using (A:Set, n:Nat, i:Fin n, x:A, y:A, xs:Vect A n) {
 
-  data ElemIs : (Fin n) -> A -> (Vect A n) -> # where
+  data ElemIs : (Fin n) -> A -> (Vect A n) -> Set where
      first : (ElemIs fO x (x :: xs))
    | later : (ElemIs i x xs) -> (ElemIs (fS i) x (y :: xs));
 }
