packages feed

MiniAgda 0.2020.4.14 → 0.2022.3.11

raw patch · 382 files changed

+12900/−12089 lines, 382 filesdep +processdep +transformersdep ~basedep ~containersdep ~mtlsetup-changed

Dependencies added: process, transformers

Dependency ranges changed: base, containers, mtl

Files

CHANGELOG view
@@ -1,6 +1,8 @@ CHANGELOG for MiniAgda -0.2020.04.14  Tested compilation with ghc 8.10.1+0.2022.3.11   Fixed compilation with mtl-2.3-rc3, tested with ghc 9.2.2, added cabal test.++0.2020.4.14   Tested compilation with ghc 8.10.1.  0.2019.12.13  Tested compilation with ghc 8.8.1. 
Makefile view
@@ -1,4 +1,10 @@ install :-	cabal v1-install+	cabal install++build :+	cabal build++test :+	cabal test  # EOF
MiniAgda.cabal view
@@ -1,8 +1,8 @@+cabal-version:   2.4 name:            MiniAgda-version:         0.2020.4.14+version:         0.2022.3.11 build-type:      Simple-cabal-version:   1.24-license:         OtherLicense+license:         MIT license-file:    LICENSE author:          Andreas Abel and Karl Mehltretter maintainer:      Andreas Abel <andreas.abel@cse.gu.se>@@ -22,76 +22,112 @@   Recent features include bounded size quantification and destructor   patterns for a more general handling of coinduction. -tested-with:        GHC == 7.6.3-                    GHC == 7.8.4-                    GHC == 7.10.3-                    GHC == 8.0.2-                    GHC == 8.2.2-                    GHC == 8.4.4-                    GHC == 8.6.5-                    GHC == 8.8.3-                    GHC == 8.10.1+tested-with:+  GHC == 9.2.2+  GHC == 9.0.2+  GHC == 8.10.7+  GHC == 8.8.4+  GHC == 8.6.5+  GHC == 8.4.4+  GHC == 8.2.2+  GHC == 8.0.2+  GHC == 7.10.3+  GHC == 7.8.4+  GHC == 7.6.3 -extra-source-files: Makefile-                    CHANGELOG-                    README.md+extra-source-files:+  CHANGELOG+  README.md+  Makefile+  src/Makefile -data-files:         test/succeed/Makefile-                    test/succeed/*.ma-                    test/fail/Makefile-                    test/fail/*.ma-                    test/fail/*.err-                    test/fail/adm/*.ma-                    test/fail/adm/*.err-                    lib/*.ma+data-files:+  test/fail/Makefile+  test/succeed/Makefile+  test/**/*.ma+  test/*.goldplate+  test/**/*.golden+  test/**/*.err+  lib/*.ma+ source-repository head   type:     git   location: https://github.com/andreasabel/miniagda  executable miniagda-  hs-source-dirs:   src-  build-depends:    array >= 0.3 && < 0.6,-                    base >= 4.6 && < 5,-                    containers >= 0.3 && < 0.7,-                    haskell-src-exts >= 1.21 && < 1.22,-                    mtl >= 2.2.2 && < 2.3,-                    pretty >= 1.0 && < 1.2-  -- haskell-src-exts is a nervous package with incompatibilities-  -- in every new version, thus, we need tight bounds.-  build-tools:      happy >= 1.15 && < 2,-                    alex >= 3.0 && < 4-  default-language: Haskell98-  default-extensions: CPP-                    MultiParamTypeClasses-                    TypeSynonymInstances-                    FlexibleInstances-                    FlexibleContexts-                    GeneralizedNewtypeDeriving-                    NoMonomorphismRestriction-                    PatternGuards-                    TupleSections-                    NamedFieldPuns-  main-is:          Main.hs-  other-modules:    Abstract-                    Collection-                    Concrete-                    Eval-                    Extract-                    HsSyntax-                    Lexer-                    Parser-                    Polarity-                    PrettyTCM-                    ScopeChecker-                    Semiring-                    SparseMatrix-                    TCM-                    Termination-                    ToHaskell-                    Tokens-                    TraceError-                    TreeShapedOrder-                    TypeChecker-                    Util-                    Value-                    Warshall+  hs-source-dirs:       src+  build-depends:        array             >= 0.3    && < 0.6+                      , base              >= 4.6    && < 5+                      , containers        >= 0.3    && < 0.7+                      , haskell-src-exts  >= 1.21   && < 1.22+                          -- haskell-src-exts is a nervous package with incompatibilities+                          -- in every new version, thus, we need tight bounds.+                      , mtl               >= 2.2.2  && < 2.4+                      , pretty            >= 1.0    && < 1.2+                      , transformers+  build-tool-depends:   happy:happy       >= 1.15   && < 2+                      , alex:alex         >= 3.0    && < 4+  default-language:     Haskell98+  default-extensions:   CPP+                        MultiParamTypeClasses+                        TypeSynonymInstances+                        FlexibleInstances+                        FlexibleContexts+                        GeneralizedNewtypeDeriving+                        NoMonomorphismRestriction+                        PatternGuards+                        TupleSections+                        NamedFieldPuns+                        LambdaCase+  main-is:              Main.hs+  other-modules:        Abstract+                        Collection+                        Concrete+                        Eval+                        Extract+                        HsSyntax+                        Lexer+                        Parser+                        Polarity+                        PrettyTCM+                        ScopeChecker+                        Semiring+                        SparseMatrix+                        TCM+                        Termination+                        ToHaskell+                        Tokens+                        TraceError+                        TreeShapedOrder+                        TypeChecker+                        Util+                        Value+                        Warshall++  -- TODO: Warning-free+  -- ghc-options:      -Wall+  --                   -fno-warn-type-defaults+  --                   -fno-warn-dodgy-imports+  --                   -fno-warn-unused-binds+  --                   -fno-warn-unused-matches+  --                   -fno-warn-name-shadowing+  --                   -fno-warn-incomplete-patterns++  if impl(ghc >= 8.0)+    ghc-options:        -Wcompat+  if impl(ghc >= 9.2)+    ghc-options:        -Wno-incomplete-uni-patterns++test-suite test+  type:                 exitcode-stdio-1.0+  hs-source-dirs:       test+  main-is:              GoldplateTests.hs+  default-language:     Haskell2010+  ghc-options:          -threaded+  build-depends:        base >= 4.11+                          -- goldplate requires ghc >= 8.4+                      , process+  build-tool-depends:   goldplate:goldplate >= 0.2+                         -- goldplate-0.2.0 adds "working_directory"+                      , MiniAgda:miniagda+                         -- We also need to depend on ourselves since goldplate calls us.
README.md view
@@ -1,22 +1,22 @@ # MiniAgda -[![Build Status](https://travis-ci.org/andreasabel/miniagda.svg?branch=master)](https://travis-ci.org/andreasabel/miniagda)+[![Cabal build][ci-badge]][ci-action] [![Hackage][hackage-badge]][hackage] + [ci-action]:     <https://github.com/andreasabel/MiniAgda/actions>+ [ci-badge]:      <https://github.com/andreasabel/MiniAgda/workflows/Haskell-CI/badge.svg>  [hackage]:       <https://hackage.haskell.org/package/MiniAgda>- [hackage-badge]: <https://img.shields.io/hackage/v/MiniAgda.svg>+ [hackage-badge]: <https://img.shields.io/hackage/v/MiniAgda.svg?color=informational>  A prototypical dependently typed languages with sized types and variances.  ## Installation -Requires GHC and cabal, for instance via the Haskell Platform.+Requires `ghc` and `cabal`, for instance via the Haskell Platform or via `ghcup`. In a shell, type ```-  cabal v1-update-  cabal v1-install alex-  cabal v1-install happy-  cabal v1-install MiniAgda+  cabal update+  cabal install MiniAgda ```  To build MiniAgda from source, replace the last command with
− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
− dist/build/miniagda/miniagda-tmp/Lexer.hs
@@ -1,1199 +0,0 @@-{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-missing-signatures #-}-{-# LANGUAGE CPP,MagicHash #-}-{-# LINE 2 "src/Lexer.x" #-}-module Lexer where-#if __GLASGOW_HASKELL__ >= 603-#include "ghcconfig.h"-#elif defined(__GLASGOW_HASKELL__)-#include "config.h"-#endif-#if __GLASGOW_HASKELL__ >= 503-import Data.Array-#else-import Array-#endif-#if __GLASGOW_HASKELL__ >= 503-import Data.Array.Base (unsafeAt)-import GHC.Exts-#else-import GlaExts-#endif-{-# LINE 1 "templates/wrappers.hs" #-}--- -------------------------------------------------------------------------------- Alex wrapper code.------ This code is in the PUBLIC DOMAIN; you may copy it freely and use--- it for any purpose whatsoever.------import Data.Word (Word8)-----------------import Data.Char (ord)-import qualified Data.Bits---- | Encode a Haskell String to a list of Word8 values, in UTF8 format.-utf8Encode :: Char -> [Word8]-utf8Encode = uncurry (:) . utf8Encode'--utf8Encode' :: Char -> (Word8, [Word8])-utf8Encode' c = case go (ord c) of-                  (x, xs) -> (fromIntegral x, map fromIntegral xs)- where-  go oc-   | oc <= 0x7f       = ( oc-                        , [-                        ])--   | oc <= 0x7ff      = ( 0xc0 + (oc `Data.Bits.shiftR` 6)-                        , [0x80 + oc Data.Bits..&. 0x3f-                        ])--   | oc <= 0xffff     = ( 0xe0 + (oc `Data.Bits.shiftR` 12)-                        , [0x80 + ((oc `Data.Bits.shiftR` 6) Data.Bits..&. 0x3f)-                        , 0x80 + oc Data.Bits..&. 0x3f-                        ])-   | otherwise        = ( 0xf0 + (oc `Data.Bits.shiftR` 18)-                        , [0x80 + ((oc `Data.Bits.shiftR` 12) Data.Bits..&. 0x3f)-                        , 0x80 + ((oc `Data.Bits.shiftR` 6) Data.Bits..&. 0x3f)-                        , 0x80 + oc Data.Bits..&. 0x3f-                        ])----type Byte = Word8---- -------------------------------------------------------------------------------- The input type---type AlexInput = (AlexPosn,     -- current position,-                  Char,         -- previous char-                  [Byte],       -- pending bytes on current char-                  String)       -- current input string--ignorePendingBytes :: AlexInput -> AlexInput-ignorePendingBytes (p,c,_ps,s) = (p,c,[],s)--alexInputPrevChar :: AlexInput -> Char-alexInputPrevChar (_p,c,_bs,_s) = c--alexGetByte :: AlexInput -> Maybe (Byte,AlexInput)-alexGetByte (p,c,(b:bs),s) = Just (b,(p,c,bs,s))-alexGetByte (_,_,[],[]) = Nothing-alexGetByte (p,_,[],(c:s))  = let p' = alexMove p c-                              in case utf8Encode' c of-                                   (b, bs) -> p' `seq`  Just (b, (p', c, bs, s))---------------------------------------------------------------- -------------------------------------------------------------------------------- Token positions---- `Posn' records the location of a token in the input text.  It has three--- fields: the address (number of chacaters preceding the token), line number--- and column of a token within the file. `start_pos' gives the position of the--- start of the file and `eof_pos' a standard encoding for the end of file.--- `move_pos' calculates the new position after traversing a given character,--- assuming the usual eight character tab stops.---data AlexPosn = AlexPn !Int !Int !Int-        deriving (Eq,Show)--alexStartPos :: AlexPosn-alexStartPos = AlexPn 0 1 1--alexMove :: AlexPosn -> Char -> AlexPosn-alexMove (AlexPn a l c) '\t' = AlexPn (a+1)  l     (c+alex_tab_size-((c-1) `mod` alex_tab_size))-alexMove (AlexPn a l _) '\n' = AlexPn (a+1) (l+1)   1-alexMove (AlexPn a l c) _    = AlexPn (a+1)  l     (c+1)----- -------------------------------------------------------------------------------- Monad (default and with ByteString input)------------------------------------------------------------------------------------------------------------------------------------------------------------ -------------------------------------------------------------------------------- Basic wrapper--------------------------- -------------------------------------------------------------------------------- Basic wrapper, ByteString version----------------------------------- -------------------------------------------------------------------------------- Posn wrapper---- Adds text positions to the basic model.-----alexScanTokens :: String -> [token]-alexScanTokens str0 = go (alexStartPos,'\n',[],str0)-  where go inp__@(pos,_,_,str) =-          case alexScan inp__ 0 of-                AlexEOF -> []-                AlexError ((AlexPn _ line column),_,_,_) -> error $ "lexical error at line " ++ (show line) ++ ", column " ++ (show column)-                AlexSkip  inp__' _ln     -> go inp__'-                AlexToken inp__' len act -> act pos (take len str) : go inp__'------ -------------------------------------------------------------------------------- Posn wrapper, ByteString version----------------- -------------------------------------------------------------------------------- GScan wrapper---- For compatibility with previous versions of Alex, and because we can.---------------alex_tab_size :: Int-alex_tab_size = 8-alex_base :: AlexAddr-alex_base = AlexA#-  "\xf8\xff\xff\xff\x0a\x00\x00\x00\xdd\x00\x00\x00\xca\x00\x00\x00\x5d\x01\x00\x00\x30\x02\x00\x00\xb0\x02\x00\x00\x9f\x01\x00\x00\x00\x00\x00\x00\x21\x03\x00\x00\x00\x00\x00\x00\xa1\x03\x00\x00\x21\x04\x00\x00\x21\x05\x00\x00\xe1\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x05\x00\x00\x00\x00\x00\x00\x93\x05\x00\x00\x93\x06\x00\x00\x53\x06\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\x49\x07\x00\x00\x1c\x08\x00\x00\x00\x00\x00\x00\x2d\x07\x00\x00\xf5\x08\x00\x00\x49\x09\x00\x00\x9d\x09\x00\x00\xf1\x09\x00\x00\x45\x0a\x00\x00\x99\x0a\x00\x00\xed\x0a\x00\x00\x41\x0b\x00\x00\x95\x0b\x00\x00\xe9\x0b\x00\x00\x3d\x0c\x00\x00\x91\x0c\x00\x00\xe5\x0c\x00\x00\x39\x0d\x00\x00\x8d\x0d\x00\x00\xe1\x0d\x00\x00\x35\x0e\x00\x00\x89\x0e\x00\x00\xdd\x0e\x00\x00\x31\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x0f\x00\x00\xde\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\xff\xff\xe1\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\xff\xff\xff\x00\x00\x00\x00\x46\x00\x00\x00\x2d\x10\x00\x00\x81\x10\x00\x00\xd5\x10\x00\x00\x29\x11\x00\x00\x7d\x11\x00\x00\xd1\x11\x00\x00\x25\x12\x00\x00\x79\x12\x00\x00\xcd\x12\x00\x00\x21\x13\x00\x00\x75\x13\x00\x00\xc9\x13\x00\x00\x1d\x14\x00\x00\x71\x14\x00\x00\xc5\x14\x00\x00\x19\x15\x00\x00\x6d\x15\x00\x00\xc1\x15\x00\x00\x15\x16\x00\x00\x69\x16\x00\x00\xbd\x16\x00\x00\x11\x17\x00\x00\x65\x17\x00\x00\xb9\x17\x00\x00\x0d\x18\x00\x00\x61\x18\x00\x00\xb5\x18\x00\x00\x09\x19\x00\x00\x5d\x19\x00\x00\xb1\x19\x00\x00\x05\x1a\x00\x00\x59\x1a\x00\x00\xad\x1a\x00\x00\x01\x1b\x00\x00\x55\x1b\x00\x00\xa9\x1b\x00\x00\xfd\x1b\x00\x00\x51\x1c\x00\x00\xa5\x1c\x00\x00\xf9\x1c\x00\x00\x4d\x1d\x00\x00\xa1\x1d\x00\x00\xf5\x1d\x00\x00\x49\x1e\x00\x00\x9d\x1e\x00\x00\xf1\x1e\x00\x00\x45\x1f\x00\x00\x99\x1f\x00\x00\xed\x1f\x00\x00\x41\x20\x00\x00\x95\x20\x00\x00\xe9\x20\x00\x00\x3d\x21\x00\x00\x91\x21\x00\x00\xe5\x21\x00\x00\x39\x22\x00\x00\x8d\x22\x00\x00\xe1\x22\x00\x00\x35\x23\x00\x00\x89\x23\x00\x00\xdd\x23\x00\x00\x31\x24\x00\x00\x85\x24\x00\x00\xd9\x24\x00\x00\x2d\x25\x00\x00\x81\x25\x00\x00\xd5\x25\x00\x00\x29\x26\x00\x00\x7d\x26\x00\x00\xd1\x26\x00\x00\x25\x27\x00\x00\x79\x27\x00\x00\xcd\x27\x00\x00\x21\x28\x00\x00\x75\x28\x00\x00\xc9\x28\x00\x00\x1d\x29\x00\x00\x71\x29\x00\x00\xc5\x29\x00\x00\x19\x2a\x00\x00\x6d\x2a\x00\x00"#--alex_table :: AlexAddr-alex_table = AlexA#-  "\x00\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x05\x00\x31\x00\x41\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x49\x00\x00\x00\x33\x00\x34\x00\x17\x00\x47\x00\x48\x00\x3a\x00\x3b\x00\x45\x00\x42\x00\x3f\x00\x43\x00\x40\x00\x44\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x3e\x00\x3d\x00\x4d\x00\x4a\x00\x4e\x00\x02\x00\x00\x00\x7c\x00\x7c\x00\x74\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x64\x00\x6e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x38\x00\x4b\x00\x39\x00\x46\x00\x4c\x00\x30\x00\x7c\x00\x7c\x00\x6a\x00\x5d\x00\x86\x00\x5a\x00\x7c\x00\x7c\x00\x98\x00\x7c\x00\x7c\x00\x5e\x00\x66\x00\x7c\x00\x7c\x00\x78\x00\x7c\x00\x75\x00\x70\x00\x80\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x36\x00\x3c\x00\x37\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0e\x00\x0c\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x07\x00\x0b\x00\x0a\x00\x0a\x00\x0a\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0e\x00\x0c\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x07\x00\x0b\x00\x0a\x00\x0a\x00\x0a\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x14\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x01\x00\x0e\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0e\x00\x0c\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x07\x00\x0b\x00\x0a\x00\x0a\x00\x0a\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x0d\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x14\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x15\x00\x04\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x13\x00\x06\x00\x10\x00\x10\x00\x10\x00\x11\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0e\x00\x0c\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x07\x00\x0b\x00\x0a\x00\x0a\x00\x0a\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x1c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x1d\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x1f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x23\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x29\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2a\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2d\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x32\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x9f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x60\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x72\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x9d\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x9c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x53\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x91\x00\x7c\x00\x7c\x00\x7c\x00\x9a\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x99\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x97\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x96\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x54\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x55\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x95\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x94\x00\x7c\x00\x7c\x00\x7c\x00\x8a\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x93\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x92\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x82\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x90\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x8f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x8d\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x5c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x6b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x87\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x61\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x8c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x63\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x8b\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x65\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x89\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x68\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x88\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x85\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x6f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x71\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x73\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x83\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x81\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x77\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x79\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7a\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x76\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x84\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x6d\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x6c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x69\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x62\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x5f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x67\x00\x7c\x00\x5b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x8e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x59\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x58\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x57\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x56\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x9b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x52\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x9e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x51\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x50\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x35\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x28\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x27\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7d\x00\x26\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x25\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x24\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x22\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x21\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x20\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x1e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x1b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--alex_check :: AlexAddr-alex_check = AlexA#-  "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x2d\x00\x3e\x00\x2b\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x3d\x00\xff\xff\x23\x00\x24\x00\x20\x00\x26\x00\x3e\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x2d\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x7c\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x30\x00\x31\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\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\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\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\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\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\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\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\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\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\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\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#--alex_deflt :: AlexAddr-alex_deflt = AlexA#-  "\xff\xff\x05\x00\x05\x00\xff\xff\xff\xff\x05\x00\xff\xff\x0f\x00\x0f\x00\x08\x00\x08\x00\xff\xff\xff\xff\x05\x00\x05\x00\x05\x00\x12\x00\x12\x00\x16\x00\x16\x00\x18\x00\x18\x00\x18\x00\xff\xff\x18\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#--alex_accept = listArray (0 :: Int, 160)-  [ AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccSkip-  , AlexAccSkip-  , AlexAccSkip-  , AlexAccSkip-  , AlexAcc 133-  , AlexAcc 132-  , AlexAcc 131-  , AlexAcc 130-  , AlexAcc 129-  , AlexAcc 128-  , AlexAcc 127-  , AlexAcc 126-  , AlexAcc 125-  , AlexAcc 124-  , AlexAcc 123-  , AlexAcc 122-  , AlexAcc 121-  , AlexAcc 120-  , AlexAcc 119-  , AlexAcc 118-  , AlexAcc 117-  , AlexAcc 116-  , AlexAcc 115-  , AlexAcc 114-  , AlexAcc 113-  , AlexAcc 112-  , AlexAcc 111-  , AlexAcc 110-  , AlexAcc 109-  , AlexAcc 108-  , AlexAcc 107-  , AlexAcc 106-  , AlexAcc 105-  , AlexAcc 104-  , AlexAcc 103-  , AlexAcc 102-  , AlexAcc 101-  , AlexAcc 100-  , AlexAcc 99-  , AlexAcc 98-  , AlexAcc 97-  , AlexAcc 96-  , AlexAcc 95-  , AlexAcc 94-  , AlexAcc 93-  , AlexAcc 92-  , AlexAcc 91-  , AlexAcc 90-  , AlexAcc 89-  , AlexAcc 88-  , AlexAcc 87-  , AlexAcc 86-  , AlexAcc 85-  , AlexAcc 84-  , AlexAcc 83-  , AlexAcc 82-  , AlexAcc 81-  , AlexAcc 80-  , AlexAcc 79-  , AlexAcc 78-  , AlexAcc 77-  , AlexAcc 76-  , AlexAcc 75-  , AlexAcc 74-  , AlexAcc 73-  , AlexAcc 72-  , AlexAcc 71-  , AlexAcc 70-  , AlexAcc 69-  , AlexAcc 68-  , AlexAcc 67-  , AlexAcc 66-  , AlexAcc 65-  , AlexAcc 64-  , AlexAcc 63-  , AlexAcc 62-  , AlexAcc 61-  , AlexAcc 60-  , AlexAcc 59-  , AlexAcc 58-  , AlexAcc 57-  , AlexAcc 56-  , AlexAcc 55-  , AlexAcc 54-  , AlexAcc 53-  , AlexAcc 52-  , AlexAcc 51-  , AlexAcc 50-  , AlexAcc 49-  , AlexAcc 48-  , AlexAcc 47-  , AlexAcc 46-  , AlexAcc 45-  , AlexAcc 44-  , AlexAcc 43-  , AlexAcc 42-  , AlexAcc 41-  , AlexAcc 40-  , AlexAcc 39-  , AlexAcc 38-  , AlexAcc 37-  , AlexAcc 36-  , AlexAcc 35-  , AlexAcc 34-  , AlexAcc 33-  , AlexAcc 32-  , AlexAcc 31-  , AlexAcc 30-  , AlexAcc 29-  , AlexAcc 28-  , AlexAcc 27-  , AlexAcc 26-  , AlexAcc 25-  , AlexAcc 24-  , AlexAcc 23-  , AlexAcc 22-  , AlexAcc 21-  , AlexAcc 20-  , AlexAcc 19-  , AlexAcc 18-  , AlexAcc 17-  , AlexAcc 16-  , AlexAcc 15-  , AlexAcc 14-  , AlexAcc 13-  , AlexAcc 12-  , AlexAcc 11-  , AlexAcc 10-  , AlexAcc 9-  , AlexAcc 8-  , AlexAcc 7-  , AlexAcc 6-  , AlexAcc 5-  , AlexAcc 4-  , AlexAcc 3-  , AlexAcc 2-  , AlexAcc 1-  , AlexAcc 0-  ]--alex_actions = array (0 :: Int, 134)-  [ (133,alex_action_3)-  , (132,alex_action_4)-  , (131,alex_action_5)-  , (130,alex_action_6)-  , (129,alex_action_7)-  , (128,alex_action_8)-  , (127,alex_action_9)-  , (126,alex_action_10)-  , (125,alex_action_11)-  , (124,alex_action_12)-  , (123,alex_action_13)-  , (122,alex_action_14)-  , (121,alex_action_15)-  , (120,alex_action_16)-  , (119,alex_action_17)-  , (118,alex_action_18)-  , (117,alex_action_19)-  , (116,alex_action_20)-  , (115,alex_action_21)-  , (114,alex_action_22)-  , (113,alex_action_23)-  , (112,alex_action_24)-  , (111,alex_action_25)-  , (110,alex_action_26)-  , (109,alex_action_27)-  , (108,alex_action_28)-  , (107,alex_action_29)-  , (106,alex_action_30)-  , (105,alex_action_31)-  , (104,alex_action_32)-  , (103,alex_action_33)-  , (102,alex_action_34)-  , (101,alex_action_35)-  , (100,alex_action_36)-  , (99,alex_action_37)-  , (98,alex_action_38)-  , (97,alex_action_39)-  , (96,alex_action_40)-  , (95,alex_action_41)-  , (94,alex_action_42)-  , (93,alex_action_43)-  , (92,alex_action_44)-  , (91,alex_action_45)-  , (90,alex_action_46)-  , (89,alex_action_47)-  , (88,alex_action_48)-  , (87,alex_action_49)-  , (86,alex_action_50)-  , (85,alex_action_51)-  , (84,alex_action_52)-  , (83,alex_action_53)-  , (82,alex_action_54)-  , (81,alex_action_55)-  , (80,alex_action_56)-  , (79,alex_action_56)-  , (78,alex_action_56)-  , (77,alex_action_56)-  , (76,alex_action_56)-  , (75,alex_action_56)-  , (74,alex_action_56)-  , (73,alex_action_56)-  , (72,alex_action_56)-  , (71,alex_action_56)-  , (70,alex_action_56)-  , (69,alex_action_56)-  , (68,alex_action_56)-  , (67,alex_action_56)-  , (66,alex_action_56)-  , (65,alex_action_56)-  , (64,alex_action_56)-  , (63,alex_action_56)-  , (62,alex_action_56)-  , (61,alex_action_56)-  , (60,alex_action_56)-  , (59,alex_action_56)-  , (58,alex_action_56)-  , (57,alex_action_56)-  , (56,alex_action_56)-  , (55,alex_action_56)-  , (54,alex_action_56)-  , (53,alex_action_56)-  , (52,alex_action_56)-  , (51,alex_action_56)-  , (50,alex_action_56)-  , (49,alex_action_56)-  , (48,alex_action_56)-  , (47,alex_action_56)-  , (46,alex_action_56)-  , (45,alex_action_56)-  , (44,alex_action_56)-  , (43,alex_action_56)-  , (42,alex_action_56)-  , (41,alex_action_56)-  , (40,alex_action_56)-  , (39,alex_action_56)-  , (38,alex_action_56)-  , (37,alex_action_56)-  , (36,alex_action_56)-  , (35,alex_action_56)-  , (34,alex_action_56)-  , (33,alex_action_56)-  , (32,alex_action_56)-  , (31,alex_action_56)-  , (30,alex_action_56)-  , (29,alex_action_56)-  , (28,alex_action_56)-  , (27,alex_action_56)-  , (26,alex_action_56)-  , (25,alex_action_56)-  , (24,alex_action_56)-  , (23,alex_action_56)-  , (22,alex_action_56)-  , (21,alex_action_56)-  , (20,alex_action_56)-  , (19,alex_action_56)-  , (18,alex_action_56)-  , (17,alex_action_56)-  , (16,alex_action_56)-  , (15,alex_action_56)-  , (14,alex_action_56)-  , (13,alex_action_56)-  , (12,alex_action_56)-  , (11,alex_action_56)-  , (10,alex_action_56)-  , (9,alex_action_56)-  , (8,alex_action_56)-  , (7,alex_action_56)-  , (6,alex_action_56)-  , (5,alex_action_56)-  , (4,alex_action_56)-  , (3,alex_action_56)-  , (2,alex_action_56)-  , (1,alex_action_56)-  , (0,alex_action_57)-  ]--{-# LINE 80 "src/Lexer.x" #-}-data Token-  = Id String AlexPosn-  | QualId (String, String) AlexPosn-  | Number String AlexPosn-  | Sized AlexPosn-  | Data AlexPosn-  | CoData AlexPosn-  | Record AlexPosn-  | Fields AlexPosn-  | Mutual AlexPosn-  | Fun AlexPosn-  | CoFun AlexPosn-  | Pattern AlexPosn-  | Case AlexPosn-  | Def AlexPosn-  | Let AlexPosn-  | In AlexPosn-  | Type AlexPosn-  | Set AlexPosn-  | CoSet AlexPosn-  | Eval AlexPosn-  | Fail AlexPosn-  | Check AlexPosn-  | TrustMe AlexPosn-  | Impredicative AlexPosn-  -- size type-  | Size AlexPosn-  | Infty AlexPosn-  | Succ AlexPosn-  | Max AlexPosn-  ---  | LTri AlexPosn-  | RTri AlexPosn-  | AngleOpen AlexPosn-  | AngleClose AlexPosn-  | BrOpen AlexPosn-  | BrClose AlexPosn-  | BracketOpen AlexPosn-  | BracketClose AlexPosn-  | PrOpen AlexPosn-  | PrClose AlexPosn-  | Bar AlexPosn-  | Sem AlexPosn-  | Col AlexPosn-  | Comma AlexPosn-  | Dot AlexPosn-  | Arrow AlexPosn-  | Leq AlexPosn-  | Eq AlexPosn-  | PlusPlus AlexPosn-  | Plus AlexPosn-  | Minus AlexPosn-  | Slash AlexPosn-  | Times AlexPosn-  | Hat AlexPosn-  | Amp AlexPosn-  | Lam AlexPosn-  | Underscore AlexPosn-  | NotUsed AlexPosn -- so happy doesn't generate overlap case pattern warning-    deriving (Eq)--qualId s p = let (m, '.':n) = break (== '.') s in QualId (m,n) p--prettyTok :: Token -> String-prettyTok c = "\"" ++ tk ++ "\" at " ++ (prettyAlexPosn pos) where-  (tk,pos) = case c of-    (Id s p) -> (show s,p)-    (QualId (m, n) p) -> (show m ++ "." ++ show n, p)-    (Number i p) -> (i,p)-    Sized p -> ("sized",p)-    Data p -> ("data",p)-    CoData p -> ("codata",p)-    Record p -> ("record",p)-    Fields p -> ("fields",p)-    Mutual p -> ("mutual",p)-    Fun p -> ("fun",p)-    CoFun p -> ("cofun",p)-    Pattern p -> ("pattern",p)-    Case p -> ("case",p)-    Def p -> ("def",p)-    Let p -> ("let",p)-    In p -> ("in",p)-    Eval p -> ("eval",p)-    Fail p -> ("fail",p)-    Check p -> ("check",p)-    TrustMe p -> ("trustme",p)-    Impredicative p -> ("impredicative",p)-    Type p -> ("Type",p)-    Set p -> ("Set",p)-    CoSet p -> ("CoSet",p)-    Size p -> ("Size",p)-    Infty p -> ("#",p)-    Succ p -> ("$",p)-    Max p -> ("max",p)-    LTri p -> ("<|",p)-    RTri p -> ("|>",p)-    AngleOpen p -> ("<",p)-    AngleClose p -> (">",p)-    BrOpen p -> ("{",p)-    BrClose p -> ("}",p)-    BracketOpen p -> ("[",p)-    BracketClose p -> ("]",p)-    PrOpen p -> ("(",p)-    PrClose p -> (")",p)-    Bar p -> ("|",p)-    Sem p -> (";",p)-    Col p -> (":",p)-    Comma p -> (",",p)-    Dot p -> (".",p)-    Arrow p -> ("->",p)-    Leq p -> ("<=",p)-    Eq p -> ("=",p)-    PlusPlus p -> ("++",p)-    Plus p -> ("+",p)-    Minus p -> ("-",p)-    Slash p -> ("/",p)-    Times p -> ("*",p)-    Hat p -> ("^",p)-    Amp p -> ("&",p)-    Lam p -> ("\\",p)-    Underscore p -> ("_",p)-    _ -> error "not used"---prettyAlexPosn (AlexPn _ line row) = "line " ++ show line ++ ", row " ++ show row--tok f p s = f p s-alex_action_3 = tok (\p s -> Sized p)-alex_action_4 = tok (\p s -> Data p)-alex_action_5 = tok (\p s -> CoData p)-alex_action_6 = tok (\p s -> Record p)-alex_action_7 = tok (\p s -> Fields p)-alex_action_8 = tok (\p s -> Fun p)-alex_action_9 = tok (\p s -> CoFun p)-alex_action_10 = tok (\p s -> Pattern p)-alex_action_11 = tok (\p s -> Case p)-alex_action_12 = tok (\p s -> Def p)-alex_action_13 = tok (\p s -> Let p)-alex_action_14 = tok (\p s -> In p)-alex_action_15 = tok (\p s -> Eval p)-alex_action_16 = tok (\p s -> Fail p)-alex_action_17 = tok (\p s -> Check p)-alex_action_18 = tok (\p s -> TrustMe p)-alex_action_19 = tok (\p s -> Impredicative p)-alex_action_20 = tok (\p s -> Mutual p)-alex_action_21 = tok (\p s -> Type p)-alex_action_22 = tok (\p s -> Set p)-alex_action_23 = tok (\p s -> CoSet p)-alex_action_24 = tok (\p s -> LTri p)-alex_action_25 = tok (\p s -> RTri p)-alex_action_26 = tok (\p s -> Size p)-alex_action_27 = tok (\p s -> Infty p)-alex_action_28 = tok (\p s -> Succ p)-alex_action_29 = tok (\p s -> Max p)-alex_action_30 = tok (\p s -> BrOpen p)-alex_action_31 = tok (\p s -> BrClose p)-alex_action_32 = tok (\p s -> BracketOpen p)-alex_action_33 = tok (\p s -> BracketClose p)-alex_action_34 = tok (\p s -> PrOpen p)-alex_action_35 = tok (\p s -> PrClose p)-alex_action_36 = tok (\p s -> Bar p)-alex_action_37 = tok (\p s -> Sem p)-alex_action_38 = tok (\p s -> Col p)-alex_action_39 = tok (\p s -> Comma p)-alex_action_40 = tok (\p s -> Dot p)-alex_action_41 = tok (\p s -> PlusPlus p)-alex_action_42 = tok (\p s -> Plus p)-alex_action_43 = tok (\p s -> Minus p)-alex_action_44 = tok (\p s -> Slash p)-alex_action_45 = tok (\p s -> Times p)-alex_action_46 = tok (\p s -> Hat p)-alex_action_47 = tok (\p s -> Amp p)-alex_action_48 = tok (\p s -> Arrow p)-alex_action_49 = tok (\p s -> Leq p)-alex_action_50 = tok (\p s -> Eq p)-alex_action_51 = tok (\p s -> Lam p)-alex_action_52 = tok (\p s -> Underscore p)-alex_action_53 = tok (\p s -> AngleOpen p)-alex_action_54 = tok (\p s -> AngleClose p)-alex_action_55 = tok (\p s -> (Number s p ))-alex_action_56 = tok (\p s -> (Id s p ))-alex_action_57 = tok (\p s -> (qualId s p))--{-# LINE 1 "templates/GenericTemplate.hs" #-}--- -------------------------------------------------------------------------------- ALEX TEMPLATE------ This code is in the PUBLIC DOMAIN; you may copy it freely and use--- it for any purpose whatsoever.---- -------------------------------------------------------------------------------- INTERNALS and main scanner engine-------------------- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.-#if __GLASGOW_HASKELL__ > 706-#define GTE(n,m) (tagToEnum# (n >=# m))-#define EQ(n,m) (tagToEnum# (n ==# m))-#else-#define GTE(n,m) (n >=# m)-#define EQ(n,m) (n ==# m)-#endif--------------------data AlexAddr = AlexA# Addr#--- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.-#if __GLASGOW_HASKELL__ < 503-uncheckedShiftL# = shiftL#-#endif--{-# INLINE alexIndexInt16OffAddr #-}-alexIndexInt16OffAddr (AlexA# arr) off =-#ifdef WORDS_BIGENDIAN-  narrow16Int# i-  where-        i    = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)-        high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))-        low  = int2Word# (ord# (indexCharOffAddr# arr off'))-        off' = off *# 2#-#else-  indexInt16OffAddr# arr off-#endif------{-# INLINE alexIndexInt32OffAddr #-}-alexIndexInt32OffAddr (AlexA# arr) off =-#ifdef WORDS_BIGENDIAN-  narrow32Int# i-  where-   i    = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#`-                     (b2 `uncheckedShiftL#` 16#) `or#`-                     (b1 `uncheckedShiftL#` 8#) `or#` b0)-   b3   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#)))-   b2   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#)))-   b1   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))-   b0   = int2Word# (ord# (indexCharOffAddr# arr off'))-   off' = off *# 4#-#else-  indexInt32OffAddr# arr off-#endif-------#if __GLASGOW_HASKELL__ < 503-quickIndex arr i = arr ! i-#else--- GHC >= 503, unsafeAt is available from Data.Array.Base.-quickIndex = unsafeAt-#endif------- -------------------------------------------------------------------------------- Main lexing routines--data AlexReturn a-  = AlexEOF-  | AlexError  !AlexInput-  | AlexSkip   !AlexInput !Int-  | AlexToken  !AlexInput !Int a---- alexScan :: AlexInput -> StartCode -> AlexReturn a-alexScan input__ (I# (sc))-  = alexScanUser undefined input__ (I# (sc))--alexScanUser user__ input__ (I# (sc))-  = case alex_scan_tkn user__ input__ 0# input__ sc AlexNone of-  (AlexNone, input__') ->-    case alexGetByte input__ of-      Nothing ->----                                   AlexEOF-      Just _ ->----                                   AlexError input__'--  (AlexLastSkip input__'' len, _) ->----    AlexSkip input__'' len--  (AlexLastAcc k input__''' len, _) ->----    AlexToken input__''' len (alex_actions ! k)----- Push the input through the DFA, remembering the most recent accepting--- state it encountered.--alex_scan_tkn user__ orig_input len input__ s last_acc =-  input__ `seq` -- strict in the input-  let-  new_acc = (check_accs (alex_accept `quickIndex` (I# (s))))-  in-  new_acc `seq`-  case alexGetByte input__ of-     Nothing -> (new_acc, input__)-     Just (c, new_input) ->----      case fromIntegral c of { (I# (ord_c)) ->-        let-                base   = alexIndexInt32OffAddr alex_base s-                offset = (base +# ord_c)-                check  = alexIndexInt16OffAddr alex_check offset--                new_s = if GTE(offset,0#) && EQ(check,ord_c)-                          then alexIndexInt16OffAddr alex_table offset-                          else alexIndexInt16OffAddr alex_deflt s-        in-        case new_s of-            -1# -> (new_acc, input__)-                -- on an error, we want to keep the input *before* the-                -- character that failed, not after.-            _ -> alex_scan_tkn user__ orig_input-----                   (if c < 0x80 || c >= 0xC0 then (len +# 1#) else len)-                   -- note that the length is increased ONLY if this is the 1st byte in a char encoding)--                   new_input new_s new_acc-      }-  where-        check_accs (AlexAccNone) = last_acc-        check_accs (AlexAcc a  ) = AlexLastAcc a input__ (I# (len))-        check_accs (AlexAccSkip) = AlexLastSkip  input__ (I# (len))--------------data AlexLastAcc-  = AlexNone-  | AlexLastAcc !Int !AlexInput !Int-  | AlexLastSkip     !AlexInput !Int--data AlexAcc user-  = AlexAccNone-  | AlexAcc Int-  | AlexAccSkip-----------------------------
− dist/build/miniagda/miniagda-tmp/Parser.hs
@@ -1,2742 +0,0 @@-{-# OPTIONS_GHC -w #-}-{-# OPTIONS -XMagicHash -XBangPatterns -XTypeSynonymInstances -XFlexibleInstances -cpp #-}-#if __GLASGOW_HASKELL__ >= 710-{-# OPTIONS_GHC -XPartialTypeSignatures #-}-#endif-{-# LANGUAGE BangPatterns #-}-module Parser where--import qualified Lexer as T-import qualified Concrete as C--import Abstract (Decoration(..),Dec,defaultDec,Override(..))-import Polarity (Pol(..))-import qualified Abstract as A-import qualified Polarity as A-import Concrete (Name,patApp)-import qualified Data.Array as Happy_Data_Array-import qualified Data.Bits as Bits-import qualified GHC.Exts as Happy_GHC_Exts-import Control.Applicative(Applicative(..))-import Control.Monad (ap)---- parser produced by Happy Version 1.19.12--newtype HappyAbsSyn  = HappyAbsSyn HappyAny-#if __GLASGOW_HASKELL__ >= 607-type HappyAny = Happy_GHC_Exts.Any-#else-type HappyAny = forall a . a-#endif-newtype HappyWrap4 = HappyWrap4 ([C.Declaration])-happyIn4 :: ([C.Declaration]) -> (HappyAbsSyn )-happyIn4 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap4 x)-{-# INLINE happyIn4 #-}-happyOut4 :: (HappyAbsSyn ) -> HappyWrap4-happyOut4 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut4 #-}-newtype HappyWrap5 = HappyWrap5 ([C.Declaration])-happyIn5 :: ([C.Declaration]) -> (HappyAbsSyn )-happyIn5 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap5 x)-{-# INLINE happyIn5 #-}-happyOut5 :: (HappyAbsSyn ) -> HappyWrap5-happyOut5 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut5 #-}-newtype HappyWrap6 = HappyWrap6 (C.Declaration)-happyIn6 :: (C.Declaration) -> (HappyAbsSyn )-happyIn6 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap6 x)-{-# INLINE happyIn6 #-}-happyOut6 :: (HappyAbsSyn ) -> HappyWrap6-happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut6 #-}-newtype HappyWrap7 = HappyWrap7 (C.Declaration)-happyIn7 :: (C.Declaration) -> (HappyAbsSyn )-happyIn7 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap7 x)-{-# INLINE happyIn7 #-}-happyOut7 :: (HappyAbsSyn ) -> HappyWrap7-happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut7 #-}-newtype HappyWrap8 = HappyWrap8 (C.Declaration)-happyIn8 :: (C.Declaration) -> (HappyAbsSyn )-happyIn8 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap8 x)-{-# INLINE happyIn8 #-}-happyOut8 :: (HappyAbsSyn ) -> HappyWrap8-happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut8 #-}-newtype HappyWrap9 = HappyWrap9 (C.Declaration)-happyIn9 :: (C.Declaration) -> (HappyAbsSyn )-happyIn9 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap9 x)-{-# INLINE happyIn9 #-}-happyOut9 :: (HappyAbsSyn ) -> HappyWrap9-happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut9 #-}-newtype HappyWrap10 = HappyWrap10 (C.Declaration)-happyIn10 :: (C.Declaration) -> (HappyAbsSyn )-happyIn10 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap10 x)-{-# INLINE happyIn10 #-}-happyOut10 :: (HappyAbsSyn ) -> HappyWrap10-happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut10 #-}-newtype HappyWrap11 = HappyWrap11 (C.Declaration)-happyIn11 :: (C.Declaration) -> (HappyAbsSyn )-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap11 x)-{-# INLINE happyIn11 #-}-happyOut11 :: (HappyAbsSyn ) -> HappyWrap11-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut11 #-}-newtype HappyWrap12 = HappyWrap12 ((C.Name, C.Telescope, C.Type, [C.Constructor], [C.Name]))-happyIn12 :: ((C.Name, C.Telescope, C.Type, [C.Constructor], [C.Name])) -> (HappyAbsSyn )-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap12 x)-{-# INLINE happyIn12 #-}-happyOut12 :: (HappyAbsSyn ) -> HappyWrap12-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut12 #-}-newtype HappyWrap13 = HappyWrap13 ((C.Name, C.Telescope, C.Type, C.Constructor, [C.Name]))-happyIn13 :: ((C.Name, C.Telescope, C.Type, C.Constructor, [C.Name])) -> (HappyAbsSyn )-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap13 x)-{-# INLINE happyIn13 #-}-happyOut13 :: (HappyAbsSyn ) -> HappyWrap13-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut13 #-}-newtype HappyWrap14 = HappyWrap14 (C.Declaration)-happyIn14 :: (C.Declaration) -> (HappyAbsSyn )-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap14 x)-{-# INLINE happyIn14 #-}-happyOut14 :: (HappyAbsSyn ) -> HappyWrap14-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut14 #-}-newtype HappyWrap15 = HappyWrap15 (C.Declaration)-happyIn15 :: (C.Declaration) -> (HappyAbsSyn )-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap15 x)-{-# INLINE happyIn15 #-}-happyOut15 :: (HappyAbsSyn ) -> HappyWrap15-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut15 #-}-newtype HappyWrap16 = HappyWrap16 (C.Declaration)-happyIn16 :: (C.Declaration) -> (HappyAbsSyn )-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap16 x)-{-# INLINE happyIn16 #-}-happyOut16 :: (HappyAbsSyn ) -> HappyWrap16-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut16 #-}-newtype HappyWrap17 = HappyWrap17 (C.Declaration)-happyIn17 :: (C.Declaration) -> (HappyAbsSyn )-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap17 x)-{-# INLINE happyIn17 #-}-happyOut17 :: (HappyAbsSyn ) -> HappyWrap17-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut17 #-}-newtype HappyWrap18 = HappyWrap18 (C.LetDef)-happyIn18 :: (C.LetDef) -> (HappyAbsSyn )-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap18 x)-{-# INLINE happyIn18 #-}-happyOut18 :: (HappyAbsSyn ) -> HappyWrap18-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut18 #-}-newtype HappyWrap19 = HappyWrap19 (Bool)-happyIn19 :: (Bool) -> (HappyAbsSyn )-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap19 x)-{-# INLINE happyIn19 #-}-happyOut19 :: (HappyAbsSyn ) -> HappyWrap19-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut19 #-}-newtype HappyWrap20 = HappyWrap20 (Maybe C.Type)-happyIn20 :: (Maybe C.Type) -> (HappyAbsSyn )-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap20 x)-{-# INLINE happyIn20 #-}-happyOut20 :: (HappyAbsSyn ) -> HappyWrap20-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut20 #-}-newtype HappyWrap21 = HappyWrap21 (C.Declaration)-happyIn21 :: (C.Declaration) -> (HappyAbsSyn )-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap21 x)-{-# INLINE happyIn21 #-}-happyOut21 :: (HappyAbsSyn ) -> HappyWrap21-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut21 #-}-newtype HappyWrap22 = HappyWrap22 ([Name])-happyIn22 :: ([Name]) -> (HappyAbsSyn )-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap22 x)-{-# INLINE happyIn22 #-}-happyOut22 :: (HappyAbsSyn ) -> HappyWrap22-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut22 #-}-newtype HappyWrap23 = HappyWrap23 (Name)-happyIn23 :: (Name) -> (HappyAbsSyn )-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap23 x)-{-# INLINE happyIn23 #-}-happyOut23 :: (HappyAbsSyn ) -> HappyWrap23-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut23 #-}-newtype HappyWrap24 = HappyWrap24 ([Name])-happyIn24 :: ([Name]) -> (HappyAbsSyn )-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap24 x)-{-# INLINE happyIn24 #-}-happyOut24 :: (HappyAbsSyn ) -> HappyWrap24-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut24 #-}-newtype HappyWrap25 = HappyWrap25 ([Name])-happyIn25 :: ([Name]) -> (HappyAbsSyn )-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap25 x)-{-# INLINE happyIn25 #-}-happyOut25 :: (HappyAbsSyn ) -> HappyWrap25-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut25 #-}-newtype HappyWrap26 = HappyWrap26 (Pol)-happyIn26 :: (Pol) -> (HappyAbsSyn )-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap26 x)-{-# INLINE happyIn26 #-}-happyOut26 :: (HappyAbsSyn ) -> HappyWrap26-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut26 #-}-newtype HappyWrap27 = HappyWrap27 (A.Measure C.Expr)-happyIn27 :: (A.Measure C.Expr) -> (HappyAbsSyn )-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap27 x)-{-# INLINE happyIn27 #-}-happyOut27 :: (HappyAbsSyn ) -> HappyWrap27-happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut27 #-}-newtype HappyWrap28 = HappyWrap28 ([C.Expr])-happyIn28 :: ([C.Expr]) -> (HappyAbsSyn )-happyIn28 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap28 x)-{-# INLINE happyIn28 #-}-happyOut28 :: (HappyAbsSyn ) -> HappyWrap28-happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut28 #-}-newtype HappyWrap29 = HappyWrap29 (A.Bound C.Expr)-happyIn29 :: (A.Bound C.Expr) -> (HappyAbsSyn )-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap29 x)-{-# INLINE happyIn29 #-}-happyOut29 :: (HappyAbsSyn ) -> HappyWrap29-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut29 #-}-newtype HappyWrap30 = HappyWrap30 ([Name])-happyIn30 :: ([Name]) -> (HappyAbsSyn )-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap30 x)-{-# INLINE happyIn30 #-}-happyOut30 :: (HappyAbsSyn ) -> HappyWrap30-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut30 #-}-newtype HappyWrap31 = HappyWrap31 (C.Telescope)-happyIn31 :: (C.Telescope) -> (HappyAbsSyn )-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap31 x)-{-# INLINE happyIn31 #-}-happyOut31 :: (HappyAbsSyn ) -> HappyWrap31-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut31 #-}-newtype HappyWrap32 = HappyWrap32 (C.TBind)-happyIn32 :: (C.TBind) -> (HappyAbsSyn )-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap32 x)-{-# INLINE happyIn32 #-}-happyOut32 :: (HappyAbsSyn ) -> HappyWrap32-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut32 #-}-newtype HappyWrap33 = HappyWrap33 (C.TBind)-happyIn33 :: (C.TBind) -> (HappyAbsSyn )-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap33 x)-{-# INLINE happyIn33 #-}-happyOut33 :: (HappyAbsSyn ) -> HappyWrap33-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut33 #-}-newtype HappyWrap34 = HappyWrap34 (C.TBind)-happyIn34 :: (C.TBind) -> (HappyAbsSyn )-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap34 x)-{-# INLINE happyIn34 #-}-happyOut34 :: (HappyAbsSyn ) -> HappyWrap34-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut34 #-}-newtype HappyWrap35 = HappyWrap35 ((Dec, C.Name))-happyIn35 :: ((Dec, C.Name)) -> (HappyAbsSyn )-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap35 x)-{-# INLINE happyIn35 #-}-happyOut35 :: (HappyAbsSyn ) -> HappyWrap35-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut35 #-}-newtype HappyWrap36 = HappyWrap36 (C.LetDef)-happyIn36 :: (C.LetDef) -> (HappyAbsSyn )-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap36 x)-{-# INLINE happyIn36 #-}-happyOut36 :: (HappyAbsSyn ) -> HappyWrap36-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut36 #-}-newtype HappyWrap37 = HappyWrap37 (C.Telescope)-happyIn37 :: (C.Telescope) -> (HappyAbsSyn )-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap37 x)-{-# INLINE happyIn37 #-}-happyOut37 :: (HappyAbsSyn ) -> HappyWrap37-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut37 #-}-newtype HappyWrap38 = HappyWrap38 (C.Expr)-happyIn38 :: (C.Expr) -> (HappyAbsSyn )-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap38 x)-{-# INLINE happyIn38 #-}-happyOut38 :: (HappyAbsSyn ) -> HappyWrap38-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut38 #-}-newtype HappyWrap39 = HappyWrap39 ([C.Expr])-happyIn39 :: ([C.Expr]) -> (HappyAbsSyn )-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap39 x)-{-# INLINE happyIn39 #-}-happyOut39 :: (HappyAbsSyn ) -> HappyWrap39-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut39 #-}-newtype HappyWrap40 = HappyWrap40 (C.Expr)-happyIn40 :: (C.Expr) -> (HappyAbsSyn )-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap40 x)-{-# INLINE happyIn40 #-}-happyOut40 :: (HappyAbsSyn ) -> HappyWrap40-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut40 #-}-newtype HappyWrap41 = HappyWrap41 (C.Expr)-happyIn41 :: (C.Expr) -> (HappyAbsSyn )-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap41 x)-{-# INLINE happyIn41 #-}-happyOut41 :: (HappyAbsSyn ) -> HappyWrap41-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut41 #-}-newtype HappyWrap42 = HappyWrap42 (C.TBind)-happyIn42 :: (C.TBind) -> (HappyAbsSyn )-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap42 x)-{-# INLINE happyIn42 #-}-happyOut42 :: (HappyAbsSyn ) -> HappyWrap42-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut42 #-}-newtype HappyWrap43 = HappyWrap43 (C.Expr)-happyIn43 :: (C.Expr) -> (HappyAbsSyn )-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap43 x)-{-# INLINE happyIn43 #-}-happyOut43 :: (HappyAbsSyn ) -> HappyWrap43-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut43 #-}-newtype HappyWrap44 = HappyWrap44 ([C.Expr])-happyIn44 :: ([C.Expr]) -> (HappyAbsSyn )-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap44 x)-{-# INLINE happyIn44 #-}-happyOut44 :: (HappyAbsSyn ) -> HappyWrap44-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut44 #-}-newtype HappyWrap45 = HappyWrap45 (C.Expr)-happyIn45 :: (C.Expr) -> (HappyAbsSyn )-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap45 x)-{-# INLINE happyIn45 #-}-happyOut45 :: (HappyAbsSyn ) -> HappyWrap45-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut45 #-}-newtype HappyWrap46 = HappyWrap46 (C.QName)-happyIn46 :: (C.QName) -> (HappyAbsSyn )-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap46 x)-{-# INLINE happyIn46 #-}-happyOut46 :: (HappyAbsSyn ) -> HappyWrap46-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut46 #-}-newtype HappyWrap47 = HappyWrap47 ([([Name],C.Expr)])-happyIn47 :: ([([Name],C.Expr)]) -> (HappyAbsSyn )-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap47 x)-{-# INLINE happyIn47 #-}-happyOut47 :: (HappyAbsSyn ) -> HappyWrap47-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut47 #-}-newtype HappyWrap48 = HappyWrap48 (([Name],C.Expr))-happyIn48 :: (([Name],C.Expr)) -> (HappyAbsSyn )-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap48 x)-{-# INLINE happyIn48 #-}-happyOut48 :: (HappyAbsSyn ) -> HappyWrap48-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut48 #-}-newtype HappyWrap49 = HappyWrap49 (C.TypeSig)-happyIn49 :: (C.TypeSig) -> (HappyAbsSyn )-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap49 x)-{-# INLINE happyIn49 #-}-happyOut49 :: (HappyAbsSyn ) -> HappyWrap49-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut49 #-}-newtype HappyWrap50 = HappyWrap50 (C.Constructor)-happyIn50 :: (C.Constructor) -> (HappyAbsSyn )-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap50 x)-{-# INLINE happyIn50 #-}-happyOut50 :: (HappyAbsSyn ) -> HappyWrap50-happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut50 #-}-newtype HappyWrap51 = HappyWrap51 ([C.Constructor ])-happyIn51 :: ([C.Constructor ]) -> (HappyAbsSyn )-happyIn51 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap51 x)-{-# INLINE happyIn51 #-}-happyOut51 :: (HappyAbsSyn ) -> HappyWrap51-happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut51 #-}-newtype HappyWrap52 = HappyWrap52 ([C.Clause])-happyIn52 :: ([C.Clause]) -> (HappyAbsSyn )-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap52 x)-{-# INLINE happyIn52 #-}-happyOut52 :: (HappyAbsSyn ) -> HappyWrap52-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut52 #-}-newtype HappyWrap53 = HappyWrap53 (C.Clause)-happyIn53 :: (C.Clause) -> (HappyAbsSyn )-happyIn53 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap53 x)-{-# INLINE happyIn53 #-}-happyOut53 :: (HappyAbsSyn ) -> HappyWrap53-happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut53 #-}-newtype HappyWrap54 = HappyWrap54 ([C.Pattern])-happyIn54 :: ([C.Pattern]) -> (HappyAbsSyn )-happyIn54 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap54 x)-{-# INLINE happyIn54 #-}-happyOut54 :: (HappyAbsSyn ) -> HappyWrap54-happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut54 #-}-newtype HappyWrap55 = HappyWrap55 ([C.Pattern])-happyIn55 :: ([C.Pattern]) -> (HappyAbsSyn )-happyIn55 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap55 x)-{-# INLINE happyIn55 #-}-happyOut55 :: (HappyAbsSyn ) -> HappyWrap55-happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut55 #-}-newtype HappyWrap56 = HappyWrap56 (C.Pattern)-happyIn56 :: (C.Pattern) -> (HappyAbsSyn )-happyIn56 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap56 x)-{-# INLINE happyIn56 #-}-happyOut56 :: (HappyAbsSyn ) -> HappyWrap56-happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut56 #-}-newtype HappyWrap57 = HappyWrap57 (C.Pattern)-happyIn57 :: (C.Pattern) -> (HappyAbsSyn )-happyIn57 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap57 x)-{-# INLINE happyIn57 #-}-happyOut57 :: (HappyAbsSyn ) -> HappyWrap57-happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut57 #-}-newtype HappyWrap58 = HappyWrap58 (C.Pattern)-happyIn58 :: (C.Pattern) -> (HappyAbsSyn )-happyIn58 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap58 x)-{-# INLINE happyIn58 #-}-happyOut58 :: (HappyAbsSyn ) -> HappyWrap58-happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut58 #-}-newtype HappyWrap59 = HappyWrap59 (C.Pattern)-happyIn59 :: (C.Pattern) -> (HappyAbsSyn )-happyIn59 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap59 x)-{-# INLINE happyIn59 #-}-happyOut59 :: (HappyAbsSyn ) -> HappyWrap59-happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut59 #-}-newtype HappyWrap60 = HappyWrap60 (C.Pattern)-happyIn60 :: (C.Pattern) -> (HappyAbsSyn )-happyIn60 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap60 x)-{-# INLINE happyIn60 #-}-happyOut60 :: (HappyAbsSyn ) -> HappyWrap60-happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut60 #-}-newtype HappyWrap61 = HappyWrap61 ([C.Clause])-happyIn61 :: ([C.Clause]) -> (HappyAbsSyn )-happyIn61 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap61 x)-{-# INLINE happyIn61 #-}-happyOut61 :: (HappyAbsSyn ) -> HappyWrap61-happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut61 #-}-newtype HappyWrap62 = HappyWrap62 ([C.Clause ])-happyIn62 :: ([C.Clause ]) -> (HappyAbsSyn )-happyIn62 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap62 x)-{-# INLINE happyIn62 #-}-happyOut62 :: (HappyAbsSyn ) -> HappyWrap62-happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut62 #-}-newtype HappyWrap63 = HappyWrap63 (C.TBind)-happyIn63 :: (C.TBind) -> (HappyAbsSyn )-happyIn63 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap63 x)-{-# INLINE happyIn63 #-}-happyOut63 :: (HappyAbsSyn ) -> HappyWrap63-happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut63 #-}-newtype HappyWrap64 = HappyWrap64 (C.Telescope)-happyIn64 :: (C.Telescope) -> (HappyAbsSyn )-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap64 x)-{-# INLINE happyIn64 #-}-happyOut64 :: (HappyAbsSyn ) -> HappyWrap64-happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut64 #-}-happyInTok :: (T.Token) -> (HappyAbsSyn )-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyInTok #-}-happyOutTok :: (HappyAbsSyn ) -> (T.Token)-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOutTok #-}---happyExpList :: HappyAddr-happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x78\x0f\x1f\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x14\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x75\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x40\x4f\x10\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\xc0\x4f\x55\xc4\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\xd4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x40\x4f\x10\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x4f\x10\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x80\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x14\x10\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x80\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\xc0\x4f\x10\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\xc0\x4f\x55\xc4\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\xc0\x4f\x10\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x75\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x04\x10\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x30\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x04\x10\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x04\x10\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x04\x10\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--{-# NOINLINE happyExpListPerState #-}-happyExpListPerState st =-    token_strs_expected-  where token_strs = ["error","%dummy","%start_parse","TopLevel","Declarations","Declaration","Data","SizedData","CoData","SizedCoData","RecordDecl","DataDef","DataDef1","Fun","CoFun","Mutual","Let","LetDef","Eval","TypeOpt","PatternDecl","OptFields","Id","SpcIds","Ids","Pol","Measure","Meas","Bound","EIds","Telescope","TBind","EBind","HBind","PolId","LLetDef","Domain","ExprT","ExprList","Expr","Expr0","SigDom","Expr1","Expr2","Expr3","QName","RecordDefs","RecordDef","TypeSig","Constructor","Constructors","Cases","Clause","LHS","Patterns","Pattern","PairP","ElemP","ConP","DotId","Clauses","RClauses","TBindSP","DataTelescope","id","qualid","number","data","codata","record","sized","fields","mutual","fun","cofun","pattern","case","def","let","in","eval","fail","check","trustme","impredicative","type","set","coset","size","infty","succ","max","'<|'","'|>'","'<'","'>'","'{'","'}'","'['","']'","'('","')'","'|'","','","';'","':'","'.'","'->'","'<='","'='","'++'","'+'","'-'","'/'","'*'","'^'","'&'","'\\\\'","'_'","%eof"]-        bit_start = st Prelude.* 120-        bit_end = (st Prelude.+ 1) Prelude.* 120-        read_bit = readArrayBit happyExpList-        bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]-        bits_indexed = Prelude.zip bits [0..119]-        token_strs_expected = Prelude.concatMap f bits_indexed-        f (Prelude.False, _) = []-        f (Prelude.True, nr) = [token_strs Prelude.!! nr]--happyActOffsets :: HappyAddr-happyActOffsets = HappyA# "\x00\x00\x00\x00\xfe\x01\xd1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x3b\x00\x3b\x00\x3b\x00\x5b\x01\x74\x00\x47\x00\x47\x00\x47\x00\x00\x00\xf0\x02\x02\x03\x14\x03\x26\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x8e\x00\x00\x00\x9e\x00\xb6\x00\xd5\x00\x00\x00\x0b\x01\x0b\x01\x00\x00\x7a\x08\x00\x00\x7a\x08\x00\x00\x6b\x00\x00\x00\x00\x00\x0b\x01\x73\x08\x0b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x00\x7a\x08\x48\x00\x24\x01\x16\x00\x5e\x00\x00\x00\x00\x00\x96\x02\x24\x01\x24\x01\xc1\x00\x8e\x01\x00\x00\xa8\x02\xba\x02\xcc\x02\xde\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\xfd\x00\x00\x00\x00\x00\x00\x00\xf9\x00\x58\x00\x4f\x00\x00\x00\x00\x00\x45\x01\x00\x00\x00\x00\x8e\x01\x00\x00\xc1\x00\x8a\x00\xb4\x01\x00\x00\x00\x00\xe8\x00\x4b\x08\x21\x01\x00\x00\x5f\x08\x00\x00\x00\x00\x30\x01\x00\x00\x48\x01\x55\x01\xae\x00\x36\x01\x00\x00\x68\x01\xc1\x00\xbe\x01\xe1\x01\xe1\x01\xe1\x01\xc0\x01\xc1\x00\xc1\x00\xc1\x00\xc0\x01\x00\x00\x00\x00\x96\x01\x9d\x01\xb6\x01\x00\x00\xde\x01\xc1\x00\xbd\x01\xc6\x01\xf2\x01\xcc\x01\xfd\x01\xc1\x00\x00\x00\xfd\x01\xf0\x01\xf9\x01\x73\x08\xed\x01\x73\x08\x26\x02\xc1\x00\x00\x00\x70\x00\xff\x01\x00\x00\x02\x02\x1c\x01\x04\x02\x00\x00\x01\x02\xc1\x00\x00\x00\xc1\x00\x00\x00\x08\x02\x0b\x02\x73\x08\x00\x00\x2a\x01\xc1\x00\x09\x02\xc1\x00\x2f\x02\x1c\x02\x29\x02\x00\x00\x3d\x02\x00\x00\x1f\x02\x5b\x00\x20\x02\x00\x00\x25\x00\x32\x02\x34\x02\xa7\x00\x35\x02\x87\x01\x39\x02\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x03\x00\x54\x02\x6f\x02\x47\x02\x00\x00\x57\x01\x00\x00\x00\x00\x74\x02\xc1\x00\xc1\x00\xc1\x00\x0f\x01\xc1\x00\x4f\x02\x4f\x02\x66\x01\x73\x00\x00\x00\x00\x00\x00\x00\x42\x02\xc1\x00\xc1\x00\x2c\x00\x00\x00\x00\x00\x62\x02\x5d\x02\x8a\x00\x00\x00\xb4\x01\x5a\x02\x5c\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x4f\x00\x86\x01\x00\x00\xc1\x01\xc1\x01\x88\x02\xe1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x68\x02\x7c\x02\x7a\x02\xc1\x00\x00\x02\x00\x00\xc0\x00\x7b\x02\x80\x02\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x02\xea\x00\xc1\x00\xaf\x02\xc1\x00\xc1\x00\xc1\x00\x82\x02\xc1\x00\xc1\x00\x00\x00\x00\x00\xc1\x00\xc1\x00\x00\x00\xc1\x01\xc1\x00\x00\x00\xad\x02\xc1\x02\x00\x00\xa1\x02\xc1\x00\xa4\x02\xd1\x02\xc8\x02\xaa\x02\xd9\x02\xc1\x00\xc2\x00\xb1\x02\x00\x00\xc1\x00\xc1\x00\xc1\x00\xc1\x00\xc1\x00\xc1\x00\xc0\x02\xc5\x02\xc6\x02\x00\x00\xc9\x02\x00\x00\xc1\x00\xc1\x00\xc1\x00\xd2\x02\x35\x01\xc1\x00\x00\x00\x00\x00\xfc\x02\x00\x00\xd8\x02\x00\x00\xdd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x02\xeb\x02\xee\x02\xfa\x02\xff\x02\xe8\x02\x00\x00\xc1\x00\x4f\x00\x00\x00\xc1\x00\xc1\x00\xc1\x00\xc1\x00\x04\x03\x21\x03\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x09\x01\x0e\x03\x16\x03\x17\x03\x1c\x03\xf9\xff\x1d\x03\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x03\x00\x00\x00\x00\x00\x00\x3b\x03\x00\x00\x1e\x03\x28\x03\x29\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x03\x2e\x03\x4f\x00\xc1\x00\x00\x00\x2a\x03\x31\x03\x32\x03\x4a\x03\x00\x00\xc1\x00\x46\x03\xc1\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00"#--happyGotoOffsets :: HappyAddr-happyGotoOffsets = HappyA# "\x95\x01\x76\x03\xad\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x9f\x00\x05\x00\x00\x00\x00\x00\xee\xff\xfe\xff\xf8\x01\x00\x00\xbd\x08\xcd\x08\xdd\x08\xed\x08\x00\x00\x7d\x03\x00\x00\x7e\x03\x00\x00\x8a\x03\x00\x00\x8b\x03\xfa\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x03\xf2\x00\x1a\x01\x00\x00\x09\x00\x00\x00\x40\x00\x00\x00\x34\x08\x00\x00\x00\x00\x83\x03\x33\x02\x84\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x20\x01\x71\x01\x00\x00\x00\x00\x00\x00\xfd\x08\x11\x00\x99\x00\xf7\x04\xec\x01\x00\x00\xfd\x08\xfd\x08\xfd\x08\xfd\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\x00\x00\x77\x03\x44\x02\xac\x00\x00\x00\x00\x00\x27\x08\x71\x02\x00\x00\x00\x00\x43\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x8f\x03\x20\x03\x3b\x01\x7a\x01\x9f\x01\x89\x01\x7f\x04\x2f\x03\x97\x04\x06\x02\xea\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x0f\x05\x00\x00\x00\x00\x9b\x01\x00\x00\xf5\x00\x27\x05\x00\x00\xa9\x01\x00\x00\x00\x00\xf9\x08\x81\x03\x02\x09\xb7\x01\xa7\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x05\x00\x00\xbf\x03\x00\x00\x00\x00\x00\x00\x0b\x09\x00\x00\x00\x00\x57\x05\x00\x00\x6f\x05\xd5\x01\x00\x00\x00\x00\x00\x00\xf0\xff\x00\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x03\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x91\x03\x97\x03\x00\x00\x70\x01\x00\x00\x00\x00\x96\x03\x87\x05\x9f\x05\xb7\x05\x3f\x08\xcf\x05\x98\x03\xa4\x03\xad\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x04\x47\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x02\x00\x00\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x37\x01\x00\x00\x00\x00\x80\x00\x49\x02\x00\x00\x41\x01\x5c\x02\x9b\x03\xcb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x03\xa9\x03\xff\x05\x17\x06\x2f\x06\x00\x00\x47\x06\x5f\x06\x00\x00\x00\x00\xc7\x04\x07\x04\x00\x00\x61\x02\x1f\x04\x00\x00\xad\x03\x30\x00\x00\x00\x00\x00\x77\x06\x00\x00\xb4\x03\x85\x00\x00\x00\x19\x01\x8f\x06\x00\x00\x00\x00\x00\x00\x37\x04\xa7\x06\xdf\x04\xbf\x06\xd7\x06\xef\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x07\x1f\x07\x37\x07\x00\x00\x00\x00\x4f\x07\x00\x00\x00\x00\xe4\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\x00\x00\x00\x00\x67\x07\x95\x00\x00\x00\x7f\x07\x97\x07\xaf\x07\xc7\x07\x00\x00\x67\x01\x00\x00\x4f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x03\x00\x00\x00\x00\x00\x00\xb7\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x67\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x07\x00\x00\x0f\x08\x00\x00\x0d\x01\x00\x00\x00\x00\x00\x00"#--happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int#-happyAdjustOffset off = off--happyDefActions :: HappyAddr-happyDefActions = HappyA# "\xfd\xff\x00\x00\xdb\xff\x00\x00\xfc\xff\xfb\xff\xf9\xff\xfa\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xf4\xff\xf3\xff\x00\x00\xf2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\xff\xdb\xff\xdb\xff\xdb\xff\xdb\xff\xf1\xff\xfd\xff\xeb\xff\xfd\xff\xed\xff\xfd\xff\xef\xff\xfd\xff\xd3\xff\x00\x00\xd4\xff\x00\x00\x00\x00\x00\x00\xfd\xff\x00\x00\x00\x00\xe5\xff\x4d\xff\xe7\xff\x4d\xff\xe9\xff\x00\x00\xdd\xff\xb2\xff\x00\x00\xc3\xff\x00\x00\xcc\xff\xcf\xff\xce\xff\xcd\xff\xca\xff\xcb\xff\x00\x00\x4d\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xff\xe8\xff\xdb\xff\x52\xff\x52\xff\xc3\xff\x00\x00\xd2\xff\xdb\xff\xdb\xff\xdb\xff\xdb\xff\xf0\xff\xea\xff\xec\xff\xee\xff\x7e\xff\x00\x00\x86\xff\x5c\xff\xd7\xff\x60\xff\x5f\xff\x65\xff\x7f\xff\x81\xff\x00\x00\x89\xff\x87\xff\x00\x00\x88\xff\xc3\xff\xc3\xff\x00\x00\x83\xff\x7e\xff\x00\x00\x94\xff\xa7\xff\xa6\xff\x95\xff\xba\xff\xb9\xff\x00\x00\x79\xff\x9e\xff\x00\x00\x9a\xff\x92\xff\x8d\xff\x81\xff\xc3\xff\x00\x00\x90\xff\x00\x00\x00\x00\x00\x00\xc3\xff\xc3\xff\xc3\xff\x00\x00\x6a\xff\x53\xff\x00\x00\x56\xff\x00\x00\xde\xff\x00\x00\xc3\xff\xd1\xff\x00\x00\x00\x00\x00\x00\x73\xff\xc3\xff\x4c\xff\x00\x00\x00\x00\x00\x00\xc3\xff\xd9\xff\xc3\xff\x00\x00\xc3\xff\xb0\xff\x7e\xff\x00\x00\xc4\xff\xa4\xff\xd1\xff\x00\x00\xc2\xff\x00\x00\xc3\xff\xc1\xff\xc3\xff\xb1\xff\x00\x00\x00\x00\xc3\xff\x74\xff\x00\x00\xc3\xff\x00\x00\xc3\xff\x00\x00\x00\x00\x00\x00\xe0\xff\x54\xff\xdf\xff\x6c\xff\x6b\xff\x00\x00\xc9\xff\x00\x00\x00\x00\xa5\xff\x7e\xff\x00\x00\xd1\xff\x00\x00\x82\xff\xc3\xff\x91\xff\x8f\xff\xaf\xff\x00\x00\x00\x00\x00\x00\xd9\xff\xa5\xff\x00\x00\x8c\xff\x8a\xff\x00\x00\xc3\xff\xc3\xff\xc3\xff\x00\x00\xc3\xff\x00\x00\x00\x00\x00\x00\x94\xff\x93\xff\x95\xff\xaa\xff\x9a\xff\xc3\xff\xc3\xff\x57\xff\x62\xff\x63\xff\x8d\xff\x00\x00\xc3\xff\x67\xff\xcc\xff\x00\x00\x7e\xff\x64\xff\x65\xff\x7b\xff\x58\xff\x5a\xff\x00\x00\x00\x00\x59\xff\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xff\x5e\xff\x61\xff\x5b\xff\x00\x00\x00\x00\x7c\xff\xc3\xff\x7e\xff\x66\xff\x7e\xff\x00\x00\x00\x00\x96\xff\xc3\xff\xc5\xff\xc6\xff\xa2\xff\x99\xff\x9a\xff\x9d\xff\x9b\xff\x9c\xff\x8b\xff\x8e\xff\x00\x00\x00\x00\xc3\xff\x00\x00\xc3\xff\xc3\xff\xc3\xff\xab\xff\xc3\xff\xc3\xff\x84\xff\xc8\xff\xc3\xff\xc3\xff\x69\xff\x00\x00\xc3\xff\x55\xff\xd6\xff\x00\x00\xd0\xff\x00\x00\xc3\xff\x00\x00\xd6\xff\x75\xff\x77\xff\x73\xff\xc3\xff\x7e\xff\x00\x00\xd8\xff\xc3\xff\xc3\xff\xc3\xff\xc3\xff\xc3\xff\xc3\xff\x00\x00\x00\x00\x00\x00\xa3\xff\x00\x00\xdc\xff\xc3\xff\xc3\xff\xc3\xff\x00\x00\x00\x00\xc3\xff\x76\xff\xe3\xff\x00\x00\x50\xff\x00\x00\x51\xff\x00\x00\xe1\xff\x6d\xff\x68\xff\xa1\xff\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\xff\xc3\xff\x6e\xff\x97\xff\xc3\xff\xc3\xff\xc3\xff\xc3\xff\x00\x00\x7b\xff\x80\xff\xc3\xff\x7a\xff\x7d\xff\x85\xff\x8d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xff\x00\x00\xc3\xff\xb5\xff\xb4\xff\xb3\xff\xb7\xff\xb6\xff\xd6\xff\x4e\xff\xd5\xff\x78\xff\xd6\xff\x4f\xff\x00\x00\x00\x00\x00\x00\xb8\xff\xc0\xff\xbf\xff\xbe\xff\xbd\xff\xbc\xff\xbb\xff\xe4\xff\xe2\xff\x00\x00\x00\x00\x6e\xff\xc3\xff\x9f\xff\xbd\xff\xbc\xff\xbb\xff\x71\xff\x70\xff\xc3\xff\x00\x00\xc3\xff\xae\xff\x6e\xff\x72\xff\xad\xff"#--happyCheck :: HappyAddr-happyCheck = HappyA# "\xff\xff\x13\x00\x01\x00\x13\x00\x01\x00\x04\x00\x05\x00\x06\x00\x07\x00\x38\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x09\x00\x08\x00\x0f\x00\x13\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x01\x00\x13\x00\x13\x00\x13\x00\x2d\x00\x1b\x00\x0f\x00\x1d\x00\x16\x00\x1f\x00\x31\x00\x29\x00\x22\x00\x13\x00\x2c\x00\x25\x00\x26\x00\x25\x00\x28\x00\x29\x00\x2d\x00\x2b\x00\x01\x00\x13\x00\x2e\x00\x04\x00\x05\x00\x06\x00\x07\x00\x2e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x38\x00\x13\x00\x0f\x00\x01\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x31\x00\x13\x00\x3b\x00\x3c\x00\x30\x00\x1b\x00\x01\x00\x1d\x00\x39\x00\x3a\x00\x27\x00\x28\x00\x22\x00\x34\x00\x01\x00\x25\x00\x26\x00\x38\x00\x28\x00\x29\x00\x16\x00\x2b\x00\x2c\x00\x01\x00\x2e\x00\x34\x00\x01\x00\x01\x00\x2e\x00\x38\x00\x04\x00\x05\x00\x06\x00\x07\x00\x38\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x21\x00\x1b\x00\x0f\x00\x01\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x2a\x00\x1b\x00\x25\x00\x1d\x00\x1b\x00\x1b\x00\x1d\x00\x1d\x00\x2b\x00\x3b\x00\x3c\x00\x25\x00\x22\x00\x21\x00\x25\x00\x25\x00\x26\x00\x2b\x00\x28\x00\x29\x00\x2b\x00\x2b\x00\x2a\x00\x13\x00\x2e\x00\x01\x00\x02\x00\x03\x00\x23\x00\x1f\x00\x06\x00\x16\x00\x1f\x00\x13\x00\x38\x00\x21\x00\x2b\x00\x0d\x00\x13\x00\x0f\x00\x2f\x00\x30\x00\x31\x00\x2d\x00\x33\x00\x34\x00\x2d\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x08\x00\x13\x00\x1f\x00\x34\x00\x21\x00\x13\x00\x23\x00\x38\x00\x25\x00\x26\x00\x27\x00\x13\x00\x2e\x00\x34\x00\x2b\x00\x3b\x00\x3c\x00\x38\x00\x2f\x00\x30\x00\x31\x00\x2e\x00\x33\x00\x34\x00\x13\x00\x36\x00\x37\x00\x01\x00\x02\x00\x03\x00\x30\x00\x1f\x00\x06\x00\x2a\x00\x34\x00\x31\x00\x1d\x00\x1e\x00\x38\x00\x0d\x00\x28\x00\x0f\x00\x2a\x00\x39\x00\x3a\x00\x2d\x00\x29\x00\x2a\x00\x21\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x30\x00\x1f\x00\x1f\x00\x1f\x00\x21\x00\x35\x00\x23\x00\x13\x00\x25\x00\x13\x00\x27\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x2d\x00\x06\x00\x2d\x00\x2f\x00\x30\x00\x31\x00\x25\x00\x33\x00\x34\x00\x21\x00\x36\x00\x37\x00\x13\x00\x08\x00\x29\x00\x2a\x00\x29\x00\x2a\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x13\x00\x34\x00\x1f\x00\x13\x00\x21\x00\x38\x00\x23\x00\x01\x00\x25\x00\x24\x00\x27\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x2a\x00\x06\x00\x30\x00\x2f\x00\x30\x00\x31\x00\x34\x00\x33\x00\x34\x00\x20\x00\x38\x00\x37\x00\x13\x00\x28\x00\x08\x00\x2e\x00\x2f\x00\x01\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x13\x00\x13\x00\x1f\x00\x26\x00\x21\x00\x28\x00\x23\x00\x13\x00\x25\x00\x15\x00\x27\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x1f\x00\x06\x00\x30\x00\x2f\x00\x30\x00\x31\x00\x34\x00\x33\x00\x34\x00\x28\x00\x38\x00\x37\x00\x2e\x00\x2f\x00\x2d\x00\x13\x00\x14\x00\x22\x00\x17\x00\x13\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x29\x00\x13\x00\x1f\x00\x35\x00\x22\x00\x01\x00\x02\x00\x03\x00\x25\x00\x2c\x00\x06\x00\x29\x00\x04\x00\x05\x00\x2b\x00\x2b\x00\x2c\x00\x29\x00\x2a\x00\x21\x00\x01\x00\x02\x00\x03\x00\x29\x00\x2a\x00\x06\x00\x37\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2c\x00\x34\x00\x1f\x00\x36\x00\x37\x00\x38\x00\x13\x00\x14\x00\x25\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x13\x00\x13\x00\x1f\x00\x15\x00\x01\x00\x02\x00\x03\x00\x35\x00\x25\x00\x06\x00\x13\x00\x37\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x2c\x00\x06\x00\x00\x00\x01\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x33\x00\x13\x00\x37\x00\x15\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x29\x00\x2a\x00\x1f\x00\x1f\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x25\x00\x26\x00\x1f\x00\x13\x00\x28\x00\x15\x00\x2b\x00\x13\x00\x25\x00\x2d\x00\x01\x00\x02\x00\x03\x00\x22\x00\x2b\x00\x06\x00\x13\x00\x13\x00\x37\x00\x15\x00\x01\x00\x13\x00\x01\x00\x01\x00\x02\x00\x03\x00\x37\x00\x29\x00\x06\x00\x29\x00\x2a\x00\x13\x00\x17\x00\x15\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x29\x00\x2a\x00\x1f\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x22\x00\x25\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x13\x00\x01\x00\x1f\x00\x23\x00\x01\x00\x02\x00\x03\x00\x28\x00\x25\x00\x06\x00\x13\x00\x2b\x00\x15\x00\x37\x00\x2b\x00\x2f\x00\x30\x00\x31\x00\x2a\x00\x33\x00\x34\x00\x01\x00\x29\x00\x2a\x00\x2a\x00\x13\x00\x37\x00\x15\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x01\x00\x13\x00\x1f\x00\x01\x00\x04\x00\x05\x00\x06\x00\x07\x00\x25\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x13\x00\x14\x00\x13\x00\x14\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x24\x00\x29\x00\x2a\x00\x2a\x00\x37\x00\x13\x00\x14\x00\x1b\x00\x32\x00\x33\x00\x25\x00\x1f\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x01\x00\x28\x00\x2a\x00\x28\x00\x2b\x00\x21\x00\x2d\x00\x2a\x00\x2e\x00\x01\x00\x13\x00\x2a\x00\x2a\x00\x16\x00\x17\x00\x38\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x21\x00\x01\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x16\x00\x17\x00\x22\x00\x2c\x00\x2e\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x13\x00\x26\x00\x24\x00\x16\x00\x17\x00\x13\x00\x19\x00\x2a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x2a\x00\x10\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x01\x00\x2a\x00\x29\x00\x2a\x00\x13\x00\x01\x00\x27\x00\x35\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x20\x00\x26\x00\x2a\x00\x29\x00\x2a\x00\x16\x00\x17\x00\x01\x00\x29\x00\x2a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x34\x00\x2e\x00\x36\x00\x37\x00\x38\x00\x04\x00\x05\x00\x06\x00\x07\x00\x22\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x29\x00\x24\x00\x2a\x00\x21\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x01\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x08\x00\x35\x00\x35\x00\x22\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x01\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x26\x00\x24\x00\x01\x00\x22\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x2a\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x08\x00\x01\x00\x2a\x00\x22\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x26\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x26\x00\x26\x00\x24\x00\x22\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x26\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x01\x00\x26\x00\x22\x00\x22\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x24\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x24\x00\x22\x00\x21\x00\x2a\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x22\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x22\x00\x01\x00\x21\x00\x20\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x0e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x13\x00\x26\x00\x21\x00\x16\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x26\x00\x26\x00\x22\x00\x1f\x00\x20\x00\x24\x00\x13\x00\x08\x00\x26\x00\x16\x00\x17\x00\x21\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x26\x00\x26\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x26\x00\x2e\x00\x16\x00\x17\x00\x35\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x35\x00\x35\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x29\x00\x2e\x00\x16\x00\x17\x00\x01\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x01\x00\x01\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x01\x00\x01\x00\x16\x00\x17\x00\x01\x00\x19\x00\x10\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x13\x00\x13\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x13\x00\x13\x00\x16\x00\x17\x00\x10\x00\x19\x00\x13\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x13\x00\x17\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x17\x00\x13\x00\x16\x00\x17\x00\x12\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x12\x00\x12\x00\x21\x00\x12\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x0e\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\x13\x00\xff\xff\xff\xff\x16\x00\xff\xff\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x1f\x00\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\x16\x00\x17\x00\x1c\x00\x1d\x00\x1e\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x2b\x00\x2c\x00\xff\xff\xff\xff\x2f\x00\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x23\x00\x2b\x00\x25\x00\xff\xff\xff\xff\x2f\x00\x30\x00\x31\x00\x2b\x00\x33\x00\x34\x00\xff\xff\x2f\x00\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x0f\x00\xff\xff\x11\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x0f\x00\xff\xff\x11\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x0f\x00\xff\xff\x11\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x0f\x00\xff\xff\x11\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x0f\x00\xff\xff\x11\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x0f\x00\xff\xff\x11\x00\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\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"#--happyTable :: HappyAddr-happyTable = HappyA# "\x00\x00\x28\x00\x58\xff\x82\x00\x28\x00\x58\xff\x58\xff\x58\xff\x58\xff\xff\xff\x58\xff\x58\xff\x58\xff\x58\xff\x2e\x00\x32\x00\x58\xff\x28\x00\x58\xff\x58\xff\x58\xff\x58\xff\x58\xff\x28\x00\x2f\x00\xa8\x00\x31\x00\x2a\x00\x58\xff\x34\x00\x58\xff\x3f\x00\xf2\x00\x1c\x01\x80\x01\x58\xff\x82\x00\x81\x01\x58\xff\x58\xff\x0f\x01\x58\xff\x58\xff\x29\x00\x58\xff\x57\xff\xe9\x00\x58\xff\x57\xff\x57\xff\x57\xff\x57\xff\xb0\x00\x57\xff\x57\xff\x57\xff\x57\xff\x58\xff\xe9\x00\x57\xff\x28\x00\x57\xff\x57\xff\x57\xff\x57\xff\x57\xff\x83\x00\xa8\x00\x40\x00\x44\x00\x8d\x00\x57\xff\x28\x00\x57\xff\x86\x00\x85\x00\x17\x01\x18\x01\x57\xff\xed\x00\x28\x00\x57\xff\x57\xff\xe7\x00\x57\xff\x57\xff\x3f\x00\x57\xff\x57\xff\x28\x00\x57\xff\xea\x00\x28\x00\x58\xff\x43\x01\xe7\x00\x58\xff\x58\xff\x58\xff\x58\xff\x57\xff\x58\xff\x58\xff\x58\xff\x58\xff\x8f\x00\xec\x00\x58\xff\x28\x00\x58\xff\x58\xff\x58\xff\x58\xff\x58\xff\x90\x00\xec\x00\xed\x00\xef\x00\xec\x00\x58\xff\x1b\x01\x58\xff\x67\x00\x40\x00\x41\x00\xed\x00\x58\xff\x89\x00\xed\x00\x58\xff\x58\xff\x67\x00\x58\xff\x58\xff\x67\x00\x58\xff\x8a\x00\xe9\x00\x58\xff\x28\x00\x5e\x00\x78\x00\x39\x00\x30\x01\x60\x00\x3f\x00\xd3\x00\xe9\x00\x58\xff\x2c\x00\x3a\x00\x79\x00\xa8\x00\x7a\x00\x3b\x00\x3c\x00\x3d\x00\x31\x01\x3e\x00\x3f\x00\xd4\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x63\x00\x64\x00\x30\x00\xe9\x00\x65\x00\x19\x01\x7e\x00\x82\x00\x7f\x00\xe7\x00\xe2\x00\xe3\x00\x81\x00\x31\x00\x3d\x01\xe6\x00\xe4\x00\x40\x00\x90\x00\xe7\x00\x3b\x00\x3c\x00\x3d\x00\x4c\x00\x3e\x00\x3f\x00\xdc\x00\x82\x00\x68\x00\x28\x00\x5e\x00\x78\x00\x62\x01\x14\x01\x60\x00\x4b\x00\x63\x01\x83\x00\xce\x00\xcf\x00\xe7\x00\x79\x00\xaf\x00\x7a\x00\xd1\xff\x84\x00\x85\x00\x15\x01\xdd\x00\x57\x00\x4a\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x7d\x00\x64\x00\xd0\x00\x55\x01\x65\x00\x39\x01\x7e\x00\x98\xff\x7f\x00\xe5\x00\x80\x00\x68\x00\x81\x00\x28\x00\x5e\x00\x78\x00\x3a\x00\x56\x01\x60\x00\x3a\x01\x3b\x00\x3c\x00\x3d\x00\x92\x00\x3e\x00\x3f\x00\x49\x00\x82\x00\x68\x00\xe9\x00\x46\x00\xbf\x00\x57\x00\xca\x00\x57\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x7d\x00\x64\x00\x31\x00\xe6\x00\x65\x00\xa8\x00\x7e\x00\xe7\x00\xdb\x00\x28\x00\xdc\x00\xa6\x00\x81\x00\x28\x00\x5e\x00\x78\x00\x3a\x00\x51\x01\x60\x00\x86\x01\x3b\x00\x3c\x00\x3d\x00\x63\x01\x3e\x00\x3f\x00\xf1\x00\xe7\x00\x68\x00\xe9\x00\xf0\x00\x45\x00\xa9\x00\xaa\x00\x28\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x7d\x00\x64\x00\xa8\x00\x31\x00\x65\x00\x5d\xff\x7e\x00\x5d\xff\xdb\x00\x8a\x00\x80\x00\x8d\x00\x81\x00\x28\x00\x5e\x00\x5f\x00\x3a\x00\x14\x01\x60\x00\x8c\x01\x3b\x00\x3c\x00\x3d\x00\x63\x01\x3e\x00\x3f\x00\xaf\x00\xe7\x00\x68\x00\xa9\x00\x3b\x01\x15\x01\x25\x00\xf6\x00\x24\x01\xcc\x00\x68\x00\x61\x00\x62\x00\x7d\x00\x64\x00\x25\x01\x55\x00\x65\x00\x93\xff\x70\x01\x28\x00\x5e\x00\x78\x00\xc1\x00\xd2\x00\x60\x00\x25\x01\x2d\x00\x2e\x00\xcd\x00\xf7\x00\xf8\x00\xc2\x00\x57\x00\xe9\x00\x28\x00\x5e\x00\x78\x00\x56\x00\x57\x00\x60\x00\x68\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x7d\x00\x64\x00\xac\xff\x58\x00\x65\x00\xf5\x00\x5b\x00\x5c\x00\x25\x00\xf6\x00\xc1\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x7d\x00\x64\x00\x68\x00\x8a\x00\x65\x00\x8b\x00\x28\x00\x5e\x00\x5f\x00\xd1\x00\x01\x01\x60\x00\x68\x00\x68\x00\x28\x00\x5e\x00\x5f\x00\x5c\x01\xf8\x00\x60\x00\x03\x00\x02\x00\x0a\x01\x75\x00\x76\x00\x57\x00\xca\x00\xbd\x00\x68\x00\xbe\x00\x61\x00\x62\x00\x63\x00\x64\x00\xc1\x00\x57\x00\x65\x00\x11\x01\x61\x00\x62\x00\x63\x00\x64\x00\x66\x00\xe3\x00\x65\x00\x8a\x00\xaf\x00\xac\x00\x67\x00\x68\x00\x66\x00\x12\x01\x28\x00\x5e\x00\x5f\x00\xb4\x00\x67\x00\x60\x00\xdc\x00\x8a\x00\x68\x00\xa6\x00\x28\x00\x68\x00\x28\x00\x28\x00\x5e\x00\x5f\x00\x68\x00\xb3\x00\x60\x00\xbf\x00\x57\x00\x9e\x00\xdf\x00\x9f\x00\x61\x00\x62\x00\x7d\x00\x64\x00\xdd\x00\x57\x00\x65\x00\xff\x00\x75\x00\x76\x00\x57\x00\xb2\x00\xc1\x00\x61\x00\x62\x00\x63\x00\x64\x00\x68\x00\x28\x00\x65\x00\xc7\x00\x28\x00\x5e\x00\x5f\x00\xaf\x00\x66\x00\x60\x00\x8a\x00\x3a\x00\x1f\x01\x68\x00\x67\x00\x3b\x00\x3c\x00\x3d\x00\xae\x00\x3e\x00\x3f\x00\x28\x00\xf2\x00\x57\x00\xac\x00\x8a\x00\x68\x00\x6d\x01\x61\x00\x62\x00\x7d\x00\x64\x00\x28\x00\x55\x00\x65\x00\x58\xff\x11\x00\x12\x00\x13\x00\x14\x00\xc1\x00\x15\x00\x16\x00\x17\x00\x18\x00\x25\x00\x26\x00\x25\x00\x4c\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xa6\x00\x56\x00\x57\x00\xa3\x00\x68\x00\x25\x00\xb6\x00\x58\xff\xb4\x00\xb5\x00\xa5\x00\x57\x01\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x58\xff\x58\xff\x28\x00\x58\xff\x2f\x01\x2e\x01\x58\xff\x27\x01\x31\x01\x2d\x01\x2c\x01\x28\x00\xfa\x00\x28\x01\x22\x01\x69\x00\x6a\x00\xfe\xff\x6b\x00\x9b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x1f\x01\x28\x00\x70\x00\xb9\x00\xba\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\xdf\x00\x57\x00\x93\x00\x94\x00\x1e\x01\x19\x01\x1c\x01\x95\x00\x96\x00\x6e\x00\x6f\x00\x58\x00\xe0\x00\x5a\x00\x5b\x00\x5c\x00\x55\x00\x16\x01\x13\x01\x69\x00\x6a\x00\x55\x00\x6b\x00\xc4\xff\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x10\x01\x0e\x01\x70\x00\xb9\x00\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\xdf\x00\x57\x00\x55\x00\x28\x00\xa3\x00\x56\x00\x57\x00\x55\x00\x28\x00\x81\x00\x96\xff\x58\x00\xe0\x00\x5a\x00\x5b\x00\x5c\x00\x58\x00\xe0\x00\x5a\x00\x5b\x00\x5c\x00\xf1\x00\xfc\x00\xfa\x00\x56\x00\x57\x00\x93\x00\x94\x00\x28\x00\x56\x00\x57\x00\xa3\x00\x96\x00\x6e\x00\x6f\x00\x58\x00\xf4\x00\x5a\x00\x5b\x00\x5c\x00\x58\x00\x5b\x01\x46\x01\x5b\x00\x5c\x00\x11\x00\x12\x00\x13\x00\x14\x00\x5a\x01\x15\x00\x16\x00\x17\x00\x18\x00\x59\x01\x53\x01\x54\x01\x52\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x28\x00\x15\x00\x16\x00\x17\x00\x18\x00\x40\x01\x98\xff\x97\xff\x88\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x28\x00\x15\x00\x16\x00\x17\x00\x18\x00\x43\x01\x41\x01\x28\x00\x55\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x3d\x01\x15\x00\x16\x00\x17\x00\x18\x00\x40\x01\x28\x00\x38\x01\x54\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x78\x01\x15\x00\x16\x00\x17\x00\x18\x00\x77\x01\x76\x01\x75\x01\x53\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x71\x01\x15\x00\x16\x00\x17\x00\x18\x00\x28\x00\x6d\x01\x6c\x01\x52\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x6b\x01\x15\x00\x16\x00\x17\x00\x18\x00\x6a\x01\x69\x01\x25\x00\x66\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x68\x01\x15\x00\x16\x00\x17\x00\x18\x00\x67\x01\x28\x00\x23\x00\x5e\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\xc3\x00\x15\x00\x16\x00\x17\x00\x18\x00\x35\x00\x85\x01\x21\x00\xc4\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x84\x01\x83\x01\x82\x01\x37\x00\xc5\x00\x7f\x01\x9a\x00\x40\x01\x7b\x01\x69\x00\x6a\x00\x1f\x00\x6b\x00\x9b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x7a\x01\x79\x01\x70\x00\xb9\x00\xba\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\xfc\x00\x89\x01\x88\x01\x69\x00\x6a\x00\xbd\xff\x6b\x00\xfd\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\xbc\xff\xbb\xff\x70\x00\xb9\x00\xba\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x28\x01\x8c\x01\x8a\x01\x69\x00\x6a\x00\x02\x00\x6b\x00\x29\x01\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x50\x00\x4f\x00\x70\x00\xb9\x00\xba\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x4e\x00\x4d\x00\x69\x00\x6a\x00\x47\x00\x6b\x00\xa1\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x99\x00\x92\x00\x70\x00\xe4\x00\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x99\x00\x0c\x01\x69\x00\x6a\x00\x0b\x01\x6b\x00\x09\x01\x6c\x00\x6d\x00\x6e\x00\x6f\x00\xf3\x00\x02\x01\x70\x00\xc7\x00\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x9a\x00\x01\x01\x4e\x01\x69\x00\x6a\x00\x44\x01\x6b\x00\x9b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x3e\x01\x7c\x01\x70\x00\x7b\x01\x9c\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x28\x01\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x29\x01\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x9c\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\xb9\x00\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x4f\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x47\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x45\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x36\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x5b\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x85\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\xbb\x00\x00\x00\x9f\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xbc\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\xb7\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xb8\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\xbb\x00\x00\x00\x9f\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xfe\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x48\x01\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xb8\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x34\x01\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xaf\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xa7\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x2a\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x22\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x20\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x08\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x07\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x06\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x03\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x57\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x4d\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x4c\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x4b\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x4a\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x49\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x41\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x3a\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x35\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x33\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x32\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x31\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x73\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x72\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x71\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x6e\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x64\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x61\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x60\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x5f\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x32\x01\x72\x00\x73\x00\x74\x00\x75\x00\x5e\x01\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x7d\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x8a\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x8d\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\xd4\x00\xd5\x00\x00\x00\xd6\x00\x00\x00\x34\x00\xd7\x00\x6e\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x36\x00\x00\x00\xd8\x00\x73\x00\xd9\x00\x75\x00\x76\x00\x57\x00\x68\x00\x37\x00\x00\x00\xd4\x00\xd5\x00\x00\x00\xd6\x00\x93\x00\x94\x00\xd7\x00\x6e\x00\x6f\x00\xa0\x00\x96\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x04\x01\x73\x00\x05\x01\x75\x00\x76\x00\x57\x00\xd3\x00\x00\x00\x7e\x00\x00\x00\x98\x00\x00\x00\x99\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3a\x00\xa8\xff\xd4\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x3e\x00\x3f\x00\x7e\x00\x00\x00\x98\x00\x00\x00\x99\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3a\x00\xa9\xff\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x3e\x00\x3f\x00\x7e\x00\x00\x00\x98\x00\x00\x00\x99\x00\x00\x00\x81\x00\x00\x00\x00\x00\x43\x00\x3a\x00\x44\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x3a\x00\x3e\x00\x3f\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x3e\x00\x3f\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x23\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x21\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x1f\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x1d\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x93\x00\x94\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x96\x00\x6e\x00\x6f\x00\x93\x00\x94\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x96\x00\x6e\x00\x6f\x00\x93\x00\x94\x00\x00\x00\x00\x00\x00\x00\x25\x01\x96\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (1, 179) [-	(1 , happyReduce_1),-	(2 , happyReduce_2),-	(3 , happyReduce_3),-	(4 , happyReduce_4),-	(5 , happyReduce_5),-	(6 , happyReduce_6),-	(7 , happyReduce_7),-	(8 , happyReduce_8),-	(9 , happyReduce_9),-	(10 , happyReduce_10),-	(11 , happyReduce_11),-	(12 , happyReduce_12),-	(13 , happyReduce_13),-	(14 , happyReduce_14),-	(15 , happyReduce_15),-	(16 , happyReduce_16),-	(17 , happyReduce_17),-	(18 , happyReduce_18),-	(19 , happyReduce_19),-	(20 , happyReduce_20),-	(21 , happyReduce_21),-	(22 , happyReduce_22),-	(23 , happyReduce_23),-	(24 , happyReduce_24),-	(25 , happyReduce_25),-	(26 , happyReduce_26),-	(27 , happyReduce_27),-	(28 , happyReduce_28),-	(29 , happyReduce_29),-	(30 , happyReduce_30),-	(31 , happyReduce_31),-	(32 , happyReduce_32),-	(33 , happyReduce_33),-	(34 , happyReduce_34),-	(35 , happyReduce_35),-	(36 , happyReduce_36),-	(37 , happyReduce_37),-	(38 , happyReduce_38),-	(39 , happyReduce_39),-	(40 , happyReduce_40),-	(41 , happyReduce_41),-	(42 , happyReduce_42),-	(43 , happyReduce_43),-	(44 , happyReduce_44),-	(45 , happyReduce_45),-	(46 , happyReduce_46),-	(47 , happyReduce_47),-	(48 , happyReduce_48),-	(49 , happyReduce_49),-	(50 , happyReduce_50),-	(51 , happyReduce_51),-	(52 , happyReduce_52),-	(53 , happyReduce_53),-	(54 , happyReduce_54),-	(55 , happyReduce_55),-	(56 , happyReduce_56),-	(57 , happyReduce_57),-	(58 , happyReduce_58),-	(59 , happyReduce_59),-	(60 , happyReduce_60),-	(61 , happyReduce_61),-	(62 , happyReduce_62),-	(63 , happyReduce_63),-	(64 , happyReduce_64),-	(65 , happyReduce_65),-	(66 , happyReduce_66),-	(67 , happyReduce_67),-	(68 , happyReduce_68),-	(69 , happyReduce_69),-	(70 , happyReduce_70),-	(71 , happyReduce_71),-	(72 , happyReduce_72),-	(73 , happyReduce_73),-	(74 , happyReduce_74),-	(75 , happyReduce_75),-	(76 , happyReduce_76),-	(77 , happyReduce_77),-	(78 , happyReduce_78),-	(79 , happyReduce_79),-	(80 , happyReduce_80),-	(81 , happyReduce_81),-	(82 , happyReduce_82),-	(83 , happyReduce_83),-	(84 , happyReduce_84),-	(85 , happyReduce_85),-	(86 , happyReduce_86),-	(87 , happyReduce_87),-	(88 , happyReduce_88),-	(89 , happyReduce_89),-	(90 , happyReduce_90),-	(91 , happyReduce_91),-	(92 , happyReduce_92),-	(93 , happyReduce_93),-	(94 , happyReduce_94),-	(95 , happyReduce_95),-	(96 , happyReduce_96),-	(97 , happyReduce_97),-	(98 , happyReduce_98),-	(99 , happyReduce_99),-	(100 , happyReduce_100),-	(101 , happyReduce_101),-	(102 , happyReduce_102),-	(103 , happyReduce_103),-	(104 , happyReduce_104),-	(105 , happyReduce_105),-	(106 , happyReduce_106),-	(107 , happyReduce_107),-	(108 , happyReduce_108),-	(109 , happyReduce_109),-	(110 , happyReduce_110),-	(111 , happyReduce_111),-	(112 , happyReduce_112),-	(113 , happyReduce_113),-	(114 , happyReduce_114),-	(115 , happyReduce_115),-	(116 , happyReduce_116),-	(117 , happyReduce_117),-	(118 , happyReduce_118),-	(119 , happyReduce_119),-	(120 , happyReduce_120),-	(121 , happyReduce_121),-	(122 , happyReduce_122),-	(123 , happyReduce_123),-	(124 , happyReduce_124),-	(125 , happyReduce_125),-	(126 , happyReduce_126),-	(127 , happyReduce_127),-	(128 , happyReduce_128),-	(129 , happyReduce_129),-	(130 , happyReduce_130),-	(131 , happyReduce_131),-	(132 , happyReduce_132),-	(133 , happyReduce_133),-	(134 , happyReduce_134),-	(135 , happyReduce_135),-	(136 , happyReduce_136),-	(137 , happyReduce_137),-	(138 , happyReduce_138),-	(139 , happyReduce_139),-	(140 , happyReduce_140),-	(141 , happyReduce_141),-	(142 , happyReduce_142),-	(143 , happyReduce_143),-	(144 , happyReduce_144),-	(145 , happyReduce_145),-	(146 , happyReduce_146),-	(147 , happyReduce_147),-	(148 , happyReduce_148),-	(149 , happyReduce_149),-	(150 , happyReduce_150),-	(151 , happyReduce_151),-	(152 , happyReduce_152),-	(153 , happyReduce_153),-	(154 , happyReduce_154),-	(155 , happyReduce_155),-	(156 , happyReduce_156),-	(157 , happyReduce_157),-	(158 , happyReduce_158),-	(159 , happyReduce_159),-	(160 , happyReduce_160),-	(161 , happyReduce_161),-	(162 , happyReduce_162),-	(163 , happyReduce_163),-	(164 , happyReduce_164),-	(165 , happyReduce_165),-	(166 , happyReduce_166),-	(167 , happyReduce_167),-	(168 , happyReduce_168),-	(169 , happyReduce_169),-	(170 , happyReduce_170),-	(171 , happyReduce_171),-	(172 , happyReduce_172),-	(173 , happyReduce_173),-	(174 , happyReduce_174),-	(175 , happyReduce_175),-	(176 , happyReduce_176),-	(177 , happyReduce_177),-	(178 , happyReduce_178),-	(179 , happyReduce_179)-	]--happy_n_terms = 57 :: Prelude.Int-happy_n_nonterms = 61 :: Prelude.Int--happyReduce_1 = happySpecReduce_1  0# happyReduction_1-happyReduction_1 happy_x_1-	 =  case happyOut5 happy_x_1 of { (HappyWrap5 happy_var_1) -> -	happyIn4-		 (reverse happy_var_1-	)}--happyReduce_2 = happySpecReduce_0  1# happyReduction_2-happyReduction_2  =  happyIn5-		 ([]-	)--happyReduce_3 = happySpecReduce_2  1# happyReduction_3-happyReduction_3 happy_x_2-	happy_x_1-	 =  case happyOut5 happy_x_1 of { (HappyWrap5 happy_var_1) -> -	case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) -> -	happyIn5-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_4 = happySpecReduce_1  2# happyReduction_4-happyReduction_4 happy_x_1-	 =  case happyOut7 happy_x_1 of { (HappyWrap7 happy_var_1) -> -	happyIn6-		 (happy_var_1-	)}--happyReduce_5 = happySpecReduce_1  2# happyReduction_5-happyReduction_5 happy_x_1-	 =  case happyOut9 happy_x_1 of { (HappyWrap9 happy_var_1) -> -	happyIn6-		 (happy_var_1-	)}--happyReduce_6 = happySpecReduce_1  2# happyReduction_6-happyReduction_6 happy_x_1-	 =  case happyOut8 happy_x_1 of { (HappyWrap8 happy_var_1) -> -	happyIn6-		 (happy_var_1-	)}--happyReduce_7 = happySpecReduce_1  2# happyReduction_7-happyReduction_7 happy_x_1-	 =  case happyOut10 happy_x_1 of { (HappyWrap10 happy_var_1) -> -	happyIn6-		 (happy_var_1-	)}--happyReduce_8 = happySpecReduce_1  2# happyReduction_8-happyReduction_8 happy_x_1-	 =  case happyOut11 happy_x_1 of { (HappyWrap11 happy_var_1) -> -	happyIn6-		 (happy_var_1-	)}--happyReduce_9 = happySpecReduce_1  2# happyReduction_9-happyReduction_9 happy_x_1-	 =  case happyOut14 happy_x_1 of { (HappyWrap14 happy_var_1) -> -	happyIn6-		 (happy_var_1-	)}--happyReduce_10 = happySpecReduce_1  2# happyReduction_10-happyReduction_10 happy_x_1-	 =  case happyOut15 happy_x_1 of { (HappyWrap15 happy_var_1) -> -	happyIn6-		 (happy_var_1-	)}--happyReduce_11 = happySpecReduce_1  2# happyReduction_11-happyReduction_11 happy_x_1-	 =  case happyOut16 happy_x_1 of { (HappyWrap16 happy_var_1) -> -	happyIn6-		 (happy_var_1-	)}--happyReduce_12 = happySpecReduce_1  2# happyReduction_12-happyReduction_12 happy_x_1-	 =  case happyOut17 happy_x_1 of { (HappyWrap17 happy_var_1) -> -	happyIn6-		 (happy_var_1-	)}--happyReduce_13 = happySpecReduce_1  2# happyReduction_13-happyReduction_13 happy_x_1-	 =  case happyOut21 happy_x_1 of { (HappyWrap21 happy_var_1) -> -	happyIn6-		 (happy_var_1-	)}--happyReduce_14 = happySpecReduce_2  2# happyReduction_14-happyReduction_14 happy_x_2-	happy_x_1-	 =  case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) -> -	happyIn6-		 (C.OverrideDecl Impredicative [happy_var_2]-	)}--happyReduce_15 = happyReduce 4# 2# happyReduction_15-happyReduction_15 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut5 happy_x_3 of { (HappyWrap5 happy_var_3) -> -	happyIn6-		 (C.OverrideDecl Impredicative happy_var_3-	) `HappyStk` happyRest}--happyReduce_16 = happySpecReduce_2  2# happyReduction_16-happyReduction_16 happy_x_2-	happy_x_1-	 =  case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) -> -	happyIn6-		 (C.OverrideDecl Fail [happy_var_2]-	)}--happyReduce_17 = happyReduce 4# 2# happyReduction_17-happyReduction_17 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut5 happy_x_3 of { (HappyWrap5 happy_var_3) -> -	happyIn6-		 (C.OverrideDecl Fail happy_var_3-	) `HappyStk` happyRest}--happyReduce_18 = happySpecReduce_2  2# happyReduction_18-happyReduction_18 happy_x_2-	happy_x_1-	 =  case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) -> -	happyIn6-		 (C.OverrideDecl Check [happy_var_2]-	)}--happyReduce_19 = happyReduce 4# 2# happyReduction_19-happyReduction_19 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut5 happy_x_3 of { (HappyWrap5 happy_var_3) -> -	happyIn6-		 (C.OverrideDecl Check happy_var_3-	) `HappyStk` happyRest}--happyReduce_20 = happySpecReduce_2  2# happyReduction_20-happyReduction_20 happy_x_2-	happy_x_1-	 =  case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) -> -	happyIn6-		 (C.OverrideDecl TrustMe [happy_var_2]-	)}--happyReduce_21 = happyReduce 4# 2# happyReduction_21-happyReduction_21 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut5 happy_x_3 of { (HappyWrap5 happy_var_3) -> -	happyIn6-		 (C.OverrideDecl TrustMe happy_var_3-	) `HappyStk` happyRest}--happyReduce_22 = happySpecReduce_2  3# happyReduction_22-happyReduction_22 happy_x_2-	happy_x_1-	 =  case happyOut12 happy_x_2 of { (HappyWrap12 happy_var_2) -> -	happyIn7-		 (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.Ind tel t cs fs-	)}--happyReduce_23 = happySpecReduce_3  4# happyReduction_23-happyReduction_23 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut12 happy_x_3 of { (HappyWrap12 happy_var_3) -> -	happyIn8-		 (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.Ind tel t cs fs-	)}--happyReduce_24 = happySpecReduce_2  5# happyReduction_24-happyReduction_24 happy_x_2-	happy_x_1-	 =  case happyOut12 happy_x_2 of { (HappyWrap12 happy_var_2) -> -	happyIn9-		 (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.CoInd tel t cs fs-	)}--happyReduce_25 = happySpecReduce_3  6# happyReduction_25-happyReduction_25 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut12 happy_x_3 of { (HappyWrap12 happy_var_3) -> -	happyIn10-		 (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.CoInd tel t cs fs-	)}--happyReduce_26 = happySpecReduce_2  7# happyReduction_26-happyReduction_26 happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_2 of { (HappyWrap13 happy_var_2) -> -	happyIn11-		 (let (n,tel,t,c,fs) = happy_var_2 in C.RecordDecl n tel t c fs-	)}--happyReduce_27 = happyReduce 8# 8# 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 happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	case happyOut51 happy_x_6 of { (HappyWrap51 happy_var_6) -> -	case happyOut22 happy_x_8 of { (HappyWrap22 happy_var_8) -> -	happyIn12-		 ((happy_var_1, happy_var_2, happy_var_4, reverse happy_var_6, happy_var_8)-	) `HappyStk` happyRest}}}}}--happyReduce_28 = happyReduce 6# 8# happyReduction_28-happyReduction_28 (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 happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> -	case happyOut51 happy_x_4 of { (HappyWrap51 happy_var_4) -> -	case happyOut22 happy_x_6 of { (HappyWrap22 happy_var_6) -> -	happyIn12-		 ((happy_var_1, happy_var_2, C.set0, reverse happy_var_4, happy_var_6)-	) `HappyStk` happyRest}}}}--happyReduce_29 = happyReduce 8# 9# happyReduction_29-happyReduction_29 (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 happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	case happyOut50 happy_x_6 of { (HappyWrap50 happy_var_6) -> -	case happyOut22 happy_x_8 of { (HappyWrap22 happy_var_8) -> -	happyIn13-		 ((happy_var_1, happy_var_2, happy_var_4, happy_var_6, happy_var_8)-	) `HappyStk` happyRest}}}}}--happyReduce_30 = happyReduce 6# 9# happyReduction_30-happyReduction_30 (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 happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> -	case happyOut50 happy_x_4 of { (HappyWrap50 happy_var_4) -> -	case happyOut22 happy_x_6 of { (HappyWrap22 happy_var_6) -> -	happyIn13-		 ((happy_var_1, happy_var_2, C.set0, happy_var_4, happy_var_6)-	) `HappyStk` happyRest}}}}--happyReduce_31 = happyReduce 5# 10# happyReduction_31-happyReduction_31 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut49 happy_x_2 of { (HappyWrap49 happy_var_2) -> -	case happyOut61 happy_x_4 of { (HappyWrap61 happy_var_4) -> -	happyIn14-		 (C.FunDecl A.Ind happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_32 = happyReduce 5# 11# happyReduction_32-happyReduction_32 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut49 happy_x_2 of { (HappyWrap49 happy_var_2) -> -	case happyOut61 happy_x_4 of { (HappyWrap61 happy_var_4) -> -	happyIn15-		 (C.FunDecl A.CoInd happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_33 = happyReduce 4# 12# happyReduction_33-happyReduction_33 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut5 happy_x_3 of { (HappyWrap5 happy_var_3) -> -	happyIn16-		 (C.MutualDecl (reverse happy_var_3)-	) `HappyStk` happyRest}--happyReduce_34 = happySpecReduce_3  13# happyReduction_34-happyReduction_34 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut19 happy_x_1 of { (HappyWrap19 happy_var_1) -> -	case happyOut18 happy_x_3 of { (HappyWrap18 happy_var_3) -> -	happyIn17-		 (C.LetDecl happy_var_1 happy_var_3-	)}}--happyReduce_35 = happyReduce 5# 14# happyReduction_35-happyReduction_35 (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_1 of { (HappyWrap35 happy_var_1) -> -	case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> -	case happyOut20 happy_x_3 of { (HappyWrap20 happy_var_3) -> -	case happyOut38 happy_x_5 of { (HappyWrap38 happy_var_5) -> -	happyIn18-		 (let (dec,n) = happy_var_1 in C.LetDef dec n happy_var_2 happy_var_3 happy_var_5-	) `HappyStk` happyRest}}}}--happyReduce_36 = happySpecReduce_0  15# happyReduction_36-happyReduction_36  =  happyIn19-		 (False-	)--happyReduce_37 = happySpecReduce_1  15# happyReduction_37-happyReduction_37 happy_x_1-	 =  happyIn19-		 (True-	)--happyReduce_38 = happySpecReduce_0  16# happyReduction_38-happyReduction_38  =  happyIn20-		 (Nothing-	)--happyReduce_39 = happySpecReduce_2  16# happyReduction_39-happyReduction_39 happy_x_2-	happy_x_1-	 =  case happyOut40 happy_x_2 of { (HappyWrap40 happy_var_2) -> -	happyIn20-		 (Just happy_var_2-	)}--happyReduce_40 = happyReduce 4# 17# happyReduction_40-happyReduction_40 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut24 happy_x_2 of { (HappyWrap24 happy_var_2) -> -	case happyOut57 happy_x_4 of { (HappyWrap57 happy_var_4) -> -	happyIn21-		 (C.PatternDecl (head happy_var_2) (tail happy_var_2) happy_var_4-	) `HappyStk` happyRest}}--happyReduce_41 = happySpecReduce_0  18# happyReduction_41-happyReduction_41  =  happyIn22-		 ([]-	)--happyReduce_42 = happySpecReduce_2  18# happyReduction_42-happyReduction_42 happy_x_2-	happy_x_1-	 =  case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> -	happyIn22-		 (happy_var_2-	)}--happyReduce_43 = happySpecReduce_1  19# happyReduction_43-happyReduction_43 happy_x_1-	 =  case happyOutTok happy_x_1 of { (T.Id happy_var_1 _) -> -	happyIn23-		 (C.Name happy_var_1-	)}--happyReduce_44 = happySpecReduce_1  20# happyReduction_44-happyReduction_44 happy_x_1-	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	happyIn24-		 ([happy_var_1]-	)}--happyReduce_45 = happySpecReduce_2  20# happyReduction_45-happyReduction_45 happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut24 happy_x_2 of { (HappyWrap24 happy_var_2) -> -	happyIn24-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_46 = happySpecReduce_1  21# happyReduction_46-happyReduction_46 happy_x_1-	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	happyIn25-		 ([happy_var_1]-	)}--happyReduce_47 = happySpecReduce_3  21# happyReduction_47-happyReduction_47 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut25 happy_x_3 of { (HappyWrap25 happy_var_3) -> -	happyIn25-		 (happy_var_1 : happy_var_3-	)}}--happyReduce_48 = happySpecReduce_1  22# happyReduction_48-happyReduction_48 happy_x_1-	 =  happyIn26-		 (SPos-	)--happyReduce_49 = happySpecReduce_1  22# happyReduction_49-happyReduction_49 happy_x_1-	 =  happyIn26-		 (Pos-	)--happyReduce_50 = happySpecReduce_1  22# happyReduction_50-happyReduction_50 happy_x_1-	 =  happyIn26-		 (Neg-	)--happyReduce_51 = happySpecReduce_1  22# happyReduction_51-happyReduction_51 happy_x_1-	 =  happyIn26-		 (Const-	)--happyReduce_52 = happySpecReduce_1  22# happyReduction_52-happyReduction_52 happy_x_1-	 =  happyIn26-		 (Param-	)--happyReduce_53 = happySpecReduce_1  22# happyReduction_53-happyReduction_53 happy_x_1-	 =  happyIn26-		 (Rec-	)--happyReduce_54 = happySpecReduce_2  23# happyReduction_54-happyReduction_54 happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> -	happyIn27-		 (A.Measure happy_var_2-	)}--happyReduce_55 = happySpecReduce_2  24# happyReduction_55-happyReduction_55 happy_x_2-	happy_x_1-	 =  case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> -	happyIn28-		 ([happy_var_1]-	)}--happyReduce_56 = happySpecReduce_3  24# happyReduction_56-happyReduction_56 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> -	case happyOut28 happy_x_3 of { (HappyWrap28 happy_var_3) -> -	happyIn28-		 (happy_var_1 : happy_var_3-	)}}--happyReduce_57 = happySpecReduce_3  25# happyReduction_57-happyReduction_57 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) -> -	case happyOut27 happy_x_3 of { (HappyWrap27 happy_var_3) -> -	happyIn29-		 (A.Bound A.Lt happy_var_1 happy_var_3-	)}}--happyReduce_58 = happySpecReduce_3  25# happyReduction_58-happyReduction_58 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) -> -	case happyOut27 happy_x_3 of { (HappyWrap27 happy_var_3) -> -	happyIn29-		 (A.Bound A.Le happy_var_1 happy_var_3-	)}}--happyReduce_59 = happySpecReduce_1  26# happyReduction_59-happyReduction_59 happy_x_1-	 =  case happyOut39 happy_x_1 of { (HappyWrap39 happy_var_1) -> -	happyIn30-		 (let { f (C.Ident (C.QName x)) = x-                            ; f e = error ("not an identifier: " ++ C.prettyExpr e)-                            } in map f happy_var_1-	)}--happyReduce_60 = happySpecReduce_0  27# happyReduction_60-happyReduction_60  =  happyIn31-		 ([]-	)--happyReduce_61 = happySpecReduce_2  27# happyReduction_61-happyReduction_61 happy_x_2-	happy_x_1-	 =  case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) -> -	case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> -	happyIn31-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_62 = happySpecReduce_2  27# happyReduction_62-happyReduction_62 happy_x_2-	happy_x_1-	 =  case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) -> -	case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> -	happyIn31-		 (C.TMeasure happy_var_1 : happy_var_2-	)}}--happyReduce_63 = happyReduce 5# 28# happyReduction_63-happyReduction_63 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut30 happy_x_2 of { (HappyWrap30 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn32-		 (C.TBind   (Dec Default) happy_var_2      happy_var_4-	) `HappyStk` happyRest}}--happyReduce_64 = happyReduce 5# 28# happyReduction_64-happyReduction_64 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn32-		 (C.TBounded A.defaultDec happy_var_2 A.Lt happy_var_4-	) `HappyStk` happyRest}}--happyReduce_65 = happyReduce 5# 28# 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 happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn32-		 (C.TBounded A.defaultDec happy_var_2 A.Le happy_var_4-	) `HappyStk` happyRest}}--happyReduce_66 = happyReduce 6# 28# happyReduction_66-happyReduction_66 (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 happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> -	case happyOut30 happy_x_3 of { (HappyWrap30 happy_var_3) -> -	case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> -	happyIn32-		 (C.TBind    (Dec happy_var_1)     happy_var_3      happy_var_5-	) `HappyStk` happyRest}}}--happyReduce_67 = happyReduce 6# 28# happyReduction_67-happyReduction_67 (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 happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> -	case happyOut23 happy_x_3 of { (HappyWrap23 happy_var_3) -> -	case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> -	happyIn32-		 (C.TBounded (Dec happy_var_1)     happy_var_3 A.Lt happy_var_5-	) `HappyStk` happyRest}}}--happyReduce_68 = happyReduce 6# 28# happyReduction_68-happyReduction_68 (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 happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> -	case happyOut23 happy_x_3 of { (HappyWrap23 happy_var_3) -> -	case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> -	happyIn32-		 (C.TBounded (Dec happy_var_1)     happy_var_3 A.Le happy_var_5-	) `HappyStk` happyRest}}}--happyReduce_69 = happySpecReduce_1  28# happyReduction_69-happyReduction_69 happy_x_1-	 =  case happyOut33 happy_x_1 of { (HappyWrap33 happy_var_1) -> -	happyIn32-		 (happy_var_1-	)}--happyReduce_70 = happySpecReduce_1  28# happyReduction_70-happyReduction_70 happy_x_1-	 =  case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> -	happyIn32-		 (happy_var_1-	)}--happyReduce_71 = happyReduce 5# 29# happyReduction_71-happyReduction_71 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn33-		 (C.TBind    A.irrelevantDec happy_var_2      happy_var_4-	) `HappyStk` happyRest}}--happyReduce_72 = happyReduce 5# 29# happyReduction_72-happyReduction_72 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn33-		 (C.TBounded A.irrelevantDec happy_var_2 A.Lt happy_var_4-	) `HappyStk` happyRest}}--happyReduce_73 = happyReduce 5# 29# happyReduction_73-happyReduction_73 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn33-		 (C.TBounded A.irrelevantDec happy_var_2 A.Le happy_var_4-	) `HappyStk` happyRest}}--happyReduce_74 = happyReduce 5# 30# happyReduction_74-happyReduction_74 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn34-		 (C.TBind    A.Hidden happy_var_2      happy_var_4-	) `HappyStk` happyRest}}--happyReduce_75 = happyReduce 5# 30# happyReduction_75-happyReduction_75 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn34-		 (C.TBounded A.Hidden happy_var_2 A.Lt happy_var_4-	) `HappyStk` happyRest}}--happyReduce_76 = happyReduce 5# 30# happyReduction_76-happyReduction_76 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn34-		 (C.TBounded A.Hidden happy_var_2 A.Le happy_var_4-	) `HappyStk` happyRest}}--happyReduce_77 = happySpecReduce_1  31# happyReduction_77-happyReduction_77 happy_x_1-	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	happyIn35-		 ((A.defaultDec   , happy_var_1)-	)}--happyReduce_78 = happySpecReduce_3  31# happyReduction_78-happyReduction_78 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> -	happyIn35-		 ((A.irrelevantDec, happy_var_2)-	)}--happyReduce_79 = happySpecReduce_2  31# happyReduction_79-happyReduction_79 happy_x_2-	happy_x_1-	 =  case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> -	case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> -	happyIn35-		 ((Dec happy_var_1         , happy_var_2)-	)}}--happyReduce_80 = happySpecReduce_1  32# happyReduction_80-happyReduction_80 happy_x_1-	 =  case happyOut18 happy_x_1 of { (HappyWrap18 happy_var_1) -> -	happyIn36-		 (happy_var_1-	)}--happyReduce_81 = happyReduce 7# 32# happyReduction_81-happyReduction_81 (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 happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	case happyOut40 happy_x_7 of { (HappyWrap40 happy_var_7) -> -	happyIn36-		 (C.LetDef A.irrelevantDec happy_var_2 [] (Just happy_var_4) happy_var_7-	) `HappyStk` happyRest}}}--happyReduce_82 = happyReduce 8# 32# happyReduction_82-happyReduction_82 (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 happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> -	case happyOut23 happy_x_3 of { (HappyWrap23 happy_var_3) -> -	case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> -	case happyOut40 happy_x_8 of { (HappyWrap40 happy_var_8) -> -	happyIn36-		 (C.LetDef (Dec happy_var_1) happy_var_3 [] (Just happy_var_5) happy_var_8-	) `HappyStk` happyRest}}}}--happyReduce_83 = happySpecReduce_1  33# happyReduction_83-happyReduction_83 happy_x_1-	 =  case happyOut41 happy_x_1 of { (HappyWrap41 happy_var_1) -> -	happyIn37-		 ([C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1]-	)}--happyReduce_84 = happySpecReduce_3  33# happyReduction_84-happyReduction_84 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut40 happy_x_2 of { (HappyWrap40 happy_var_2) -> -	happyIn37-		 ([C.TBind A.irrelevantDec [] happy_var_2]-	)}--happyReduce_85 = happySpecReduce_2  33# happyReduction_85-happyReduction_85 happy_x_2-	happy_x_1-	 =  case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> -	case happyOut41 happy_x_2 of { (HappyWrap41 happy_var_2) -> -	happyIn37-		 ([C.TBind (Dec happy_var_1) [] happy_var_2]-	)}}--happyReduce_86 = happySpecReduce_1  33# happyReduction_86-happyReduction_86 happy_x_1-	 =  case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) -> -	happyIn37-		 ([happy_var_1]-	)}--happyReduce_87 = happySpecReduce_1  33# happyReduction_87-happyReduction_87 happy_x_1-	 =  case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) -> -	happyIn37-		 ([C.TMeasure happy_var_1]-	)}--happyReduce_88 = happySpecReduce_1  33# happyReduction_88-happyReduction_88 happy_x_1-	 =  case happyOut29 happy_x_1 of { (HappyWrap29 happy_var_1) -> -	happyIn37-		 ([C.TBound happy_var_1]-	)}--happyReduce_89 = happySpecReduce_1  33# happyReduction_89-happyReduction_89 happy_x_1-	 =  case happyOut31 happy_x_1 of { (HappyWrap31 happy_var_1) -> -	happyIn37-		 (happy_var_1-	)}--happyReduce_90 = happySpecReduce_1  34# happyReduction_90-happyReduction_90 happy_x_1-	 =  case happyOut39 happy_x_1 of { (HappyWrap39 happy_var_1) -> -	happyIn38-		 (foldr1 C.Pair happy_var_1-	)}--happyReduce_91 = happySpecReduce_1  35# happyReduction_91-happyReduction_91 happy_x_1-	 =  case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> -	happyIn39-		 ([happy_var_1]-	)}--happyReduce_92 = happySpecReduce_3  35# happyReduction_92-happyReduction_92 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> -	case happyOut39 happy_x_3 of { (HappyWrap39 happy_var_3) -> -	happyIn39-		 (happy_var_1 : happy_var_3-	)}}--happyReduce_93 = happySpecReduce_3  36# happyReduction_93-happyReduction_93 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_1 of { (HappyWrap37 happy_var_1) -> -	case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> -	happyIn40-		 (C.Quant A.Pi happy_var_1 happy_var_3-	)}}--happyReduce_94 = happyReduce 4# 36# happyReduction_94-happyReduction_94 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut24 happy_x_2 of { (HappyWrap24 happy_var_2) -> -	case happyOut38 happy_x_4 of { (HappyWrap38 happy_var_4) -> -	happyIn40-		 (foldr C.Lam happy_var_4 happy_var_2-	) `HappyStk` happyRest}}--happyReduce_95 = happyReduce 4# 36# happyReduction_95-happyReduction_95 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut36 happy_x_2 of { (HappyWrap36 happy_var_2) -> -	case happyOut38 happy_x_4 of { (HappyWrap38 happy_var_4) -> -	happyIn40-		 (C.LLet happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_96 = happyReduce 6# 36# happyReduction_96-happyReduction_96 (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 happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> -	case happyOut20 happy_x_3 of { (HappyWrap20 happy_var_3) -> -	case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> -	happyIn40-		 (C.Case happy_var_2 happy_var_3 happy_var_5-	) `HappyStk` happyRest}}}--happyReduce_97 = happySpecReduce_1  36# happyReduction_97-happyReduction_97 happy_x_1-	 =  case happyOut41 happy_x_1 of { (HappyWrap41 happy_var_1) -> -	happyIn40-		 (happy_var_1-	)}--happyReduce_98 = happySpecReduce_3  36# happyReduction_98-happyReduction_98 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> -	case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> -	happyIn40-		 (C.Plus happy_var_1 happy_var_3-	)}}--happyReduce_99 = happySpecReduce_3  36# happyReduction_99-happyReduction_99 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> -	case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> -	happyIn40-		 (C.App happy_var_1 [happy_var_3]-	)}}--happyReduce_100 = happySpecReduce_3  36# happyReduction_100-happyReduction_100 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> -	case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> -	happyIn40-		 (C.App happy_var_3 [happy_var_1]-	)}}--happyReduce_101 = happySpecReduce_1  37# happyReduction_101-happyReduction_101 happy_x_1-	 =  case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> -	happyIn41-		 (happy_var_1-	)}--happyReduce_102 = happySpecReduce_3  37# happyReduction_102-happyReduction_102 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> -	case happyOut41 happy_x_3 of { (HappyWrap41 happy_var_3) -> -	happyIn41-		 (C.Quant A.Sigma [happy_var_1] happy_var_3-	)}}--happyReduce_103 = happySpecReduce_1  38# happyReduction_103-happyReduction_103 happy_x_1-	 =  case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> -	happyIn42-		 (C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1-	)}--happyReduce_104 = happySpecReduce_3  38# happyReduction_104-happyReduction_104 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut40 happy_x_2 of { (HappyWrap40 happy_var_2) -> -	happyIn42-		 (C.TBind A.irrelevantDec [] happy_var_2-	)}--happyReduce_105 = happySpecReduce_2  38# happyReduction_105-happyReduction_105 happy_x_2-	happy_x_1-	 =  case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> -	case happyOut43 happy_x_2 of { (HappyWrap43 happy_var_2) -> -	happyIn42-		 (C.TBind (Dec happy_var_1) [] happy_var_2-	)}}--happyReduce_106 = happySpecReduce_1  38# happyReduction_106-happyReduction_106 happy_x_1-	 =  case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) -> -	happyIn42-		 (happy_var_1-	)}--happyReduce_107 = happySpecReduce_1  38# happyReduction_107-happyReduction_107 happy_x_1-	 =  case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) -> -	happyIn42-		 (C.TMeasure happy_var_1-	)}--happyReduce_108 = happySpecReduce_1  38# happyReduction_108-happyReduction_108 happy_x_1-	 =  case happyOut29 happy_x_1 of { (HappyWrap29 happy_var_1) -> -	happyIn42-		 (C.TBound happy_var_1-	)}--happyReduce_109 = happySpecReduce_1  39# happyReduction_109-happyReduction_109 happy_x_1-	 =  case happyOut44 happy_x_1 of { (HappyWrap44 happy_var_1) -> -	happyIn43-		 (let (f : args) = reverse happy_var_1 in-                if null args then f else C.App f args-	)}--happyReduce_110 = happySpecReduce_2  39# happyReduction_110-happyReduction_110 happy_x_2-	happy_x_1-	 =  case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> -	happyIn43-		 (C.CoSet happy_var_2-	)}--happyReduce_111 = happySpecReduce_1  39# happyReduction_111-happyReduction_111 happy_x_1-	 =  happyIn43-		 (C.Set C.Zero-	)--happyReduce_112 = happySpecReduce_2  39# happyReduction_112-happyReduction_112 happy_x_2-	happy_x_1-	 =  case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> -	happyIn43-		 (C.Set happy_var_2-	)}--happyReduce_113 = happySpecReduce_3  39# happyReduction_113-happyReduction_113 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (T.Number happy_var_1 _) -> -	case happyOut43 happy_x_3 of { (HappyWrap43 happy_var_3) -> -	happyIn43-		 (let n = read happy_var_1 in-                            if n==0 then C.Zero else-                            iterate (C.Plus happy_var_3) happy_var_3 !! (n-1)-	)}}--happyReduce_114 = happySpecReduce_1  40# happyReduction_114-happyReduction_114 happy_x_1-	 =  case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) -> -	happyIn44-		 ([happy_var_1]-	)}--happyReduce_115 = happySpecReduce_2  40# happyReduction_115-happyReduction_115 happy_x_2-	happy_x_1-	 =  case happyOut44 happy_x_1 of { (HappyWrap44 happy_var_1) -> -	case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> -	happyIn44-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_116 = happySpecReduce_3  40# happyReduction_116-happyReduction_116 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut44 happy_x_1 of { (HappyWrap44 happy_var_1) -> -	case happyOut23 happy_x_3 of { (HappyWrap23 happy_var_3) -> -	happyIn44-		 (C.Proj happy_var_3 : happy_var_1-	)}}--happyReduce_117 = happySpecReduce_2  40# happyReduction_117-happyReduction_117 happy_x_2-	happy_x_1-	 =  case happyOut44 happy_x_1 of { (HappyWrap44 happy_var_1) -> -	happyIn44-		 (C.Set C.Zero : happy_var_1-	)}--happyReduce_118 = happySpecReduce_1  41# happyReduction_118-happyReduction_118 happy_x_1-	 =  happyIn45-		 (C.Size-	)--happyReduce_119 = happySpecReduce_1  41# happyReduction_119-happyReduction_119 happy_x_1-	 =  happyIn45-		 (C.Max-	)--happyReduce_120 = happySpecReduce_1  41# happyReduction_120-happyReduction_120 happy_x_1-	 =  happyIn45-		 (C.Infty-	)--happyReduce_121 = happySpecReduce_1  41# happyReduction_121-happyReduction_121 happy_x_1-	 =  case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> -	happyIn45-		 (C.Ident happy_var_1-	)}--happyReduce_122 = happyReduce 5# 41# 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 happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn45-		 (C.Sing happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_123 = happySpecReduce_3  41# happyReduction_123-happyReduction_123 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> -	happyIn45-		 (happy_var_2-	)}--happyReduce_124 = happySpecReduce_1  41# happyReduction_124-happyReduction_124 happy_x_1-	 =  happyIn45-		 (C.Unknown-	)--happyReduce_125 = happySpecReduce_2  41# happyReduction_125-happyReduction_125 happy_x_2-	happy_x_1-	 =  case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> -	happyIn45-		 (C.Succ happy_var_2-	)}--happyReduce_126 = happySpecReduce_1  41# happyReduction_126-happyReduction_126 happy_x_1-	 =  case happyOutTok happy_x_1 of { (T.Number happy_var_1 _) -> -	happyIn45-		 (iterate C.Succ C.Zero !! (read happy_var_1)-	)}--happyReduce_127 = happyReduce 4# 41# happyReduction_127-happyReduction_127 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut47 happy_x_3 of { (HappyWrap47 happy_var_3) -> -	happyIn45-		 (C.Record happy_var_3-	) `HappyStk` happyRest}--happyReduce_128 = happySpecReduce_1  42# happyReduction_128-happyReduction_128 happy_x_1-	 =  case happyOutTok happy_x_1 of { (T.QualId happy_var_1 _) -> -	happyIn46-		 (let (m,n) = happy_var_1 in C.Qual (C.Name m) (C.Name n)-	)}--happyReduce_129 = happySpecReduce_1  42# happyReduction_129-happyReduction_129 happy_x_1-	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	happyIn46-		 (C.QName happy_var_1-	)}--happyReduce_130 = happySpecReduce_3  43# happyReduction_130-happyReduction_130 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut48 happy_x_1 of { (HappyWrap48 happy_var_1) -> -	case happyOut47 happy_x_3 of { (HappyWrap47 happy_var_3) -> -	happyIn47-		 (happy_var_1 : happy_var_3-	)}}--happyReduce_131 = happySpecReduce_1  43# happyReduction_131-happyReduction_131 happy_x_1-	 =  case happyOut48 happy_x_1 of { (HappyWrap48 happy_var_1) -> -	happyIn47-		 ([happy_var_1]-	)}--happyReduce_132 = happySpecReduce_0  43# happyReduction_132-happyReduction_132  =  happyIn47-		 ([]-	)--happyReduce_133 = happySpecReduce_3  44# happyReduction_133-happyReduction_133 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut24 happy_x_1 of { (HappyWrap24 happy_var_1) -> -	case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> -	happyIn48-		 ((happy_var_1,happy_var_3)-	)}}--happyReduce_134 = happySpecReduce_3  45# happyReduction_134-happyReduction_134 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> -	happyIn49-		 (C.TypeSig happy_var_1 happy_var_3-	)}}--happyReduce_135 = happyReduce 4# 46# happyReduction_135-happyReduction_135 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn50-		 (C.Constructor happy_var_1 happy_var_2 (Just happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_136 = happySpecReduce_2  46# happyReduction_136-happyReduction_136 happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> -	happyIn50-		 (C.Constructor happy_var_1 happy_var_2 Nothing-	)}}--happyReduce_137 = happySpecReduce_3  47# happyReduction_137-happyReduction_137 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> -	case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> -	happyIn51-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_138 = happySpecReduce_2  47# happyReduction_138-happyReduction_138 happy_x_2-	happy_x_1-	 =  case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> -	happyIn51-		 (happy_var_1-	)}--happyReduce_139 = happySpecReduce_1  47# happyReduction_139-happyReduction_139 happy_x_1-	 =  case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> -	happyIn51-		 ([happy_var_1]-	)}--happyReduce_140 = happySpecReduce_0  47# happyReduction_140-happyReduction_140  =  happyIn51-		 ([]-	)--happyReduce_141 = happyReduce 5# 48# happyReduction_141-happyReduction_141 (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 { (HappyWrap56 happy_var_1) -> -	case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> -	case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> -	happyIn52-		 ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : happy_var_5-	) `HappyStk` happyRest}}}--happyReduce_142 = happySpecReduce_3  48# happyReduction_142-happyReduction_142 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> -	case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> -	happyIn52-		 ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : []-	)}}--happyReduce_143 = happySpecReduce_3  48# happyReduction_143-happyReduction_143 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> -	case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> -	happyIn52-		 ((C.Clause Nothing [happy_var_1] Nothing) : happy_var_3-	)}}--happyReduce_144 = happySpecReduce_1  48# happyReduction_144-happyReduction_144 happy_x_1-	 =  case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> -	happyIn52-		 ((C.Clause Nothing [happy_var_1] Nothing) : []-	)}--happyReduce_145 = happySpecReduce_0  48# happyReduction_145-happyReduction_145  =  happyIn52-		 ([]-	)--happyReduce_146 = happyReduce 4# 49# happyReduction_146-happyReduction_146 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut54 happy_x_2 of { (HappyWrap54 happy_var_2) -> -	case happyOut38 happy_x_4 of { (HappyWrap38 happy_var_4) -> -	happyIn53-		 (C.Clause (Just happy_var_1) happy_var_2 (Just happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_147 = happySpecReduce_2  49# happyReduction_147-happyReduction_147 happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut54 happy_x_2 of { (HappyWrap54 happy_var_2) -> -	happyIn53-		 (C.Clause (Just happy_var_1) happy_var_2 Nothing-	)}}--happyReduce_148 = happySpecReduce_1  50# happyReduction_148-happyReduction_148 happy_x_1-	 =  case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> -	happyIn54-		 (reverse happy_var_1-	)}--happyReduce_149 = happySpecReduce_0  51# happyReduction_149-happyReduction_149  =  happyIn55-		 ([]-	)--happyReduce_150 = happySpecReduce_2  51# happyReduction_150-happyReduction_150 happy_x_2-	happy_x_1-	 =  case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> -	case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> -	happyIn55-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_151 = happySpecReduce_3  51# happyReduction_151-happyReduction_151 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> -	case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> -	happyIn55-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_152 = happySpecReduce_2  52# happyReduction_152-happyReduction_152 happy_x_2-	happy_x_1-	 =  happyIn56-		 (C.AbsurdP-	)--happyReduce_153 = happySpecReduce_3  52# happyReduction_153-happyReduction_153 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut57 happy_x_2 of { (HappyWrap57 happy_var_2) -> -	happyIn56-		 (happy_var_2-	)}--happyReduce_154 = happySpecReduce_1  52# happyReduction_154-happyReduction_154 happy_x_1-	 =  case happyOut60 happy_x_1 of { (HappyWrap60 happy_var_1) -> -	happyIn56-		 (happy_var_1-	)}--happyReduce_155 = happySpecReduce_2  52# happyReduction_155-happyReduction_155 happy_x_2-	happy_x_1-	 =  case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> -	happyIn56-		 (C.SuccP happy_var_2-	)}--happyReduce_156 = happySpecReduce_2  52# happyReduction_156-happyReduction_156 happy_x_2-	happy_x_1-	 =  happyIn56-		 (C.DotP (C.Set C.Zero)-	)--happyReduce_157 = happySpecReduce_2  52# happyReduction_157-happyReduction_157 happy_x_2-	happy_x_1-	 =  case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> -	happyIn56-		 (C.DotP happy_var_2-	)}--happyReduce_158 = happySpecReduce_3  53# happyReduction_158-happyReduction_158 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut58 happy_x_1 of { (HappyWrap58 happy_var_1) -> -	case happyOut57 happy_x_3 of { (HappyWrap57 happy_var_3) -> -	happyIn57-		 (C.PairP happy_var_1 happy_var_3-	)}}--happyReduce_159 = happySpecReduce_1  53# happyReduction_159-happyReduction_159 happy_x_1-	 =  case happyOut58 happy_x_1 of { (HappyWrap58 happy_var_1) -> -	happyIn57-		 (happy_var_1-	)}--happyReduce_160 = happySpecReduce_1  54# happyReduction_160-happyReduction_160 happy_x_1-	 =  case happyOut59 happy_x_1 of { (HappyWrap59 happy_var_1) -> -	happyIn58-		 (happy_var_1-	)}--happyReduce_161 = happySpecReduce_3  54# happyReduction_161-happyReduction_161 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) -> -	case happyOut23 happy_x_3 of { (HappyWrap23 happy_var_3) -> -	happyIn58-		 (C.SizeP happy_var_1 happy_var_3-	)}}--happyReduce_162 = happySpecReduce_3  54# happyReduction_162-happyReduction_162 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	case happyOut45 happy_x_3 of { (HappyWrap45 happy_var_3) -> -	happyIn58-		 (C.SizeP happy_var_3 happy_var_1-	)}}--happyReduce_163 = happySpecReduce_1  54# happyReduction_163-happyReduction_163 happy_x_1-	 =  case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> -	happyIn58-		 (happy_var_1-	)}--happyReduce_164 = happySpecReduce_3  54# happyReduction_164-happyReduction_164 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut59 happy_x_1 of { (HappyWrap59 happy_var_1) -> -	case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> -	happyIn58-		 (patApp happy_var_1 [happy_var_3]-	)}}--happyReduce_165 = happySpecReduce_2  55# happyReduction_165-happyReduction_165 happy_x_2-	happy_x_1-	 =  case happyOut60 happy_x_1 of { (HappyWrap60 happy_var_1) -> -	case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> -	happyIn59-		 (patApp happy_var_1 [happy_var_2]-	)}}--happyReduce_166 = happySpecReduce_2  55# happyReduction_166-happyReduction_166 happy_x_2-	happy_x_1-	 =  case happyOut59 happy_x_1 of { (HappyWrap59 happy_var_1) -> -	case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> -	happyIn59-		 (patApp happy_var_1 [happy_var_2]-	)}}--happyReduce_167 = happySpecReduce_1  56# happyReduction_167-happyReduction_167 happy_x_1-	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> -	happyIn60-		 (C.IdentP (C.QName happy_var_1)-	)}--happyReduce_168 = happySpecReduce_2  56# happyReduction_168-happyReduction_168 happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> -	happyIn60-		 (C.ConP True (C.QName happy_var_2) []-	)}--happyReduce_169 = happySpecReduce_1  57# happyReduction_169-happyReduction_169 happy_x_1-	 =  case happyOut62 happy_x_1 of { (HappyWrap62 happy_var_1) -> -	happyIn61-		 (reverse happy_var_1-	)}--happyReduce_170 = happySpecReduce_3  58# happyReduction_170-happyReduction_170 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut62 happy_x_1 of { (HappyWrap62 happy_var_1) -> -	case happyOut53 happy_x_3 of { (HappyWrap53 happy_var_3) -> -	happyIn62-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_171 = happySpecReduce_2  58# happyReduction_171-happyReduction_171 happy_x_2-	happy_x_1-	 =  case happyOut62 happy_x_1 of { (HappyWrap62 happy_var_1) -> -	happyIn62-		 (happy_var_1-	)}--happyReduce_172 = happySpecReduce_1  58# happyReduction_172-happyReduction_172 happy_x_1-	 =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> -	happyIn62-		 ([happy_var_1]-	)}--happyReduce_173 = happySpecReduce_0  58# happyReduction_173-happyReduction_173  =  happyIn62-		 ([]-	)--happyReduce_174 = happyReduce 5# 59# happyReduction_174-happyReduction_174 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn63-		 (C.TBind (Dec Default) happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_175 = happyReduce 5# 59# happyReduction_175-happyReduction_175 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> -	case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> -	happyIn63-		 (C.TBind A.irrelevantDec happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_176 = happyReduce 6# 59# happyReduction_176-happyReduction_176 (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 happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> -	case happyOut25 happy_x_3 of { (HappyWrap25 happy_var_3) -> -	case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> -	happyIn63-		 (C.TBind (Dec happy_var_1) happy_var_3 happy_var_5-	) `HappyStk` happyRest}}}--happyReduce_177 = happyReduce 6# 59# happyReduction_177-happyReduction_177 (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 happyOut25 happy_x_3 of { (HappyWrap25 happy_var_3) -> -	case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> -	happyIn63-		 (C.TBind (Dec SPos) happy_var_3 happy_var_5-	) `HappyStk` happyRest}}--happyReduce_178 = happySpecReduce_0  60# happyReduction_178-happyReduction_178  =  happyIn64-		 ([]-	)--happyReduce_179 = happySpecReduce_2  60# happyReduction_179-happyReduction_179 happy_x_2-	happy_x_1-	 =  case happyOut63 happy_x_1 of { (HappyWrap63 happy_var_1) -> -	case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> -	happyIn64-		 (happy_var_1 : happy_var_2-	)}}--happyNewToken action sts stk [] =-	happyDoAction 56# notHappyAtAll action sts stk []--happyNewToken action sts stk (tk:tks) =-	let cont i = happyDoAction i tk action sts stk tks in-	case tk of {-	T.Id happy_dollar_dollar _ -> cont 1#;-	T.QualId happy_dollar_dollar _ -> cont 2#;-	T.Number happy_dollar_dollar _ -> cont 3#;-	T.Data _ -> cont 4#;-	T.CoData _ -> cont 5#;-	T.Record _ -> cont 6#;-	T.Sized _ -> cont 7#;-	T.Fields _ -> cont 8#;-	T.Mutual _ -> cont 9#;-	T.Fun _ -> cont 10#;-	T.CoFun _ -> cont 11#;-	T.Pattern _ -> cont 12#;-	T.Case _ -> cont 13#;-	T.Def _ -> cont 14#;-	T.Let _ -> cont 15#;-	T.In _ -> cont 16#;-	T.Eval _ -> cont 17#;-	T.Fail _ -> cont 18#;-	T.Check _ -> cont 19#;-	T.TrustMe _ -> cont 20#;-	T.Impredicative _ -> cont 21#;-	T.Type _ -> cont 22#;-	T.Set _ -> cont 23#;-	T.CoSet _ -> cont 24#;-	T.Size _ -> cont 25#;-	T.Infty _ -> cont 26#;-	T.Succ _ -> cont 27#;-	T.Max _ -> cont 28#;-	T.LTri _ -> cont 29#;-	T.RTri _ -> cont 30#;-	T.AngleOpen _ -> cont 31#;-	T.AngleClose _ -> cont 32#;-	T.BrOpen _ -> cont 33#;-	T.BrClose _ -> cont 34#;-	T.BracketOpen _ -> cont 35#;-	T.BracketClose _ -> cont 36#;-	T.PrOpen _ -> cont 37#;-	T.PrClose _ -> cont 38#;-	T.Bar _ -> cont 39#;-	T.Comma _ -> cont 40#;-	T.Sem _ -> cont 41#;-	T.Col _ -> cont 42#;-	T.Dot _ -> cont 43#;-	T.Arrow _ -> cont 44#;-	T.Leq _ -> cont 45#;-	T.Eq _ -> cont 46#;-	T.PlusPlus _ -> cont 47#;-	T.Plus _ -> cont 48#;-	T.Minus _ -> cont 49#;-	T.Slash _ -> cont 50#;-	T.Times _ -> cont 51#;-	T.Hat _ -> cont 52#;-	T.Amp _ -> cont 53#;-	T.Lam _ -> cont 54#;-	T.Underscore _ -> cont 55#;-	_ -> happyError' ((tk:tks), [])-	}--happyError_ explist 56# tk tks = happyError' (tks, explist)-happyError_ explist _ tk tks = happyError' ((tk:tks), explist)--newtype HappyIdentity a = HappyIdentity a-happyIdentity = HappyIdentity-happyRunIdentity (HappyIdentity a) = a--instance Prelude.Functor HappyIdentity where-    fmap f (HappyIdentity a) = HappyIdentity (f a)--instance Applicative HappyIdentity where-    pure  = HappyIdentity-    (<*>) = ap-instance Prelude.Monad HappyIdentity where-    return = pure-    (HappyIdentity p) >>= q = q p--happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b-happyThen = (Prelude.>>=)-happyReturn :: () => a -> HappyIdentity a-happyReturn = (Prelude.return)-happyThen1 m k tks = (Prelude.>>=) m (\a -> k a tks)-happyReturn1 :: () => a -> b -> HappyIdentity a-happyReturn1 = \a tks -> (Prelude.return) a-happyError' :: () => ([(T.Token)], [Prelude.String]) -> HappyIdentity a-happyError' = HappyIdentity Prelude.. (\(tokens, _) -> parseError tokens)-parse tks = happyRunIdentity happySomeParser where- happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (let {(HappyWrap4 x') = happyOut4 x} in x'))--happySeq = happyDontSeq---parseError :: [T.Token] -> a-parseError [] = error "Parse error at EOF"-parseError (x : xs) = error ("Parse error at token " ++ T.prettyTok x)-{-# LINE 1 "templates/GenericTemplate.hs" #-}--- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $---------------- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.-#if __GLASGOW_HASKELL__ > 706-#define LT(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.<# m)) :: Prelude.Bool)-#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Prelude.Bool)-#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: Prelude.Bool)-#else-#define LT(n,m) (n Happy_GHC_Exts.<# m)-#define GTE(n,m) (n Happy_GHC_Exts.>=# m)-#define EQ(n,m) (n Happy_GHC_Exts.==# m)-#endif--------------------data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList-----------------------------------------infixr 9 `HappyStk`-data HappyStk a = HappyStk a (HappyStk a)---------------------------------------------------------------------------------- starting the parse--happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll---------------------------------------------------------------------------------- Accepting the parse---- If the current token is ERROR_TOK, it means we've just accepted a partial--- parse (a %partial parser).  We must ignore the saved token on the top of--- the stack in this case.-happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =-        happyReturn1 ans-happyAccept j tk st sts (HappyStk ans _) = -        (happyTcHack j (happyTcHack st)) (happyReturn1 ans)---------------------------------------------------------------------------------- Arrays only: do the next action----happyDoAction i tk st-        = {- nothing -}-          case action of-                0#           -> {- nothing -}-                                     happyFail (happyExpListPerState ((Happy_GHC_Exts.I# (st)) :: Prelude.Int)) i tk st-                -1#          -> {- nothing -}-                                     happyAccept i tk st-                n | LT(n,(0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}-                                                   (happyReduceArr Happy_Data_Array.! rule) i tk st-                                                   where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))-                n                 -> {- nothing -}-                                     happyShift new_state i tk st-                                     where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))-   where off    = happyAdjustOffset (indexShortOffAddr happyActOffsets st)-         off_i  = (off Happy_GHC_Exts.+# i)-         check  = if GTE(off_i,(0# :: Happy_GHC_Exts.Int#))-                  then EQ(indexShortOffAddr happyCheck off_i, i)-                  else Prelude.False-         action-          | check     = indexShortOffAddr happyTable off_i-          | Prelude.otherwise = indexShortOffAddr happyDefActions st-----indexShortOffAddr (HappyA# arr) off =-        Happy_GHC_Exts.narrow16Int# i-  where-        i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)-        high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))-        low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))-        off' = off Happy_GHC_Exts.*# 2#-----{-# INLINE happyLt #-}-happyLt x y = LT(x,y)---readArrayBit arr bit =-    Bits.testBit (Happy_GHC_Exts.I# (indexShortOffAddr arr ((unbox_int bit) `Happy_GHC_Exts.iShiftRA#` 4#))) (bit `Prelude.mod` 16)-  where unbox_int (Happy_GHC_Exts.I# x) = x-------data HappyAddr = HappyA# Happy_GHC_Exts.Addr#----------------------------------------------------------------------------------- HappyState data type (not arrays)---------------------------------------------------------------------------------------------- Shifting a token--happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =-     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in---     trace "shifting the error token" $-     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)--happyShift new_state i tk st sts stk =-     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)---- happyReduce is specialised for the common cases.--happySpecReduce_0 i fn 0# tk st sts stk-     = happyFail [] 0# tk st sts stk-happySpecReduce_0 nt fn j tk st@((action)) sts stk-     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)--happySpecReduce_1 i fn 0# tk st sts stk-     = happyFail [] 0# tk st sts stk-happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')-     = let r = fn v1 in-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))--happySpecReduce_2 i fn 0# tk st sts stk-     = happyFail [] 0# tk st sts stk-happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')-     = let r = fn v1 v2 in-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))--happySpecReduce_3 i fn 0# tk st sts stk-     = happyFail [] 0# tk st sts stk-happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')-     = let r = fn v1 v2 v3 in-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))--happyReduce k i fn 0# tk st sts stk-     = happyFail [] 0# tk st sts stk-happyReduce k nt fn j tk st sts stk-     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of-         sts1@((HappyCons (st1@(action)) (_))) ->-                let r = fn stk in  -- it doesn't hurt to always seq here...-                happyDoSeq r (happyGoto nt j tk st1 sts1 r)--happyMonadReduce k nt fn 0# tk st sts stk-     = happyFail [] 0# tk st sts stk-happyMonadReduce k nt fn j tk st sts stk =-      case happyDrop k (HappyCons (st) (sts)) of-        sts1@((HappyCons (st1@(action)) (_))) ->-          let drop_stk = happyDropStk k stk in-          happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))--happyMonad2Reduce k nt fn 0# tk st sts stk-     = happyFail [] 0# tk st sts stk-happyMonad2Reduce k nt fn j tk st sts stk =-      case happyDrop k (HappyCons (st) (sts)) of-        sts1@((HappyCons (st1@(action)) (_))) ->-         let drop_stk = happyDropStk k stk--             off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st1)-             off_i = (off Happy_GHC_Exts.+# nt)-             new_state = indexShortOffAddr happyTable off_i-----          in-          happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))--happyDrop 0# l = l-happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t--happyDropStk 0# l = l-happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs---------------------------------------------------------------------------------- Moving to a new state after a reduction---happyGoto nt j tk st = -   {- nothing -}-   happyDoAction j tk new_state-   where off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st)-         off_i = (off Happy_GHC_Exts.+# nt)-         new_state = indexShortOffAddr happyTable off_i------------------------------------------------------------------------------------- Error recovery (ERROR_TOK is the error token)---- parse error if we are in recovery and we fail again-happyFail explist 0# tk old_st _ stk@(x `HappyStk` _) =-     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in---      trace "failing" $ -        happyError_ explist i tk--{-  We don't need state discarding for our restricted implementation of-    "error".  In fact, it can cause some bogus parses, so I've disabled it-    for now --SDM---- discard a state-happyFail  ERROR_TOK tk old_st CONS(HAPPYSTATE(action),sts) -                                                (saved_tok `HappyStk` _ `HappyStk` stk) =---      trace ("discarding state, depth " ++ show (length stk))  $-        DO_ACTION(action,ERROR_TOK,tk,sts,(saved_tok`HappyStk`stk))--}---- Enter error recovery: generate an error token,---                       save the old token and carry on.-happyFail explist i tk (action) sts stk =---      trace "entering error recovery" $-        happyDoAction 0# tk action sts ((Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)---- Internal happy errors:--notHappyAtAll :: a-notHappyAtAll = Prelude.error "Internal Happy error\n"---------------------------------------------------------------------------------- Hack to get the typechecker to accept our action functions---happyTcHack :: Happy_GHC_Exts.Int# -> a -> a-happyTcHack x y = y-{-# INLINE happyTcHack #-}----------------------------------------------------------------------------------- Seq-ing.  If the --strict flag is given, then Happy emits ---      happySeq = happyDoSeq--- otherwise it emits---      happySeq = happyDontSeq--happyDoSeq, happyDontSeq :: a -> b -> b-happyDoSeq   a b = a `Prelude.seq` b-happyDontSeq a b = b---------------------------------------------------------------------------------- Don't inline any functions from the template.  GHC has a nasty habit--- of deciding to inline happyGoto everywhere, which increases the size of--- the generated parser quite a bit.---{-# NOINLINE happyDoAction #-}-{-# NOINLINE happyTable #-}-{-# NOINLINE happyCheck #-}-{-# NOINLINE happyActOffsets #-}-{-# NOINLINE happyGotoOffsets #-}-{-# NOINLINE happyDefActions #-}--{-# NOINLINE happyShift #-}-{-# NOINLINE happySpecReduce_0 #-}-{-# NOINLINE happySpecReduce_1 #-}-{-# NOINLINE happySpecReduce_2 #-}-{-# NOINLINE happySpecReduce_3 #-}-{-# NOINLINE happyReduce #-}-{-# NOINLINE happyMonadReduce #-}-{-# NOINLINE happyGoto #-}-{-# NOINLINE happyFail #-}---- end of Happy Template.
lib/bintree.ma view
@@ -1,11 +1,9 @@ -- bintree.ma  Binary trees -cofun BinTree : ++(A : Set) -> +(i : Size) -> Set +cofun BinTree : ++(A : Set) -> +(i : Size) -> Set { BinTree A i = let ++T = [j < i] & BinTree A j                 in  Maybe (T & A & T) } pattern leaf       = nothing pattern node l a r = just (l, a, r)-- 
lib/colist.ma view
@@ -1,13 +1,13 @@ -- colist.ma -- MiniAgda colist library  cofun CoList : ++(A : Set) -> -(i : Size) -> Set-{ CoList A i = Maybe (A & ([i' < i] -> CoList A i')) +{ CoList A i = Maybe (A & ([i' < i] -> CoList A i')) }  fun colist : [A : Set] -> [i : Size] -> |i| -> List A i -> CoList A i { colist A i nil               = nil ; colist A i (cons a (i', as)) = cons a (\ i'' -> colist A (max i' i'') as)-}  +}  fun cotake : [A : Set] -> [i : Size] -> Nat i -> CoList A i -> List A i { cotake A i zero          as         = nil@@ -15,8 +15,8 @@ ; cotake A i (suc (i', n)) (cons a l) = cons a (i', cotake A i' n (l i')) } -fun codrop : [A : Set ] -> -             [i : Size] -> Nat i -> +fun codrop : [A : Set ] ->+             [i : Size] -> Nat i ->              [j : Size] -> CoList A (j+i) -> CoList A j { codrop A i zero          j l          = l ; codrop A i n             j nil        = nil@@ -27,14 +27,14 @@ check fun cotail : [A : Set] [i : Size] (l : CoList A $i) -> CoList A i { cotail A i nil        = nil-; cotail A i (cons a l) = l i +; cotail A i (cons a l) = l i }  -- tail as instance of drop let cotail [A : Set] : [i : Size] (l : CoList A $i) -> CoList A i   = codrop A $0 (suc (0, zero)) -fun coappend : [A : Set] -> [i : Size] -> |i| -> +fun coappend : [A : Set] -> [i : Size] -> |i| ->                CoList A i -> CoList A i -> CoList A i { coappend A i nil        bs = bs ; coappend A i (cons a l) bs = cons a (\ i' -> coappend A i' (l i') bs)@@ -42,8 +42,8 @@  -- list take -let take [A : Set] [i : Size] (n : Nat i) (as : List A i) : List A i -  = cotake A i n (colist A i as) +let take [A : Set] [i : Size] (n : Nat i) (as : List A i) : List A i+  = cotake A i n (colist A i as)  {- @@ -52,8 +52,8 @@    { nil -> nil    ; (cons a as) -> cons a (\ j -> as $j -mapMaybe (A & ([i' < $i] -> CoList A i'))  +mapMaybe (A & ([i' < $i] -> CoList A i'))                         (A & ([i' < i] -> CoList A i'))-    + } -}
lib/nat.ma view
@@ -15,14 +15,14 @@ let threeN : Nat 3 = suc (2, twoN) let fourN  : Nat 4 = suc (3, threeN) -fun caseNat : [i : Size] -> |i| -> (n : Nat $i) -> +fun caseNat : [i : Size] -> |i| -> (n : Nat $i) ->   [C : Set] -> C -> ([i : Size] -> (m : Nat i) -> C) -> C { caseNat i zero          C z s = z ; caseNat i (suc (i', n)) C z s = s i' n }  {- ERROR in TypeChecker!-fun caseNat : [i : Size] -> |i| -> (n : Nat $i) -> +fun caseNat : [i : Size] -> |i| -> (n : Nat $i) ->   [C : [j : Size] -> Nat j -> Set] ->   C 0 zero ->   ([i : Size] -> (m : Nat i) -> C i m) ->@@ -42,7 +42,7 @@ ; pred i (suc (j, n)) = n } -fun plus : [i : Size] -> |i| -> (n : Nat i) -> +fun plus : [i : Size] -> |i| -> (n : Nat i) ->            [j : Size] ->        (m : Nat j) -> Nat (i+j) { plus i zero          j m = m ; plus i (suc (i', n)) j m = suc (i'+j, plus i' n j m)@@ -53,7 +53,7 @@ ; times i (suc (i', n)) m = plus # m # (times i' n m) } -fun minus : [i : Size] ->        (n : Nat i) -> +fun minus : [i : Size] ->        (n : Nat i) ->             [j : Size] -> |j| -> (m : Nat j) -> Nat i { minus i zero          j m             = zero ; minus i n             j zero          = n@@ -67,13 +67,13 @@ }  -- computes floor(n/m) if m>0, and 0 otherwise-check  -- Alternative definition +check  -- Alternative definition   let div [i : Size] (n : Nat i) (m : Nat #) : Nat i-    = caseNat # m (Nat i) -        zero +    = caseNat # m (Nat i)+        zero         (\ oo pred_m -> div' i (minus i n # pred_m) pred_m) -check  -- Alternative definition +check  -- Alternative definition   fun div : [i : Size] -> (n : Nat i) -> (m : Nat #) -> Nat i   { div i n zero = zero   ; div i n m    = div' i (minus i n # (pred # m)) (pred # m)
lib/stl.ma view
@@ -20,29 +20,29 @@ fun Var : [i : Size] -> |i| -> (cxt : Context i) -> ^(c : Ty #) -> Set { Var i nil               c = Empty ; Var i (cons a (j, cxt)) c = Either (Id (Ty #) a c) (Var j cxt c)-} +}  -- Variables are a variant of natural numbers pattern vzero   = left refl pattern vsucc x = right x -let vzer (cxt : Context #) (a : Ty #) : Var # (extend # a cxt) a +let vzer (cxt : Context #) (a : Ty #) : Var # (extend # a cxt) a   = vzero -let vsuc (cxt : Context #) (a, b : Ty #) (x : Var # cxt a) +let vsuc (cxt : Context #) (a, b : Ty #) (x : Var # cxt a)   : Var # (extend # b cxt) a   = vsucc x  -- Well-typed terms  cofun Term :  +(i : Size) -> (cxt : Context #) -> (c : Ty #) -> Set-{ Term i cxt c = -    let ++T (cxt : Context #) (c : Ty #) = [j < i] & Term j cxt c +{ Term i cxt c =+    let ++T (cxt : Context #) (c : Ty #) = [j < i] & Term j cxt c     in  Tri (Var # cxt c)                              -- var             ((a : Ty #) & T cxt (arr # a c) & T cxt a) -- app             (case c                                    -- abs              { (base)                -> Empty-             ; (arrow (j, a) (k, b)) -> T (extend # a cxt) b +             ; (arrow (j, a) (k, b)) -> T (extend # a cxt) b              }) } pattern var x     = first x@@ -62,14 +62,14 @@ pattern var3 = var v3  let tyId : Ty # = arr # base base-let tmId : Term # nil tyId = abs (0, var0) +let tmId : Term # nil tyId = abs (0, var0)  let tyK : Ty # = arr # base tyId let tmK : Term # nil tyK = abs (1, abs (0, var1))  let tyS : Ty # = arr # tyK (arr # tyId tyId) let tmS : Term # nil tyS = abs (4, abs (3, abs (2, app base-  (1, app base (0, var2) (0, var0)) +  (1, app base (0, var2) (0, var0))   (1, app base (0, var1) (0, var0)))))  -- Renamings@@ -78,28 +78,28 @@   = (a : Ty #) -> Var # delta a -> Var # gamma a  check-fun liftRen : (gamma, delta : Context #) -> (c : Ty #) -> +fun liftRen : (gamma, delta : Context #) -> (c : Ty #) ->   (rho : Renaming gamma delta) -> Renaming (extend # c gamma) (extend # c delta) { liftRen gamma delta c rho .c vzero    = vzero-; liftRen gamma delta c rho a (vsucc x) = vsucc (rho a x) +; liftRen gamma delta c rho a (vsucc x) = vsucc (rho a x) } -let liftRen (gamma, delta : Context #) (c : Ty #) (rho : Renaming gamma delta) +let liftRen (gamma, delta : Context #) (c : Ty #) (rho : Renaming gamma delta)   : Renaming (extend # c gamma) (extend # c delta)   = \ a y -> case y     { (left p)  -> left p     ; (right x) -> right (rho a x)     } -fun rename : (gamma, delta : Context #) -> (c : Ty #) -> +fun rename : (gamma, delta : Context #) -> (c : Ty #) ->   [i : Size] -> Term i delta c -> Renaming gamma delta -> Term i gamma c { rename gamma delta c i (var x)             rho = var (rho c x)-; rename gamma delta c i (app a (j,t) (k,u)) rho = +; rename gamma delta c i (app a (j,t) (k,u)) rho =     app a (j, rename gamma delta (arr # a c) j t rho)           (k, rename gamma delta  a          k u rho)-; rename gamma delta base                  i (abs ())    rho -; rename gamma delta (arrow (k1,a) (k2,b)) i (abs (j,t)) rho = -    abs (j, rename (extend # a gamma) (extend # a delta) b j t +; rename gamma delta base                  i (abs ())    rho+; rename gamma delta (arrow (k1,a) (k2,b)) i (abs (j,t)) rho =+    abs (j, rename (extend # a gamma) (extend # a delta) b j t               (liftRen gamma delta a rho)) } @@ -108,24 +108,24 @@ let Substitution +(i : Size) (gamma, delta : Context #)   = (a : Ty #) -> Var # delta a -> Term i gamma a -let liftSubst (gamma, delta : Context #) (c : Ty #) -      [i : Size] (sigma : Substitution i gamma delta) +let liftSubst (gamma, delta : Context #) (c : Ty #)+      [i : Size] (sigma : Substitution i gamma delta)   : Substitution i (extend # c gamma) (extend # c delta)   = \ a y -> case y     { (left p)  -> var (left p)-    ; (right x) -> rename (extend # c gamma) gamma a i +    ; (right x) -> rename (extend # c gamma) gamma a i                      (sigma a x) (\ b x -> vsucc x)     } -fun substitute : (gamma, delta : Context #) -> (c : Ty #) -> -  [i : Size] -> |i| -> Term i delta c -> +fun substitute : (gamma, delta : Context #) -> (c : Ty #) ->+  [i : Size] -> |i| -> Term i delta c ->   [j : Size] -> Substitution j gamma delta -> Term (i+j) gamma c { substitute gamma delta c i (var x) j sigma = sigma c x ; substitute gamma delta c i (app a (i1, t) (i2, u)) j sigma =     app a (i1+j, substitute gamma delta (arr # a c) i1 t j sigma)           (i2+j, substitute gamma delta a           i2 u j sigma)-; substitute gamma delta base                    i (abs ())      j sigma +; substitute gamma delta base                    i (abs ())      j sigma ; substitute gamma delta (arrow (k1, a) (k2, b)) i (abs (i', t)) j sigma =-    abs (i' + j, substitute (extend # a gamma) (extend # a delta) b i' t j +    abs (i' + j, substitute (extend # a gamma) (extend # a delta) b i' t j                    (liftSubst gamma delta a j sigma)) }
src/Abstract.hs view
@@ -5,20 +5,25 @@ {-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeSynonymInstances,   GeneralizedNewtypeDeriving, DeriveFunctor, DeriveFoldable, DeriveTraversable,   NamedFieldPuns #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-}  module Abstract where  import Prelude hiding (showList, map, concat, foldl, pi, null, (<>)) +#if !MIN_VERSION_base(4,8,0) import Control.Applicative hiding (empty)-import Control.Monad.Writer (Writer, tell, All(..))+#endif+import Control.Monad.Writer (Writer, tell) import Control.Monad.Trans +import Control.Arrow (first) import Data.Monoid hiding ((<>))+#if !MIN_VERSION_base(4,8,0) import Data.Foldable (Foldable, foldMap)-import qualified Data.Foldable as Foldable-import Data.Traversable as Traversable+import Data.Traversable (Traversable)+#endif import Data.Unique  import Data.List (map)@@ -28,7 +33,7 @@ import Data.Set (Set) import qualified Data.Set as Set -import Debug.Trace+-- import Debug.Trace import Data.IORef import System.IO.Unsafe @@ -66,7 +71,7 @@   compare x x' = compare (uid x) (uid x')  instance Show Name where-  show (Name n _ u) = n -- n ++ "`" ++ show (hashUnique u `mod` 13)+  show (Name n _ _u) = n -- n ++ "`" ++ show (hashUnique u `mod` 13)  -- | @fresh s@ generates a new name with 'suggestion' @s@. --@@ -112,6 +117,7 @@ -- mkExtName n = "_" ++ n {-# NOINLINE mkExtName #-} +mkExtRef :: Name -> Expr mkExtRef  n = letdef (mkExtName n)  isEtaAlias :: Name -> Bool@@ -124,6 +130,7 @@ -- internal names are prefixed by a double underscore (not legal concrete syntax)  -- | Convert a dot pattern into an identifier which should not look too confusing.+spaceToUnderscore :: String -> String spaceToUnderscore = List.map (\ c -> if c==' ' then '_' else c) {- exprToName e = spaceToUnderscore $ show e@@ -141,10 +148,12 @@   show (QName n)  = show n  -- | An unqualified name is an instance of a qualified name.+nameInstanceOf :: QName -> QName -> Bool nameInstanceOf (QName n) (Qual _ n') = n == n' nameInstanceOf n         n'          = n == n'  -- | Fails if qualified name.+unqual :: QName -> Name unqual (QName n) = n unqual n         = error $ "Abstract.unqual: " ++ show n @@ -200,16 +209,18 @@  instance LensPol Dec where   getPol = polarity-  setPol p Hidden = Hidden+  setPol _ Hidden = Hidden   setPol p dec    = dec { thePolarity = p }  udec :: Dec -> UDec udec = fmap pprod +irrelevantDec, paramDec, defaultDec, neutralDec :: Decoration Pol irrelevantDec = Dec Pol.Const paramDec = Dec Param defaultDec = Dec defaultPol -- defaultDec = paramDec -- TODO: Dec { polarity = Rec }+defaultUpperDec :: Decoration PProd defaultUpperDec = Dec $ pprod SPos   -- a variable may not be erased and its polarity must be below SPos -- notErased = Dec False@@ -228,7 +239,7 @@ -- composition of decoration, used when type checking arguments -- of functions decorated with dec compDec :: Dec -> UDec -> UDec-compDec dec udec = compose (fmap pprod dec) udec+compDec dec dec' = compose (fmap pprod dec) dec'  {- instance Show pos => Show (Decoration pos) where@@ -290,14 +301,14 @@ minSizeE :: Expr -> Expr -> Expr minSizeE Infty e2 = e2 minSizeE e1 Infty = e1-minSizeE Zero  e2 = Zero-minSizeE e1 Zero  = Zero+minSizeE Zero  _  = Zero+minSizeE _  Zero  = Zero minSizeE (Succ e1) (Succ e2) = Succ (minSizeE e1 e2) minSizeE e1 e2 = error $ "minSizeE " ++ (Util.parens $ show e1) ++ " " ++ (Util.parens $ show e2)  maxSizeE :: Expr -> Expr -> Expr-maxSizeE Infty e2 = Infty-maxSizeE e1 Infty = Infty+maxSizeE Infty _  = Infty+maxSizeE _  Infty = Infty maxSizeE Zero  e2 = e2 maxSizeE e1 Zero  = e1 maxSizeE (Succ e1) (Succ e2) = Succ (maxSizeE e1 e2)@@ -305,7 +316,7 @@ -- maxSizeE e1 e2 = error $ "maxSizeE " ++ (Util.parens $ show e1) ++ " " ++ (Util.parens $ show e2)  flattenMax :: Expr -> [Expr] -> [Expr]-flattenMax Infty          acc = [Infty]+flattenMax Infty          _   = [Infty] flattenMax Zero           acc = acc flattenMax (Max [])       acc = acc flattenMax (Max (e : es)) acc = flattenMax e $ flattenMax (Max es) acc@@ -321,11 +332,11 @@ sizeVarsToInfty _ = Infty  leqSizeE :: Expr -> Expr -> Bool-leqSizeE Zero e  = True-leqSizeE e Zero  = False-leqSizeE e Infty = True+leqSizeE Zero _  = True+leqSizeE _ Zero  = False+leqSizeE _ Infty = True leqSizeE (Succ e) (Succ e') = leqSizeE e e'-leqSizeE Infty e = False+leqSizeE Infty _ = False  -- plus :: Expr -> Expr -> Expr @@ -381,7 +392,7 @@  predSort :: Sort Expr -> Sort Expr predSort (SortC  c)     = SortC (predClass c)-predSort (CoSet  e)     = SortC Tm+predSort (CoSet  _)     = SortC Tm predSort (Set Zero)     = SortC Tm predSort (Set (Succ e)) = Set e predSort (Set Infty)    = Set Infty@@ -396,8 +407,8 @@ succSort (Set e)      = Set (sizeSuccE e)  minSort :: Sort Expr -> Sort Expr -> Sort Expr-minSort (SortC Tm) (Set e) = SortC Tm-minSort (Set e) (SortC Tm) = SortC Tm+minSort (SortC Tm) (Set _) = SortC Tm+minSort (Set _) (SortC Tm) = SortC Tm minSort (Set e) (Set e') = Set (minSizeE e e') -- minSort (SortC c) (SortC c') | c == c' = SortC c minSort (SortC c) (SortC c') = SortC $ minClass c c'@@ -405,10 +416,10 @@  -- 2012-01-21: that should not be necessary, but to move on... minClass :: Class -> Class -> Class-minClass Tm c = Tm-minClass c Tm = Tm-minClass Size c = Size-minClass c Size = Size+minClass Tm _ = Tm+minClass _ Tm = Tm+minClass Size _ = Size+minClass _ Size = Size minClass TSize TSize = TSize maxClass :: Class -> Class -> Class @@ -455,14 +466,17 @@   | AnyKind  -- not yet classified, neutral wrt. intersection     deriving (Eq, Ord) +defaultKind, kSize, kTSize, kTerm, kType :: Kind --defaultKind = Kind (SortC Tm) topSort -- no classification, could be anything defaultKind = AnyKind +preciseKind :: Sort Expr -> Kind preciseKind s = Kind s s kSize   = preciseKind (SortC Size) kTSize  = preciseKind (SortC TSize) kTerm   = preciseKind (SortC Tm) kType   = preciseKind (Set Zero)+kUniv :: Expr -> Kind kUniv e = preciseKind (Set (Succ (sizeVarsToInfty e))) -- used in TypeChecker  instance Show Kind where@@ -483,7 +497,7 @@ prettyKind (Kind (Set (Succ Zero)) _)   = "univ" prettyKind (Kind (Set Zero) _)          = "ty-u" prettyKind (Kind (SortC Tm) (Set Zero)) = "tmty"-prettyKind k                            = "mixk"+prettyKind _                            = "mixk"  -- if D : T and T has kind ki, then D has kind dataKind ki dataKind :: Kind -> Kind@@ -505,7 +519,7 @@ -- proper types are only inhabited by terms predKind (Kind _ (Set Zero)) = kTerm -- proper universes are inhabited by types and universes-predKind (Kind (Set (Succ e)) s) = Kind (Set Zero) (predSort s)+predKind (Kind (Set (Succ _)) s) = Kind (Set Zero) (predSort s) -- something which is a type or a universe can be inhabited by a term predKind (Kind _ s) = Kind (SortC Tm) (predSort s) @@ -529,8 +543,8 @@   case (ki1,ki2) of     (NoKind, ki) -> ki     (ki, NoKind) -> ki-    (AnyKind, ki) -> AnyKind-    (ki, AnyKind) -> AnyKind+    (AnyKind, _) -> AnyKind+    (_, AnyKind) -> AnyKind     (Kind x1 x2, Kind y1 y2) ->       Kind (minSort x1 y1) (maxSort x2 y2) @@ -560,8 +574,13 @@ instance Show a => Show (Dom a) where     show (Domain ty ki dec) = show dec ++ show ty ++ "::" ++ show ki +defaultDomain :: a -> Dom a defaultDomain a = Domain a defaultKind defaultDec++domFromKinded :: Kinded a -> Dom a domFromKinded (Kinded ki t) = Domain t ki defaultDec++defaultIrrDom :: a -> Dom a defaultIrrDom a = Domain a defaultKind irrelevantDec  sizeDomain :: Dec -> Dom Expr@@ -616,9 +635,11 @@     show FunK   = "fun"     show LetK   = "let" +conKind :: IdKind -> Bool conKind (ConK _) = True conKind _        = False +coToConK :: Co -> ConK coToConK Ind = Cons coToConK CoInd = CoCons @@ -652,11 +673,11 @@ instance LensDec (TBinding a) where   getDec = getDec . boundDom   mapDec f (TBind x dom) = TBind x (dom { decor = f (decor dom) })-  mapDec f tb = tb+  mapDec _ tb = tb  mapDecM :: (Applicative m) => (Dec -> m Dec) -> TBind -> m TBind mapDecM f tb@TBind{} = flip setDec tb <$> f (getDec tb)-mapDecM f tb         = pure tb+mapDecM _ tb         = pure tb  -- measures ---------------------------------------------------------- @@ -667,7 +688,7 @@     show (Measure l) = "|" ++ showList "," show l ++ "|"  succMeasure :: (a -> a) -> Measure a -> Measure a-succMeasure succ mu = maybe (error "cannot take successor of empty measure") id $ applyLastM (Just . succ) mu+succMeasure suc mu = maybe (error "cannot take successor of empty measure") id $ applyLastM (Just . suc) mu  {- succMeasure succ (Measure mu) = Measure (succMeas mu)@@ -714,6 +735,7 @@ inTags :: Tag -> Tags -> Bool inTags = elem +noTags :: Tags noTags = []  data Tagged a = Tagged { tags :: Tags , unTag :: a }@@ -736,9 +758,11 @@       prettyCast (Cast `inTags` tags) $         pretty a +prettyErased :: Bool -> Doc -> Doc prettyErased True  doc = brackets doc prettyErased False doc = doc +prettyCast :: Bool -> Doc -> Doc prettyCast True  doc = text "'cast" <> PP.parens doc prettyCast False doc = doc @@ -801,8 +825,8 @@  newtype Dotted = Dotted { dottedRef :: IORef Bool } -instance Eq   Dotted where x == y = True-instance Ord  Dotted where x <= y = True+instance Eq   Dotted where _ == _ = True+instance Ord  Dotted where _ <= _ = True instance Show Dotted where show d = fwhen (isDotted d) ("un" ++) "confirmed"  -- A bit of imperative programming@@ -862,13 +886,15 @@ proj e Post n = App e (Proj Post n)  -- | Non-dependent function type.+funType :: Dom Type -> Expr -> Expr funType a b = Quant Pi (noBind a) b +erasedExpr, castExpr :: Expr -> Expr erasedExpr e = Ann (Tagged [Erased] e) castExpr   e = Ann (Tagged [Cast]   e)  succView :: Expr -> (Int, Expr)-succView (Succ e) = inc (succView e) where inc (n, e) = (n+1, e)+succView (Succ e) = first (+1) (succView e) succView e = (0, e)  -- Clauses and patterns ----------------------------------------------@@ -879,6 +905,7 @@   , clExpr     :: Maybe Expr   -- Nothing if absurd clause   } deriving (Eq,Ord,Show) +clause :: [Pattern] -> Maybe Expr -> Clause -- clause = Clause (error "internal error: no telescope in clause before typechecking!") clause = Clause [] -- empty clTele @@ -937,10 +964,15 @@  type Subst = Map MVar Expr +con :: ConK -> QName -> Expr con co n = Def $ DefId (ConK co) n -- con co n = Con co n []++fun, dat :: QName -> Expr fun n    = Def $ DefId FunK n dat n    = Def $ DefId DatK n++letdef :: Name -> Expr letdef n = Def $ DefId LetK $ QName n  type SpineView = (Expr, [Expr])@@ -951,6 +983,7 @@   where aux sp (App f e) = aux (e:sp) f         aux sp e = (e, sp) +test_spineView :: SpineView test_spineView = spineView ((Var x `App` Var y) `App` Var z)   where x = fresh "x"         y = fresh "y"@@ -1015,6 +1048,7 @@ newtype Telescope = Telescope { telescope :: [TBind] }   deriving (Eq, Ord, Show, Size, Null) +emptyTel :: Telescope emptyTel = Telescope []  data Arity = Arity@@ -1070,7 +1104,7 @@ -- 2012-01-22 constructors are no longer inferable, since parameters are missing inferable (Def (DefId { idKind = ConK{} }))  = False inferable Def{} = True-inferable (App f e) = inferable f+inferable (App f _) = inferable f -- inferable (Pair f e) = inferable f && inferable e  -- pairs are not inferable due to irrelevant sigma! -- inferable Sing{}  = True  -- not with universes inferable _       = False@@ -1092,16 +1126,16 @@   boundVars (a, b, c) = mconcat [boundVars a, boundVars b, boundVars c]  instance BoundVars (TBinding a) where-  boundVars (TBind x a)  = Coll.singleton x-  boundVars (TMeasure m) = mempty-  boundVars (TBound b)   = mempty+  boundVars (TBind x _)  = Coll.singleton x+  boundVars (TMeasure _) = mempty+  boundVars (TBound _)   = mempty  instance BoundVars Telescope where   boundVars = boundVars . telescope  instance BoundVars (Pat e) where   boundVars (VarP name)   = Coll.singleton name-  boundVars (SizeP x y)   = Coll.singleton y+  boundVars (SizeP _ y)   = Coll.singleton y   boundVars (SuccP p)     = boundVars p   boundVars (ConP _ _ ps) = boundVars ps   boundVars (PairP p p')  = boundVars (p, p')@@ -1109,7 +1143,7 @@   boundVars (DotP _)      = mempty   boundVars (ErasedP p)   = boundVars p   boundVars (AbsurdP)     = mempty-  boundVars (UnusableP p) = mempty+  boundVars (UnusableP _) = mempty   @@ -1145,7 +1179,7 @@   freeVars (a, b, c) = mconcat [freeVars a, freeVars b, freeVars c]  instance FreeVars a => FreeVars (TBinding a) where-  freeVars (TBind x a)  = freeVars a  -- Note: x is bound in the stuff to come, not in a.+  freeVars (TBind _x a) = freeVars a  -- Note: x is bound in the stuff to come, not in a.   freeVars (TMeasure m) = freeVars m   freeVars (TBound b)   = freeVars b @@ -1172,7 +1206,7 @@       Max  es   -> freeVars es       Plus es   -> freeVars es       Lam _ x e -> Set.delete x (freeVars e)-      Quant pisig ta b -> freeVars ta `Set.union` (freeVars b Set.\\ boundVars ta)+      Quant _pisig ta b -> freeVars ta `Set.union` (freeVars b Set.\\ boundVars ta) {-       Quant pisig tel ta b                 -> freeVars tel' `Set.union` (freeVars b Set.\\ boundVars tel')@@ -1185,7 +1219,7 @@       e         -> error $ "freeVars " ++ show e ++ " not implemented"  instance FreeVars Clause where-  freeVars (Clause _ ps Nothing)  = mempty  -- absurd clause+  freeVars (Clause _ _  Nothing)  = mempty  -- absurd clause   freeVars (Clause _ ps (Just e)) = freeVars e Set.\\ boundVars ps  patternVars :: Pattern -> [Name]@@ -1245,20 +1279,20 @@   usedDefs = usedDefs . telescope  instance UsedDefs DefId where-  usedDefs id-    | idKind id `elem` [FunK, DatK] = [unqual $ idName id]+  usedDefs x+    | idKind x `elem` [FunK, DatK] = [unqual $ idName x]     | otherwise                     = []  instance UsedDefs Clause where   usedDefs = usedDefs . clExpr  instance UsedDefs Expr where-  usedDefs (Def id)           = usedDefs id+  usedDefs (Def x)            = usedDefs x   usedDefs (Pair f e)         = usedDefs (f, e)   usedDefs (App f e)          = usedDefs (f, e)   usedDefs (Max es)           = usedDefs es   usedDefs (Plus es)          = usedDefs es-  usedDefs (Lam _ x e)        = usedDefs e+  usedDefs (Lam _ _ e)        = usedDefs e   usedDefs (Sing a b)         = usedDefs (a, b)   usedDefs (Below _ b)        = usedDefs b --  usedDefs (Quant _ tel tb b) = usedDefs (tel, tb, b)@@ -1273,14 +1307,15 @@   usedDefs Meta{}             = []   usedDefs Var{}              = []   usedDefs Proj{}             = []-  usedDefs (Record ri rs)     = foldMap (usedDefs . snd) rs+  usedDefs (Record _ri rs)    = foldMap (usedDefs . snd) rs   usedDefs e                  = error $ "usedDefs " ++ show e ++ " not implemented"  rhsDefs :: [Clause] -> [Name]-rhsDefs cls = List.foldl (\ ns (Clause _ ps e) -> maybe [] usedDefs e ++ ns) [] cls+rhsDefs cls = List.foldl (\ ns (Clause _ _ e) -> maybe [] usedDefs e ++ ns) [] cls  -- pretty printing expressions --------------------------------------- +precArrL, precAppL, precAppR :: Int [precArrL, precAppL, precAppR] = [1..3]  instance Pretty Name where@@ -1303,30 +1338,30 @@   prettyPrec _ (Meta i)    = text $ "?" ++ show i   prettyPrec _ (Var n)     = pretty n --  prettyPrec _ (Con _ n)   = text n-  prettyPrec _ (Def id)    = pretty id+  prettyPrec _ (Def x)     = pretty x --  prettyPrec _ (Let n)     = text n   prettyPrec _ (Sing e t)  = angleBrackets $ pretty e <+> colon <+> pretty t-  prettyPrec k e@Succ{}    =+  prettyPrec _ e@Succ{}    =     case succView e of       (n, Zero) -> text $ show n-      (n, e)    -> text (replicate n '$') <> prettyPrec precAppR e+      (n, e')   -> text (replicate n '$') <> prettyPrec precAppR e' --  prettyPrec k (Succ e)    = text "$" <> prettyPrec precAppR e {-  prettyPrec k (Succ e)    = parensIf (precAppR <= k) $                               text "$" <+> prettyPrec precAppR e   -}   prettyPrec k (Max es)  = parensIf (precAppR <= k) $     List.foldl (\ d e -> d <+> prettyPrec precAppR e) (text "max") es   prettyPrec k (Plus (e:es))  = parensIf (1 < k) $-    List.foldl (\ d e -> d <+> text "+" <+> prettyPrec 1 e) (prettyPrec 1 e) es-  prettyPrec k (Proj Pre n)   = pretty n-  prettyPrec k (Proj Post n)  = text "." <> pretty n-  prettyPrec k (Record AnonRec []) = text "record" <+> braces empty-  prettyPrec k (Record AnonRec rs) = text "record" <+> prettyRecFields rs-  prettyPrec k (Record (NamedRec _ n _ dotted) []) = dotIf dotted $ pretty n-  prettyPrec k (Record (NamedRec _ n True dotted) rs) = dotIf dotted $ pretty n <+> prettyRecFields rs+    List.foldl (\ d e' -> d <+> text "+" <+> prettyPrec 1 e') (prettyPrec 1 e) es+  prettyPrec _ (Proj Pre n)   = pretty n+  prettyPrec _ (Proj Post n)  = text "." <> pretty n+  prettyPrec _ (Record AnonRec []) = text "record" <+> braces empty+  prettyPrec _ (Record AnonRec rs) = text "record" <+> prettyRecFields rs+  prettyPrec _ (Record (NamedRec _ n _ dotted) []) = dotIf dotted $ pretty n+  prettyPrec _ (Record (NamedRec _ n True dotted) rs) = dotIf dotted $ pretty n <+> prettyRecFields rs   prettyPrec k (Record (NamedRec _ n False dotted) rs) =    parensIf (not (null rs) && precAppR <= k) $ dotIf dotted $      pretty n <+> hsep (List.map (prettyPrec precAppR . snd) rs)-  prettyPrec k (Pair e1 e2) = parens $ pretty e1 <+> comma <+> pretty e2+  prettyPrec _ (Pair e1 e2) = parens $ pretty e1 <+> comma <+> pretty e2   prettyPrec k (App f e)  = parensIf (precAppR <= k) $     prettyPrec precAppL f <+> prettyPrec precAppR e --   prettyPrec k (App e [])  = prettyPrec k e@@ -1337,20 +1372,20 @@   prettyPrec k (Lam dec x e) = parensIf (0 < k) $     (if erased dec then brackets else id) (text "\\" <+> pretty x <+> text "->")       <+> pretty e-  prettyPrec k (LLet (TBind n (Domain mt ki dec)) tel e1 e2) | null tel = parensIf (0 < k) $+  prettyPrec k (LLet (TBind n (Domain mt _ki dec)) tel e1 e2) | null tel = parensIf (0 < k) $     (text "let" <+> ((if erased dec then lbrack else PP.empty) <>        pretty n <+> vcat [ maybe empty (\ t -> colon <+> pretty t) mt                            <> (if erased dec then rbrack else PP.empty)                        , equals <+> pretty e1 ]))     $$ (text "in" <+> pretty e2)-  prettyPrec k (LLet (TBind n (Domain mt ki dec)) tel e1 e2) = parensIf (0 < k) $+  prettyPrec k (LLet (TBind n (Domain mt _ki dec)) tel e1 e2) = parensIf (0 < k) $     (text "let" <+> ((if erased dec then brackets else id) $ pretty n)                 <+> pretty tel                 <+> vcat [ maybe empty (\ t -> colon <+> pretty t) mt                          , equals <+> pretty e1 ])     $$ (text "in" <+> pretty e2) {--  prettyPrec k (LLet (TBind n (Domain Nothing ki dec)) e1 e2) = parensIf (0 < k) $+  prettyPrec k (LLet (TBind n (Domain Nothing _ki dec)) e1 e2) = parensIf (0 < k) $     (text "let" <+> ((if erased dec then lbrack else PP.empty) <>        pretty n <+> vcat [ if erased dec then rbrack else PP.empty                          , equals <+> pretty e1 ]))@@ -1362,28 +1397,28 @@   prettyPrec k (Quant Pi (TBound beta) t2) = parensIf (precArrL <= k) $     (pretty beta <+> text "->" <+> pretty t2) -  prettyPrec k (Quant pisig (TBind x (Domain t1 ki dec)) t2) | null (suggestion x) = parensIf (precArrL <= k) $+  prettyPrec k (Quant pisig (TBind x (Domain t1 _ki dec)) t2) | null (suggestion x) = parensIf (precArrL <= k) $     ((if erased dec then ppol <> brackets (pretty t1)        else ppol <+> prettyPrec precArrL t1)       <+> pretty pisig <+> pretty t2)     where pol = polarity dec           ppol = if pol==defaultPol then PP.empty else text $ show pol -  prettyPrec k (Quant pisig (TBind x (Domain (Below ltle t1) ki dec)) t2) = parensIf (precArrL <= k) $+  prettyPrec k (Quant pisig (TBind x (Domain (Below ltle t1) _ki dec)) t2) = parensIf (precArrL <= k) $     ppol <>     ((if erased dec then brackets else parens) $       pretty x <+> pretty ltle <+> pretty t1) <+> pretty pisig <+> pretty t2     where pol = polarity dec           ppol = if pol==defaultPol then PP.empty else text $ show pol -  prettyPrec k (Quant pisig (TBind x (Domain t1 ki dec)) t2) = parensIf (precArrL <= k) $+  prettyPrec k (Quant pisig (TBind x (Domain t1 _ki dec)) t2) = parensIf (precArrL <= k) $     ppol <>     ((if erased dec then brackets else parens) $       pretty x <+> colon <+> pretty t1) <+> pretty pisig <+> pretty t2     where pol = polarity dec           ppol = if pol==defaultPol then PP.empty else text $ show pol -  prettyPrec k (Ann e) = pretty e+  prettyPrec _ (Ann e) = pretty e  class DotIf a where   dotIf :: a -> Doc -> Doc@@ -1396,17 +1431,17 @@   dotIf c = dotIf (isDotted c)  instance Pretty TBind where-  prettyPrec k (TMeasure mu) = pretty mu-  prettyPrec k (TBound beta) = pretty beta+  prettyPrec _ (TMeasure mu) = pretty mu+  prettyPrec _ (TBound beta) = pretty beta -  prettyPrec k (TBind x (Domain (Below ltle t1) ki dec)) =+  prettyPrec _ (TBind x (Domain (Below ltle t1) _ki dec)) =     ppol <>     ((if erased dec then brackets else parens) $       pretty x <+> pretty ltle <+> pretty t1)     where pol = polarity dec           ppol = if pol==defaultPol then PP.empty else text $ show pol -  prettyPrec k (TBind x (Domain t1 ki dec)) =+  prettyPrec _ (TBind x (Domain t1 _ki dec)) =     ppol <>     ((if erased dec then brackets else parens) $       pretty x <+> colon <+> pretty t1)@@ -1414,12 +1449,14 @@           ppol = if pol==defaultPol then PP.empty else text $ show pol  instance Pretty Telescope where-  prettyPrec k tel = sep $ map pretty $ telescope tel+  prettyPrec _ tel = sep $ map pretty $ telescope tel +prettyRecFields :: (Pretty a, Pretty b) => [(a,b)] -> Doc prettyRecFields rs =     let l:ls = List.map (\ (n, e) -> pretty n <+> equals <+> prettyPrec 0 e) rs     in  cat $ (lbrace <+> l) : List.map (semi <+>) ls ++ [empty <+> rbrace] +prettyCase :: Clause -> Doc prettyCase (Clause _ [p] Nothing)  = pretty p prettyCase (Clause _ [p] (Just e)) = pretty p <+> text "->" <+> pretty e @@ -1450,26 +1487,26 @@   instance Pretty (Sort Expr) where-  prettyPrec k (SortC c)  = text $ show c-  prettyPrec k (Set Zero) = text "Set" -- print as Set for backwards compat.+  prettyPrec _ (SortC c)  = text $ show c+  prettyPrec _ (Set Zero) = text "Set" -- print as Set for backwards compat.   prettyPrec k (Set e) =  parensIf (precAppR <= k) $     text "Set" <+> prettyPrec precAppR e   prettyPrec k (CoSet e) = parensIf (precAppR <= k) $     text "CoSet" <+> prettyPrec precAppR e  instance Pretty Pattern where-  prettyPrec k (VarP x)       = pretty x+  prettyPrec _ (VarP x)       = pretty x   prettyPrec k (ConP co c ps) = parensIf (not (null ps) && precAppR <= k) $     -- (if dottedPat co then text "." else empty) <>     dotIf (dottedPat co) $ pretty c <+> hsep (List.map (prettyPrec precAppR) ps)   prettyPrec k (SuccP p)      = text "$" <> prettyPrec k p   prettyPrec k (SizeP x y)    = parensIf (precAppR <= k) $ pretty y <+> text "<" <+> pretty x-  prettyPrec k (PairP p p')   = parens $ pretty p <> comma <+> pretty p'+  prettyPrec _ (PairP p p')   = parens $ pretty p <> comma <+> pretty p'   prettyPrec k (UnusableP p)  = prettyPrec k p-  prettyPrec k (ProjP x)      = text "." <> pretty x-  prettyPrec k (DotP p)       = text "." <> prettyPrec precAppR p-  prettyPrec k (AbsurdP)      = text "()"-  prettyPrec k (ErasedP p)    = brackets $ prettyPrec 0 p+  prettyPrec _ (ProjP x)      = text "." <> pretty x+  prettyPrec _ (DotP p)       = text "." <> prettyPrec precAppR p+  prettyPrec _ (AbsurdP)      = text "()"+  prettyPrec _ (ErasedP p)    = brackets $ prettyPrec 0 p   instance Show Expr where@@ -1479,8 +1516,11 @@ instance Show Pattern where   show = render . pretty +showCase :: Clause -> String showCase (Clause _ [p] Nothing) = render (prettyPrec precAppR p) showCase (Clause _ [p] (Just e)) = render (prettyPrec precAppR p) ++ " -> " ++ show e++showCases :: [Clause] -> String showCases = showList "; " showCase  @@ -1506,7 +1546,7 @@     SuccP p      -> SuccP $ patSubst phi p     SizeP e y    -> SizeP (parSubst phi' e) y     PairP p1 p2  -> PairP (patSubst phi p1) (patSubst phi p2)-    ProjP x      -> p+    ProjP _      -> p     DotP e       -> DotP $ parSubst phi' e     AbsurdP      -> p     ErasedP p    -> ErasedP $ patSubst phi p@@ -1545,7 +1585,7 @@ instance ParSubst a => ParSubst (Sort a) where   parSubst phi (CoSet e) = CoSet $ parSubst phi e   parSubst phi (Set e)   = Set   $ parSubst phi e-  parSubst phi s         = s+  parSubst _   s         = s  instance ParSubst Telescope where   parSubst phi = Telescope . parSubst phi . telescope@@ -1555,14 +1595,14 @@  -- TODO: Refactor! instance ParSubst Expr where-  parSubst phi (Sort s)              =  Sort $ parSubst phi s+  parSubst phi (Sort s)              = Sort $ parSubst phi s   parSubst phi (Succ e)              = Succ (parSubst phi e)-  parSubst phi e@Zero                = e-  parSubst phi e@Infty               = e-  parSubst phi e@Meta{}              = e-  parSubst phi e@Proj{}              = e+  parSubst _   e@Zero                = e+  parSubst _   e@Infty               = e+  parSubst _   e@Meta{}              = e+  parSubst _   e@Proj{}              = e   parSubst phi (Var x)               = phi x-  parSubst phi e@Def{}               = e+  parSubst _   e@Def{}               = e   parSubst phi (Case e mt cls)       = Case (parSubst phi e) (parSubst phi mt) (parSubst phi cls)   parSubst phi (LLet ta tel b c)     = LLet (parSubst phi ta) (parSubst phi tel) (parSubst phi b) (parSubst phi c)   parSubst phi (Pair f e)            = Pair (parSubst phi f) (parSubst phi e)@@ -1576,7 +1616,7 @@ --  parSubst phi (Quant pisig tel a b) = Quant pisig (parSubst phi tel) (parSubst phi a) (parSubst phi b)   parSubst phi (Sing a b)            = Sing (parSubst phi a) (parSubst phi b)   parSubst phi (Ann e)               = Ann $ parSubst phi e-  parSubst phi e                     = error $ "Abstract.parSubst phi (" ++ show e ++ ") undefined"+  parSubst _   e                     = error $ "Abstract.parSubst phi (" ++ show e ++ ") undefined"   {- NOT NEEDED   sgSubst :: Name -> Expr -> Expr -> Expr   sgSubst x t u = parSubst (\ y -> if x == y then t else Var y) u@@ -1614,7 +1654,7 @@ instance Substitute a => Substitute (Sort a) where   subst phi (CoSet e) = CoSet $ subst phi e   subst phi (Set e)   = Set   $ subst phi e-  subst phi s         = s+  subst _   s         = s  instance Substitute Telescope where   subst phi = Telescope . subst phi . telescope@@ -1625,12 +1665,12 @@ instance Substitute Expr where   subst phi (Sort s)              = Sort $ subst phi s   subst phi (Succ e)              = Succ (subst phi e)-  subst phi e@Zero                = e-  subst phi e@Infty               = e+  subst _   e@Zero                = e+  subst _   e@Infty               = e   subst phi e@(Meta i)            = Map.findWithDefault e i phi-  subst phi e@Var{}               = e-  subst phi e@Def{}               = e-  subst phi e@Proj{}              = e+  subst _   e@Var{}               = e+  subst _   e@Def{}               = e+  subst _   e@Proj{}              = e   subst phi (Case e mt cls)       = Case (subst phi e) (subst phi mt) (subst phi cls)   subst phi (LLet ta tel b c)     = LLet (subst phi ta) (subst phi tel) (subst phi b) (subst phi c)   subst phi (Pair f e)            = Pair (subst phi f) (subst phi e)@@ -1644,7 +1684,7 @@ --  subst phi (Quant pisig tel a b) = Quant pisig (subst phi tel) (subst phi a) (subst phi b)   subst phi (Sing a b)            = Sing (subst phi a) (subst phi b)   subst phi (Ann e)               = Ann $ subst phi e-  subst phi e                     = error $ "Abstract.subst phi (" ++ show e ++ ") undefined"+  subst _   e                     = error $ "Abstract.subst phi (" ++ show e ++ ") undefined"  -- Printing declarations --------------------------------------------- @@ -1660,6 +1700,7 @@ prettyFun :: Name -> [Clause] -> Doc prettyFun f cls = vlist $ List.map (prettyClause f) cls +prettyClause :: Pretty a => a -> Clause -> Doc prettyClause f (Clause _ ps Nothing) = pretty f <+> hsep (List.map (prettyPrec precAppR) ps) prettyClause f (Clause _ ps (Just e)) = pretty f   <+> hsep (List.map (prettyPrec precAppR) ps)@@ -1790,7 +1831,7 @@   injectiveVars (a, b, c) = mconcat [injectiveVars a, injectiveVars b, injectiveVars c]  instance InjectiveVars a => InjectiveVars (TBinding a) where-  injectiveVars (TBind x a)  = injectiveVars a+  injectiveVars (TBind _ a)  = injectiveVars a   injectiveVars (TMeasure m) = injectiveVars m   injectiveVars (TBound b)   = injectiveVars b @@ -1821,7 +1862,7 @@   where (tele, core) = typeToTele ty         fvs = freeVars core         ivs = injectiveVars core-        classifyField fvs (TBind name (Domain ty ki dec)) = FieldInfo+        classifyField fvs (TBind name (Domain ty _ki dec)) = FieldInfo           { fDec = dec           , fName  = name           , fType  = ty@@ -2109,7 +2150,7 @@ isSuccessor _        = False  shallowSuccP :: Pattern -> Bool-shallowSuccP p = case p of+shallowSuccP = \case      (SuccP p)   -> isVarP p      (ErasedP p) -> shallowSuccP p      (DotP e)    -> shallowSuccE e
src/Collection.hs view
@@ -1,9 +1,12 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances #-}  module Collection where -import Data.List as List-import Data.Monoid+import qualified Data.List as List+#if !MIN_VERSION_base(4,8,0)+import Data.Monoid (Monoid)+#endif  import Data.Set (Set) import qualified Data.Set as Set
src/Eval.hs view
@@ -10,15 +10,16 @@ import Prelude hiding (mapM, null, pi)  import Control.Applicative-import Control.Monad.Identity hiding (mapM)-import Control.Monad.State hiding (mapM)-import Control.Monad.Except hiding (mapM)-import Control.Monad.Reader hiding (mapM)+import Control.Monad          hiding (mapM)+import Control.Monad.State    (StateT, execStateT, get, gets, put)+import Control.Monad.Except   (runExcept, MonadError)+import Control.Monad.Reader   (asks, local)  import qualified Data.Array as Array import Data.Maybe -- fromMaybe import Data.Monoid hiding ((<>))-import Data.List as List hiding (null) -- find+import Data.List (find)+import qualified Data.List as List import Data.Map (Map) import qualified Data.Map as Map import Data.Foldable (foldMap)
src/Lexer.hs view
@@ -129,7 +129,7 @@ alexGetByte :: AlexInput -> Maybe (Byte,AlexInput) alexGetByte (p,c,(b:bs),s) = Just (b,(p,c,bs,s)) alexGetByte (p,c,[],[]) = Nothing-alexGetByte (p,_,[],(c:s))  = let p' = alexMove p c +alexGetByte (p,_,[],(c:s))  = let p' = alexMove p c                                   (b:bs) = utf8Encode c                               in p' `seq`  Just (b, (p', c, bs, s)) @@ -363,61 +363,61 @@ tok f p s = f p s  -alex_action_3 =  tok (\p s -> Sized p) -alex_action_4 =  tok (\p s -> Data p) -alex_action_5 =  tok (\p s -> CoData p) -alex_action_6 =  tok (\p s -> Record p) -alex_action_7 =  tok (\p s -> Fields p) -alex_action_8 =  tok (\p s -> Fun p) -alex_action_9 =  tok (\p s -> CoFun p) -alex_action_10 =  tok (\p s -> Pattern p) -alex_action_11 =  tok (\p s -> Case p) -alex_action_12 =  tok (\p s -> Def p) -alex_action_13 =  tok (\p s -> Let p) -alex_action_14 =  tok (\p s -> In p) +alex_action_3 =  tok (\p s -> Sized p)+alex_action_4 =  tok (\p s -> Data p)+alex_action_5 =  tok (\p s -> CoData p)+alex_action_6 =  tok (\p s -> Record p)+alex_action_7 =  tok (\p s -> Fields p)+alex_action_8 =  tok (\p s -> Fun p)+alex_action_9 =  tok (\p s -> CoFun p)+alex_action_10 =  tok (\p s -> Pattern p)+alex_action_11 =  tok (\p s -> Case p)+alex_action_12 =  tok (\p s -> Def p)+alex_action_13 =  tok (\p s -> Let p)+alex_action_14 =  tok (\p s -> In p) alex_action_15 =  tok (\p s -> Eval p) alex_action_16 =  tok (\p s -> Fail p) alex_action_17 =  tok (\p s -> Check p) alex_action_18 =  tok (\p s -> TrustMe p) alex_action_19 =  tok (\p s -> Impredicative p)-alex_action_20 =  tok (\p s -> Mutual p) -alex_action_21 =  tok (\p s -> Type p) -alex_action_22 =  tok (\p s -> Set p) -alex_action_23 =  tok (\p s -> CoSet p) -alex_action_24 =  tok (\p s -> LTri p) -alex_action_25 =  tok (\p s -> RTri p) -alex_action_26 =  tok (\p s -> Size p) -alex_action_27 =  tok (\p s -> Infty p) -alex_action_28 =  tok (\p s -> Succ p) -alex_action_29 =  tok (\p s -> Max p) -alex_action_30 =  tok (\p s -> BrOpen p) -alex_action_31 =  tok (\p s -> BrClose p) -alex_action_32 =  tok (\p s -> BracketOpen p) -alex_action_33 =  tok (\p s -> BracketClose p) -alex_action_34 =  tok (\p s -> PrOpen p) -alex_action_35 =  tok (\p s -> PrClose p) -alex_action_36 =  tok (\p s -> Bar p) -alex_action_37 =  tok (\p s -> Sem p) -alex_action_38 =  tok (\p s -> Col p) -alex_action_39 =  tok (\p s -> Comma p) -alex_action_40 =  tok (\p s -> Dot p) -alex_action_41 =  tok (\p s -> PlusPlus p) -alex_action_42 =  tok (\p s -> Plus p) -alex_action_43 =  tok (\p s -> Minus p) -alex_action_44 =  tok (\p s -> Slash p) -alex_action_45 =  tok (\p s -> Times p) -alex_action_46 =  tok (\p s -> Hat p) -alex_action_47 =  tok (\p s -> Amp p) -alex_action_48 =  tok (\p s -> Arrow p)  -alex_action_49 =  tok (\p s -> Leq p)  -alex_action_50 =  tok (\p s -> Eq p) -alex_action_51 =  tok (\p s -> Lam p) -alex_action_52 =  tok (\p s -> Underscore p) -alex_action_53 =  tok (\p s -> AngleOpen p) -alex_action_54 =  tok (\p s -> AngleClose p) -alex_action_55 =  tok (\p s -> (Number s p )) -alex_action_56 =  tok (\p s -> (Id s p )) -alex_action_57 =  tok (\p s -> (qualId s p)) +alex_action_20 =  tok (\p s -> Mutual p)+alex_action_21 =  tok (\p s -> Type p)+alex_action_22 =  tok (\p s -> Set p)+alex_action_23 =  tok (\p s -> CoSet p)+alex_action_24 =  tok (\p s -> LTri p)+alex_action_25 =  tok (\p s -> RTri p)+alex_action_26 =  tok (\p s -> Size p)+alex_action_27 =  tok (\p s -> Infty p)+alex_action_28 =  tok (\p s -> Succ p)+alex_action_29 =  tok (\p s -> Max p)+alex_action_30 =  tok (\p s -> BrOpen p)+alex_action_31 =  tok (\p s -> BrClose p)+alex_action_32 =  tok (\p s -> BracketOpen p)+alex_action_33 =  tok (\p s -> BracketClose p)+alex_action_34 =  tok (\p s -> PrOpen p)+alex_action_35 =  tok (\p s -> PrClose p)+alex_action_36 =  tok (\p s -> Bar p)+alex_action_37 =  tok (\p s -> Sem p)+alex_action_38 =  tok (\p s -> Col p)+alex_action_39 =  tok (\p s -> Comma p)+alex_action_40 =  tok (\p s -> Dot p)+alex_action_41 =  tok (\p s -> PlusPlus p)+alex_action_42 =  tok (\p s -> Plus p)+alex_action_43 =  tok (\p s -> Minus p)+alex_action_44 =  tok (\p s -> Slash p)+alex_action_45 =  tok (\p s -> Times p)+alex_action_46 =  tok (\p s -> Hat p)+alex_action_47 =  tok (\p s -> Amp p)+alex_action_48 =  tok (\p s -> Arrow p)+alex_action_49 =  tok (\p s -> Leq p)+alex_action_50 =  tok (\p s -> Eq p)+alex_action_51 =  tok (\p s -> Lam p)+alex_action_52 =  tok (\p s -> Underscore p)+alex_action_53 =  tok (\p s -> AngleOpen p)+alex_action_54 =  tok (\p s -> AngleClose p)+alex_action_55 =  tok (\p s -> (Number s p ))+alex_action_56 =  tok (\p s -> (Id s p ))+alex_action_57 =  tok (\p s -> (qualId s p)) {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "<built-in>" #-}@@ -518,7 +518,7 @@   = case alex_scan_tkn user input (0) input sc AlexNone of         (AlexNone, input') ->                 case alexGetByte input of-                        Nothing -> +                        Nothing ->   @@ -547,13 +547,13 @@  alex_scan_tkn user orig_input len input s last_acc =   input `seq` -- strict in the input-  let +  let         new_acc = (check_accs (alex_accept `quickIndex` (s)))   in   new_acc `seq`   case alexGetByte input of      Nothing -> (new_acc, input)-     Just (c, new_input) -> +     Just (c, new_input) ->   @@ -562,7 +562,7 @@                 base   = alexIndexInt32OffAddr alex_base s                 offset = (base + ord_c)                 check  = alexIndexInt16OffAddr alex_check offset-                +                 new_s = if (offset >= (0)) && (check == ord_c)                           then alexIndexInt16OffAddr alex_table offset                           else alexIndexInt16OffAddr alex_deflt s@@ -618,16 +618,16 @@ alexAndPred p1 p2 user in1 len in2   = p1 user in1 len in2 && p2 user in1 len in2 ---alexPrevCharIsPred :: Char -> AlexAccPred _ +--alexPrevCharIsPred :: Char -> AlexAccPred _ alexPrevCharIs c _ input _ _ = c == alexInputPrevChar input  alexPrevCharMatches f _ input _ _ = f (alexInputPrevChar input) ---alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _ +--alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _ alexPrevCharIsOneOf arr _ input _ _ = arr ! alexInputPrevChar input  --alexRightContext :: Int -> AlexAccPred _-alexRightContext (sc) user _ _ input = +alexRightContext (sc) user _ _ input =      case alex_scan_tkn user input (0) input sc AlexNone of           (AlexNone, _) -> False           _ -> True
src/Lexer.x view
@@ -1,6 +1,9 @@  { +{-# OPTIONS_GHC -fno-warn-incomplete-uni-patterns #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}+ module Lexer where  }
+ src/Makefile view
@@ -0,0 +1,111 @@+# Makefile for miniagda++files=Abstract Collection Concrete Eval Extract HsSyntax Lexer Main Parser Polarity PrettyTCM ScopeChecker Semiring SparseMatrix TCM Termination ToHaskell Tokens TraceError TreeShapedOrder TypeChecker Util Value Warshall+hsfiles=$(foreach file,$(files),$(file).hs)+ghcflags=-ignore-package monads-fd -rtsopts+# -fglasgow-exts+optflags=+# -O  #slow compilation, not much speedup+profflags=-prof -auto-all+distfiles=*.hs *.hs-boot Lexer.x Parser.y Makefile+distdirs=../test/succeed ../test/fail ../examples++cabalp=cabal install -p --enable-executable-profiling++.PHONY : test succeed fail examples lib current default all clean veryclean++default : Main test+all : Main test examples lib++prof-current : miniagda-prof+	miniagda-prof ../examples/FiCS12/fics12-06.ma +RTS -prof -s+#	miniagda-prof ../test/succeed/Zero.ma +RTS -prof -s+#	miniagda-prof privateExamples/NisseContNorm/negative-2010-11-23.ma +RTS -prof+current : Main+#	Main ../test/fail/BoundedFake.ma+	Main ../examples/Existential/StreamProcCase.ma+#	Main ../test/features/Existential/list.ma+#	Main ../test/features/Existential/nat.ma+#	Main ../examples/RBTree/RBTreeConor.ma+#	Main ../test/fail/InvalidField.ma+#	Main ../test/succeed/BuiltinSigma.ma+#	Main ../test/features/records.ma+#	Main ../test/succeed/MeasuredHerSubst2.ma+#	Main ../examples/Coinductive/SubjectReductionProblem.ma+#	Main ../examples/Sized/Maximum.ma+#	Main ../examples/Irrelevance/Vector.ma+#	Main ../examples/JeffTerellCoqClub20100120.ma+#	Main ../examples/HugoCantor/tryLoopInjData.ma+#	Main ../examples/HugoCantor/InjDataLoop.ma+#	Main ../test/features/countConstructors.ma+#	Main ../examples/HugoCantor/injectiveData.ma+#	Main ../examples/BoveCapretta/Eval.ma # vec.ma # ../examples/List.ma+#	Main ../test/fail/OverlappingPatternIndFam.ma # vec.ma # ../examples/List.ma++# ship : ../dist/miniagda-2009-07-03.tgz # 06-27.tgz+#+# ../dist/%.tgz : $(distfiles)+# 	tar czf $@ $^ $(distdirs)+#++miniagda-prof : Main.hs $(hsfiles)+	ghc $(ghcflags) $(profflags) $< --make -o $@++Main : Main.hs $(hsfiles)+	ghc $(ghcflags) $(optflags) $< --make -o $@++install-prof-libs :+	$(cabalp) transformers+	$(cabalp) mtl+	$(cabalp) syb+	$(cabalp) parsec+	$(cabalp) preprocessor-tools+	$(cabalp) cpphs+	$(cabalp) haskell-src-exts+	$(cabalp) IfElse+	$(cabalp) utility-ht++SCT : SCT.hs Lexer.hs SCTParser.hs SCTSyntax.hs+	ghc $(ghcflags) $< --make -o $@++Lexer.hs : Lexer.x+	alex $<++%arser.hs : %arser.y Lexer.hs+	happy --info=$<-grm.txt $<++test : Main succeed fail++succeed :+	@echo "======================================================================"+	@echo "===================== Suite of successfull tests ====================="+	@echo "======================================================================"+	make -C ../test/succeed++fail :+	@echo "======================================================================"+	@echo "======================= Suite of failing tests ======================="+	@echo "======================================================================"+	make -C ../test/fail++examples : Main+	@echo "======================================================================"+	@echo "========================== Suite of examples ========================="+	@echo "======================================================================"+	make -C ../examples++lib : Main+	@echo "======================================================================"+	@echo "=============================== Library =============================="+	@echo "======================================================================"+	make -C ../lib+++clean :+	-rm *.o *.hi Main miniagda-prof+# 	make -C ../test/fail clean++veryclean : clean+	make -C ../test/fail clean++# EOF
src/Parser.hs view
@@ -10,6829 +10,6832 @@ import qualified Abstract as A import qualified Polarity as A import Concrete (Name,patApp)-import Control.Applicative(Applicative(..))-import Control.Monad (ap)---- parser produced by Happy Version 1.19.5--data HappyAbsSyn -	= HappyTerminal (T.Token)-	| HappyErrorToken Int-	| HappyAbsSyn4 ([C.Declaration])-	| HappyAbsSyn6 (C.Declaration)-	| HappyAbsSyn12 ((C.Name, C.Telescope, C.Type, [C.Constructor], [C.Name]))-	| HappyAbsSyn13 ((C.Name, C.Telescope, C.Type, C.Constructor, [C.Name]))-	| HappyAbsSyn18 (C.LetDef)-	| HappyAbsSyn19 (Bool)-	| HappyAbsSyn20 (Maybe C.Type)-	| HappyAbsSyn22 ([Name])-	| HappyAbsSyn23 (Name)-	| HappyAbsSyn26 (Pol)-	| HappyAbsSyn27 (A.Measure C.Expr)-	| HappyAbsSyn28 ([C.Expr])-	| HappyAbsSyn29 (A.Bound C.Expr)-	| HappyAbsSyn31 (C.Telescope)-	| HappyAbsSyn32 (C.TBind)-	| HappyAbsSyn35 (C.LBind)-	| HappyAbsSyn36 ((Dec, C.Name))-	| HappyAbsSyn40 (C.Expr)-	| HappyAbsSyn48 (C.QName)-	| HappyAbsSyn49 ([([Name],C.Expr)])-	| HappyAbsSyn50 (([Name],C.Expr))-	| HappyAbsSyn51 (C.TypeSig)-	| HappyAbsSyn52 (C.Constructor)-	| HappyAbsSyn53 ([C.Constructor ])-	| HappyAbsSyn54 ([C.Clause])-	| HappyAbsSyn55 (C.Clause)-	| HappyAbsSyn56 ([C.Pattern])-	| HappyAbsSyn58 (C.Pattern)-	| HappyAbsSyn64 ([C.Clause ])--{- to allow type-synonyms as our monads (likely- - with explicitly-specified bind and return)- - in Haskell98, it seems that with- - /type M a = .../, then /(HappyReduction M)/- - is not allowed.  But Happy is a- - code-generator that can just substitute it.-type HappyReduction m = -	   Int -	-> (T.Token)-	-> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> m HappyAbsSyn)-	-> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> m HappyAbsSyn)] -	-> HappyStk HappyAbsSyn -	-> [(T.Token)] -> m HappyAbsSyn--}--action_0,- action_1,- action_2,- action_3,- action_4,- action_5,- action_6,- action_7,- action_8,- action_9,- action_10,- action_11,- action_12,- action_13,- action_14,- action_15,- action_16,- action_17,- action_18,- action_19,- action_20,- action_21,- action_22,- action_23,- action_24,- action_25,- action_26,- action_27,- action_28,- action_29,- action_30,- action_31,- action_32,- action_33,- action_34,- action_35,- action_36,- action_37,- action_38,- action_39,- action_40,- action_41,- action_42,- action_43,- action_44,- action_45,- action_46,- action_47,- action_48,- action_49,- action_50,- action_51,- action_52,- action_53,- action_54,- action_55,- action_56,- action_57,- action_58,- action_59,- action_60,- action_61,- action_62,- action_63,- action_64,- action_65,- action_66,- action_67,- action_68,- action_69,- action_70,- action_71,- action_72,- action_73,- action_74,- action_75,- action_76,- action_77,- action_78,- action_79,- action_80,- action_81,- action_82,- action_83,- action_84,- action_85,- action_86,- action_87,- action_88,- action_89,- action_90,- action_91,- action_92,- action_93,- action_94,- action_95,- action_96,- action_97,- action_98,- action_99,- action_100,- action_101,- action_102,- action_103,- action_104,- action_105,- action_106,- action_107,- action_108,- action_109,- action_110,- action_111,- action_112,- action_113,- action_114,- action_115,- action_116,- action_117,- action_118,- action_119,- action_120,- action_121,- action_122,- action_123,- action_124,- action_125,- action_126,- action_127,- action_128,- action_129,- action_130,- action_131,- action_132,- action_133,- action_134,- action_135,- action_136,- action_137,- action_138,- action_139,- action_140,- action_141,- action_142,- action_143,- action_144,- action_145,- action_146,- action_147,- action_148,- action_149,- action_150,- action_151,- action_152,- action_153,- action_154,- action_155,- action_156,- action_157,- action_158,- action_159,- action_160,- action_161,- action_162,- action_163,- action_164,- action_165,- action_166,- action_167,- action_168,- action_169,- action_170,- action_171,- action_172,- action_173,- action_174,- action_175,- action_176,- action_177,- action_178,- action_179,- action_180,- action_181,- action_182,- action_183,- action_184,- action_185,- action_186,- action_187,- action_188,- action_189,- action_190,- action_191,- action_192,- action_193,- action_194,- action_195,- action_196,- action_197,- action_198,- action_199,- action_200,- action_201,- action_202,- action_203,- action_204,- action_205,- action_206,- action_207,- action_208,- action_209,- action_210,- action_211,- action_212,- action_213,- action_214,- action_215,- action_216,- action_217,- action_218,- action_219,- action_220,- action_221,- action_222,- action_223,- action_224,- action_225,- action_226,- action_227,- action_228,- action_229,- action_230,- action_231,- action_232,- action_233,- action_234,- action_235,- action_236,- action_237,- action_238,- action_239,- action_240,- action_241,- action_242,- action_243,- action_244,- action_245,- action_246,- action_247,- action_248,- action_249,- action_250,- action_251,- action_252,- action_253,- action_254,- action_255,- action_256,- action_257,- action_258,- action_259,- action_260,- action_261,- action_262,- action_263,- action_264,- action_265,- action_266,- action_267,- action_268,- action_269,- action_270,- action_271,- action_272,- action_273,- action_274,- action_275,- action_276,- action_277,- action_278,- action_279,- action_280,- action_281,- action_282,- action_283,- action_284,- action_285,- action_286,- action_287,- action_288,- action_289,- action_290,- action_291,- action_292,- action_293,- action_294,- action_295,- action_296,- action_297,- action_298,- action_299,- action_300,- action_301,- action_302,- action_303,- action_304,- action_305,- action_306,- action_307,- action_308,- action_309,- action_310,- action_311,- action_312,- action_313,- action_314,- action_315,- action_316,- action_317,- action_318,- action_319,- action_320,- action_321,- action_322,- action_323,- action_324,- action_325,- action_326,- action_327,- action_328,- action_329,- action_330,- action_331,- action_332,- action_333,- action_334,- action_335,- action_336,- action_337,- action_338,- action_339,- action_340,- action_341,- action_342,- action_343,- action_344,- action_345,- action_346,- action_347,- action_348,- action_349,- action_350,- action_351,- action_352,- action_353,- action_354,- action_355,- action_356,- action_357,- action_358,- action_359,- action_360,- action_361,- action_362,- action_363,- action_364,- action_365,- action_366,- action_367,- action_368,- action_369,- action_370,- action_371,- action_372,- action_373,- action_374,- action_375,- action_376,- action_377,- action_378,- action_379,- action_380,- action_381,- action_382,- action_383,- action_384,- action_385,- action_386,- action_387,- action_388,- action_389,- action_390,- action_391,- action_392,- action_393,- action_394,- action_395,- action_396,- action_397 :: () => Int -> ({-HappyReduction (HappyIdentity) = -}-	   Int -	-> (T.Token)-	-> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)-	-> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)] -	-> HappyStk HappyAbsSyn -	-> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)--happyReduce_1,- happyReduce_2,- happyReduce_3,- happyReduce_4,- happyReduce_5,- happyReduce_6,- happyReduce_7,- happyReduce_8,- happyReduce_9,- happyReduce_10,- happyReduce_11,- happyReduce_12,- happyReduce_13,- happyReduce_14,- happyReduce_15,- happyReduce_16,- happyReduce_17,- happyReduce_18,- happyReduce_19,- happyReduce_20,- happyReduce_21,- happyReduce_22,- happyReduce_23,- happyReduce_24,- happyReduce_25,- happyReduce_26,- happyReduce_27,- happyReduce_28,- happyReduce_29,- happyReduce_30,- happyReduce_31,- happyReduce_32,- happyReduce_33,- happyReduce_34,- happyReduce_35,- happyReduce_36,- happyReduce_37,- happyReduce_38,- happyReduce_39,- happyReduce_40,- happyReduce_41,- happyReduce_42,- happyReduce_43,- happyReduce_44,- happyReduce_45,- happyReduce_46,- happyReduce_47,- happyReduce_48,- happyReduce_49,- happyReduce_50,- happyReduce_51,- happyReduce_52,- happyReduce_53,- happyReduce_54,- happyReduce_55,- happyReduce_56,- happyReduce_57,- happyReduce_58,- happyReduce_59,- happyReduce_60,- happyReduce_61,- happyReduce_62,- happyReduce_63,- happyReduce_64,- happyReduce_65,- happyReduce_66,- happyReduce_67,- happyReduce_68,- happyReduce_69,- happyReduce_70,- happyReduce_71,- happyReduce_72,- happyReduce_73,- happyReduce_74,- happyReduce_75,- happyReduce_76,- happyReduce_77,- happyReduce_78,- happyReduce_79,- happyReduce_80,- happyReduce_81,- happyReduce_82,- happyReduce_83,- happyReduce_84,- happyReduce_85,- happyReduce_86,- happyReduce_87,- happyReduce_88,- happyReduce_89,- happyReduce_90,- happyReduce_91,- happyReduce_92,- happyReduce_93,- happyReduce_94,- happyReduce_95,- happyReduce_96,- happyReduce_97,- happyReduce_98,- happyReduce_99,- happyReduce_100,- happyReduce_101,- happyReduce_102,- happyReduce_103,- happyReduce_104,- happyReduce_105,- happyReduce_106,- happyReduce_107,- happyReduce_108,- happyReduce_109,- happyReduce_110,- happyReduce_111,- happyReduce_112,- happyReduce_113,- happyReduce_114,- happyReduce_115,- happyReduce_116,- happyReduce_117,- happyReduce_118,- happyReduce_119,- happyReduce_120,- happyReduce_121,- happyReduce_122,- happyReduce_123,- happyReduce_124,- happyReduce_125,- happyReduce_126,- happyReduce_127,- happyReduce_128,- happyReduce_129,- happyReduce_130,- happyReduce_131,- happyReduce_132,- happyReduce_133,- happyReduce_134,- happyReduce_135,- happyReduce_136,- happyReduce_137,- happyReduce_138,- happyReduce_139,- happyReduce_140,- happyReduce_141,- happyReduce_142,- happyReduce_143,- happyReduce_144,- happyReduce_145,- happyReduce_146,- happyReduce_147,- happyReduce_148,- happyReduce_149,- happyReduce_150,- happyReduce_151,- happyReduce_152,- happyReduce_153,- happyReduce_154,- happyReduce_155,- happyReduce_156,- happyReduce_157,- happyReduce_158,- happyReduce_159,- happyReduce_160,- happyReduce_161,- happyReduce_162,- happyReduce_163,- happyReduce_164,- happyReduce_165,- happyReduce_166,- happyReduce_167,- happyReduce_168,- happyReduce_169,- happyReduce_170,- happyReduce_171,- happyReduce_172,- happyReduce_173,- happyReduce_174,- happyReduce_175,- happyReduce_176,- happyReduce_177,- happyReduce_178,- happyReduce_179,- happyReduce_180,- happyReduce_181,- happyReduce_182,- happyReduce_183,- happyReduce_184,- happyReduce_185,- happyReduce_186,- happyReduce_187,- happyReduce_188 :: () => ({-HappyReduction (HappyIdentity) = -}-	   Int -	-> (T.Token)-	-> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)-	-> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)] -	-> HappyStk HappyAbsSyn -	-> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)--action_0 (4) = happyGoto action_3-action_0 (5) = happyGoto action_2-action_0 _ = happyReduce_2--action_1 (5) = happyGoto action_2-action_1 _ = happyFail--action_2 (70) = happyShift action_16-action_2 (71) = happyShift action_17-action_2 (72) = happyShift action_18-action_2 (73) = happyShift action_19-action_2 (75) = happyShift action_20-action_2 (76) = happyShift action_21-action_2 (77) = happyShift action_22-action_2 (78) = happyShift action_23-action_2 (83) = happyShift action_24-action_2 (84) = happyShift action_25-action_2 (85) = happyShift action_26-action_2 (86) = happyShift action_27-action_2 (87) = happyShift action_28-action_2 (122) = happyReduce_1-action_2 (6) = happyGoto action_4-action_2 (7) = happyGoto action_5-action_2 (8) = happyGoto action_6-action_2 (9) = happyGoto action_7-action_2 (10) = happyGoto action_8-action_2 (11) = happyGoto action_9-action_2 (14) = happyGoto action_10-action_2 (15) = happyGoto action_11-action_2 (16) = happyGoto action_12-action_2 (17) = happyGoto action_13-action_2 (19) = happyGoto action_14-action_2 (21) = happyGoto action_15-action_2 _ = happyReduce_36--action_3 (122) = happyAccept-action_3 _ = happyFail--action_4 _ = happyReduce_3--action_5 _ = happyReduce_4--action_6 _ = happyReduce_6--action_7 _ = happyReduce_5--action_8 _ = happyReduce_7--action_9 _ = happyReduce_8--action_10 _ = happyReduce_9--action_11 _ = happyReduce_10--action_12 _ = happyReduce_11--action_13 _ = happyReduce_12--action_14 (81) = happyShift action_51-action_14 _ = happyFail--action_15 _ = happyReduce_13--action_16 (67) = happyShift action_39-action_16 (12) = happyGoto action_50-action_16 (23) = happyGoto action_49-action_16 _ = happyFail--action_17 (67) = happyShift action_39-action_17 (12) = happyGoto action_48-action_17 (23) = happyGoto action_49-action_17 _ = happyFail--action_18 (67) = happyShift action_39-action_18 (13) = happyGoto action_46-action_18 (23) = happyGoto action_47-action_18 _ = happyFail--action_19 (70) = happyShift action_44-action_19 (71) = happyShift action_45-action_19 _ = happyFail--action_20 (99) = happyShift action_43-action_20 _ = happyFail--action_21 (67) = happyShift action_39-action_21 (23) = happyGoto action_40-action_21 (51) = happyGoto action_42-action_21 _ = happyFail--action_22 (67) = happyShift action_39-action_22 (23) = happyGoto action_40-action_22 (51) = happyGoto action_41-action_22 _ = happyFail--action_23 (67) = happyShift action_39-action_23 (23) = happyGoto action_37-action_23 (24) = happyGoto action_38-action_23 _ = happyFail--action_24 _ = happyReduce_37--action_25 (70) = happyShift action_16-action_25 (71) = happyShift action_17-action_25 (72) = happyShift action_18-action_25 (73) = happyShift action_19-action_25 (75) = happyShift action_20-action_25 (76) = happyShift action_21-action_25 (77) = happyShift action_22-action_25 (78) = happyShift action_23-action_25 (83) = happyShift action_24-action_25 (84) = happyShift action_25-action_25 (85) = happyShift action_26-action_25 (86) = happyShift action_27-action_25 (87) = happyShift action_28-action_25 (99) = happyShift action_36-action_25 (6) = happyGoto action_35-action_25 (7) = happyGoto action_5-action_25 (8) = happyGoto action_6-action_25 (9) = happyGoto action_7-action_25 (10) = happyGoto action_8-action_25 (11) = happyGoto action_9-action_25 (14) = happyGoto action_10-action_25 (15) = happyGoto action_11-action_25 (16) = happyGoto action_12-action_25 (17) = happyGoto action_13-action_25 (19) = happyGoto action_14-action_25 (21) = happyGoto action_15-action_25 _ = happyReduce_36--action_26 (70) = happyShift action_16-action_26 (71) = happyShift action_17-action_26 (72) = happyShift action_18-action_26 (73) = happyShift action_19-action_26 (75) = happyShift action_20-action_26 (76) = happyShift action_21-action_26 (77) = happyShift action_22-action_26 (78) = happyShift action_23-action_26 (83) = happyShift action_24-action_26 (84) = happyShift action_25-action_26 (85) = happyShift action_26-action_26 (86) = happyShift action_27-action_26 (87) = happyShift action_28-action_26 (99) = happyShift action_34-action_26 (6) = happyGoto action_33-action_26 (7) = happyGoto action_5-action_26 (8) = happyGoto action_6-action_26 (9) = happyGoto action_7-action_26 (10) = happyGoto action_8-action_26 (11) = happyGoto action_9-action_26 (14) = happyGoto action_10-action_26 (15) = happyGoto action_11-action_26 (16) = happyGoto action_12-action_26 (17) = happyGoto action_13-action_26 (19) = happyGoto action_14-action_26 (21) = happyGoto action_15-action_26 _ = happyReduce_36--action_27 (70) = happyShift action_16-action_27 (71) = happyShift action_17-action_27 (72) = happyShift action_18-action_27 (73) = happyShift action_19-action_27 (75) = happyShift action_20-action_27 (76) = happyShift action_21-action_27 (77) = happyShift action_22-action_27 (78) = happyShift action_23-action_27 (83) = happyShift action_24-action_27 (84) = happyShift action_25-action_27 (85) = happyShift action_26-action_27 (86) = happyShift action_27-action_27 (87) = happyShift action_28-action_27 (99) = happyShift action_32-action_27 (6) = happyGoto action_31-action_27 (7) = happyGoto action_5-action_27 (8) = happyGoto action_6-action_27 (9) = happyGoto action_7-action_27 (10) = happyGoto action_8-action_27 (11) = happyGoto action_9-action_27 (14) = happyGoto action_10-action_27 (15) = happyGoto action_11-action_27 (16) = happyGoto action_12-action_27 (17) = happyGoto action_13-action_27 (19) = happyGoto action_14-action_27 (21) = happyGoto action_15-action_27 _ = happyReduce_36--action_28 (70) = happyShift action_16-action_28 (71) = happyShift action_17-action_28 (72) = happyShift action_18-action_28 (73) = happyShift action_19-action_28 (75) = happyShift action_20-action_28 (76) = happyShift action_21-action_28 (77) = happyShift action_22-action_28 (78) = happyShift action_23-action_28 (83) = happyShift action_24-action_28 (84) = happyShift action_25-action_28 (85) = happyShift action_26-action_28 (86) = happyShift action_27-action_28 (87) = happyShift action_28-action_28 (99) = happyShift action_30-action_28 (6) = happyGoto action_29-action_28 (7) = happyGoto action_5-action_28 (8) = happyGoto action_6-action_28 (9) = happyGoto action_7-action_28 (10) = happyGoto action_8-action_28 (11) = happyGoto action_9-action_28 (14) = happyGoto action_10-action_28 (15) = happyGoto action_11-action_28 (16) = happyGoto action_12-action_28 (17) = happyGoto action_13-action_28 (19) = happyGoto action_14-action_28 (21) = happyGoto action_15-action_28 _ = happyReduce_36--action_29 _ = happyReduce_14--action_30 (5) = happyGoto action_80-action_30 _ = happyReduce_2--action_31 _ = happyReduce_20--action_32 (5) = happyGoto action_79-action_32 _ = happyReduce_2--action_33 _ = happyReduce_18--action_34 (5) = happyGoto action_78-action_34 _ = happyReduce_2--action_35 _ = happyReduce_16--action_36 (5) = happyGoto action_77-action_36 _ = happyReduce_2--action_37 (67) = happyShift action_39-action_37 (23) = happyGoto action_37-action_37 (24) = happyGoto action_76-action_37 _ = happyReduce_44--action_38 (112) = happyShift action_75-action_38 _ = happyFail--action_39 _ = happyReduce_43--action_40 (108) = happyShift action_74-action_40 _ = happyFail--action_41 (99) = happyShift action_73-action_41 _ = happyFail--action_42 (99) = happyShift action_72-action_42 _ = happyFail--action_43 (5) = happyGoto action_71-action_43 _ = happyReduce_2--action_44 (67) = happyShift action_39-action_44 (12) = happyGoto action_70-action_44 (23) = happyGoto action_49-action_44 _ = happyFail--action_45 (67) = happyShift action_39-action_45 (12) = happyGoto action_69-action_45 (23) = happyGoto action_49-action_45 _ = happyFail--action_46 _ = happyReduce_26--action_47 (101) = happyShift action_66-action_47 (103) = happyShift action_67-action_47 (109) = happyShift action_57-action_47 (113) = happyShift action_58-action_47 (114) = happyShift action_59-action_47 (115) = happyShift action_60-action_47 (117) = happyShift action_61-action_47 (118) = happyShift action_62-action_47 (26) = happyGoto action_63-action_47 (65) = happyGoto action_64-action_47 (66) = happyGoto action_68-action_47 _ = happyReduce_187--action_48 _ = happyReduce_24--action_49 (101) = happyShift action_66-action_49 (103) = happyShift action_67-action_49 (109) = happyShift action_57-action_49 (113) = happyShift action_58-action_49 (114) = happyShift action_59-action_49 (115) = happyShift action_60-action_49 (117) = happyShift action_61-action_49 (118) = happyShift action_62-action_49 (26) = happyGoto action_63-action_49 (65) = happyGoto action_64-action_49 (66) = happyGoto action_65-action_49 _ = happyReduce_187--action_50 _ = happyReduce_22--action_51 (67) = happyShift action_39-action_51 (101) = happyShift action_56-action_51 (109) = happyShift action_57-action_51 (113) = happyShift action_58-action_51 (114) = happyShift action_59-action_51 (115) = happyShift action_60-action_51 (117) = happyShift action_61-action_51 (118) = happyShift action_62-action_51 (18) = happyGoto action_52-action_51 (23) = happyGoto action_53-action_51 (26) = happyGoto action_54-action_51 (36) = happyGoto action_55-action_51 _ = happyFail--action_52 _ = happyReduce_34--action_53 _ = happyReduce_81--action_54 (67) = happyShift action_39-action_54 (23) = happyGoto action_153-action_54 _ = happyFail--action_55 (99) = happyShift action_125-action_55 (101) = happyShift action_151-action_55 (103) = happyShift action_152-action_55 (105) = happyShift action_128-action_55 (109) = happyShift action_57-action_55 (113) = happyShift action_58-action_55 (114) = happyShift action_59-action_55 (115) = happyShift action_60-action_55 (117) = happyShift action_61-action_55 (118) = happyShift action_62-action_55 (26) = happyGoto action_147-action_55 (27) = happyGoto action_148-action_55 (31) = happyGoto action_149-action_55 (32) = happyGoto action_150-action_55 (33) = happyGoto action_110-action_55 (34) = happyGoto action_111-action_55 _ = happyReduce_60--action_56 (67) = happyShift action_39-action_56 (23) = happyGoto action_146-action_56 _ = happyFail--action_57 _ = happyReduce_51--action_58 _ = happyReduce_48--action_59 _ = happyReduce_49--action_60 _ = happyReduce_50--action_61 _ = happyReduce_53--action_62 _ = happyReduce_52--action_63 (103) = happyShift action_145-action_63 _ = happyFail--action_64 (101) = happyShift action_66-action_64 (103) = happyShift action_67-action_64 (109) = happyShift action_57-action_64 (113) = happyShift action_58-action_64 (114) = happyShift action_59-action_64 (115) = happyShift action_60-action_64 (117) = happyShift action_61-action_64 (118) = happyShift action_62-action_64 (26) = happyGoto action_63-action_64 (65) = happyGoto action_64-action_64 (66) = happyGoto action_144-action_64 _ = happyReduce_187--action_65 (99) = happyShift action_142-action_65 (108) = happyShift action_143-action_65 _ = happyFail--action_66 (67) = happyShift action_39-action_66 (23) = happyGoto action_138-action_66 (25) = happyGoto action_141-action_66 _ = happyFail--action_67 (67) = happyShift action_39-action_67 (114) = happyShift action_140-action_67 (23) = happyGoto action_138-action_67 (25) = happyGoto action_139-action_67 _ = happyFail--action_68 (99) = happyShift action_136-action_68 (108) = happyShift action_137-action_68 _ = happyFail--action_69 _ = happyReduce_25--action_70 _ = happyReduce_23--action_71 (70) = happyShift action_16-action_71 (71) = happyShift action_17-action_71 (72) = happyShift action_18-action_71 (73) = happyShift action_19-action_71 (75) = happyShift action_20-action_71 (76) = happyShift action_21-action_71 (77) = happyShift action_22-action_71 (78) = happyShift action_23-action_71 (83) = happyShift action_24-action_71 (84) = happyShift action_25-action_71 (85) = happyShift action_26-action_71 (86) = happyShift action_27-action_71 (87) = happyShift action_28-action_71 (100) = happyShift action_135-action_71 (6) = happyGoto action_4-action_71 (7) = happyGoto action_5-action_71 (8) = happyGoto action_6-action_71 (9) = happyGoto action_7-action_71 (10) = happyGoto action_8-action_71 (11) = happyGoto action_9-action_71 (14) = happyGoto action_10-action_71 (15) = happyGoto action_11-action_71 (16) = happyGoto action_12-action_71 (17) = happyGoto action_13-action_71 (19) = happyGoto action_14-action_71 (21) = happyGoto action_15-action_71 _ = happyReduce_36--action_72 (67) = happyShift action_39-action_72 (23) = happyGoto action_130-action_72 (55) = happyGoto action_131-action_72 (63) = happyGoto action_134-action_72 (64) = happyGoto action_133-action_72 _ = happyReduce_182--action_73 (67) = happyShift action_39-action_73 (23) = happyGoto action_130-action_73 (55) = happyGoto action_131-action_73 (63) = happyGoto action_132-action_73 (64) = happyGoto action_133-action_73 _ = happyReduce_182--action_74 (67) = happyShift action_39-action_74 (68) = happyShift action_93-action_74 (69) = happyShift action_119-action_74 (72) = happyShift action_95-action_74 (79) = happyShift action_120-action_74 (81) = happyShift action_121-action_74 (89) = happyShift action_122-action_74 (90) = happyShift action_123-action_74 (91) = happyShift action_96-action_74 (92) = happyShift action_97-action_74 (93) = happyShift action_124-action_74 (94) = happyShift action_99-action_74 (97) = happyShift action_100-action_74 (99) = happyShift action_125-action_74 (101) = happyShift action_126-action_74 (103) = happyShift action_127-action_74 (105) = happyShift action_128-action_74 (109) = happyShift action_57-action_74 (113) = happyShift action_58-action_74 (114) = happyShift action_59-action_74 (115) = happyShift action_60-action_74 (117) = happyShift action_61-action_74 (118) = happyShift action_62-action_74 (120) = happyShift action_129-action_74 (121) = happyShift action_103-action_74 (23) = happyGoto action_104-action_74 (26) = happyGoto action_105-action_74 (27) = happyGoto action_106-action_74 (29) = happyGoto action_107-action_74 (31) = happyGoto action_108-action_74 (32) = happyGoto action_109-action_74 (33) = happyGoto action_110-action_74 (34) = happyGoto action_111-action_74 (39) = happyGoto action_112-action_74 (42) = happyGoto action_113-action_74 (43) = happyGoto action_114-action_74 (44) = happyGoto action_115-action_74 (45) = happyGoto action_116-action_74 (46) = happyGoto action_117-action_74 (47) = happyGoto action_118-action_74 (48) = happyGoto action_87-action_74 _ = happyReduce_60--action_75 (67) = happyShift action_39-action_75 (68) = happyShift action_93-action_75 (69) = happyShift action_94-action_75 (72) = happyShift action_95-action_75 (91) = happyShift action_96-action_75 (92) = happyShift action_97-action_75 (93) = happyShift action_98-action_75 (94) = happyShift action_99-action_75 (97) = happyShift action_100-action_75 (103) = happyShift action_101-action_75 (109) = happyShift action_102-action_75 (121) = happyShift action_103-action_75 (23) = happyGoto action_85-action_75 (47) = happyGoto action_86-action_75 (48) = happyGoto action_87-action_75 (58) = happyGoto action_88-action_75 (59) = happyGoto action_89-action_75 (60) = happyGoto action_90-action_75 (61) = happyGoto action_91-action_75 (62) = happyGoto action_92-action_75 _ = happyFail--action_76 _ = happyReduce_45--action_77 (70) = happyShift action_16-action_77 (71) = happyShift action_17-action_77 (72) = happyShift action_18-action_77 (73) = happyShift action_19-action_77 (75) = happyShift action_20-action_77 (76) = happyShift action_21-action_77 (77) = happyShift action_22-action_77 (78) = happyShift action_23-action_77 (83) = happyShift action_24-action_77 (84) = happyShift action_25-action_77 (85) = happyShift action_26-action_77 (86) = happyShift action_27-action_77 (87) = happyShift action_28-action_77 (100) = happyShift action_84-action_77 (6) = happyGoto action_4-action_77 (7) = happyGoto action_5-action_77 (8) = happyGoto action_6-action_77 (9) = happyGoto action_7-action_77 (10) = happyGoto action_8-action_77 (11) = happyGoto action_9-action_77 (14) = happyGoto action_10-action_77 (15) = happyGoto action_11-action_77 (16) = happyGoto action_12-action_77 (17) = happyGoto action_13-action_77 (19) = happyGoto action_14-action_77 (21) = happyGoto action_15-action_77 _ = happyReduce_36--action_78 (70) = happyShift action_16-action_78 (71) = happyShift action_17-action_78 (72) = happyShift action_18-action_78 (73) = happyShift action_19-action_78 (75) = happyShift action_20-action_78 (76) = happyShift action_21-action_78 (77) = happyShift action_22-action_78 (78) = happyShift action_23-action_78 (83) = happyShift action_24-action_78 (84) = happyShift action_25-action_78 (85) = happyShift action_26-action_78 (86) = happyShift action_27-action_78 (87) = happyShift action_28-action_78 (100) = happyShift action_83-action_78 (6) = happyGoto action_4-action_78 (7) = happyGoto action_5-action_78 (8) = happyGoto action_6-action_78 (9) = happyGoto action_7-action_78 (10) = happyGoto action_8-action_78 (11) = happyGoto action_9-action_78 (14) = happyGoto action_10-action_78 (15) = happyGoto action_11-action_78 (16) = happyGoto action_12-action_78 (17) = happyGoto action_13-action_78 (19) = happyGoto action_14-action_78 (21) = happyGoto action_15-action_78 _ = happyReduce_36--action_79 (70) = happyShift action_16-action_79 (71) = happyShift action_17-action_79 (72) = happyShift action_18-action_79 (73) = happyShift action_19-action_79 (75) = happyShift action_20-action_79 (76) = happyShift action_21-action_79 (77) = happyShift action_22-action_79 (78) = happyShift action_23-action_79 (83) = happyShift action_24-action_79 (84) = happyShift action_25-action_79 (85) = happyShift action_26-action_79 (86) = happyShift action_27-action_79 (87) = happyShift action_28-action_79 (100) = happyShift action_82-action_79 (6) = happyGoto action_4-action_79 (7) = happyGoto action_5-action_79 (8) = happyGoto action_6-action_79 (9) = happyGoto action_7-action_79 (10) = happyGoto action_8-action_79 (11) = happyGoto action_9-action_79 (14) = happyGoto action_10-action_79 (15) = happyGoto action_11-action_79 (16) = happyGoto action_12-action_79 (17) = happyGoto action_13-action_79 (19) = happyGoto action_14-action_79 (21) = happyGoto action_15-action_79 _ = happyReduce_36--action_80 (70) = happyShift action_16-action_80 (71) = happyShift action_17-action_80 (72) = happyShift action_18-action_80 (73) = happyShift action_19-action_80 (75) = happyShift action_20-action_80 (76) = happyShift action_21-action_80 (77) = happyShift action_22-action_80 (78) = happyShift action_23-action_80 (83) = happyShift action_24-action_80 (84) = happyShift action_25-action_80 (85) = happyShift action_26-action_80 (86) = happyShift action_27-action_80 (87) = happyShift action_28-action_80 (100) = happyShift action_81-action_80 (6) = happyGoto action_4-action_80 (7) = happyGoto action_5-action_80 (8) = happyGoto action_6-action_80 (9) = happyGoto action_7-action_80 (10) = happyGoto action_8-action_80 (11) = happyGoto action_9-action_80 (14) = happyGoto action_10-action_80 (15) = happyGoto action_11-action_80 (16) = happyGoto action_12-action_80 (17) = happyGoto action_13-action_80 (19) = happyGoto action_14-action_80 (21) = happyGoto action_15-action_80 _ = happyReduce_36--action_81 _ = happyReduce_15--action_82 _ = happyReduce_21--action_83 _ = happyReduce_19--action_84 _ = happyReduce_17--action_85 (67) = happyReduce_176-action_85 (70) = happyReduce_176-action_85 (71) = happyReduce_176-action_85 (72) = happyReduce_176-action_85 (73) = happyReduce_176-action_85 (75) = happyReduce_176-action_85 (76) = happyReduce_176-action_85 (77) = happyReduce_176-action_85 (78) = happyReduce_176-action_85 (81) = happyReduce_176-action_85 (83) = happyReduce_176-action_85 (84) = happyReduce_176-action_85 (85) = happyReduce_176-action_85 (86) = happyReduce_176-action_85 (87) = happyReduce_176-action_85 (93) = happyReduce_176-action_85 (95) = happyReduce_176-action_85 (97) = happyShift action_241-action_85 (100) = happyReduce_176-action_85 (103) = happyReduce_176-action_85 (104) = happyReduce_176-action_85 (106) = happyReduce_176-action_85 (107) = happyReduce_176-action_85 (109) = happyReduce_176-action_85 (112) = happyReduce_176-action_85 (122) = happyReduce_176-action_85 _ = happyReduce_138--action_86 (98) = happyShift action_240-action_86 _ = happyFail--action_87 _ = happyReduce_130--action_88 _ = happyReduce_172--action_89 _ = happyReduce_40--action_90 (106) = happyShift action_239-action_90 _ = happyReduce_168--action_91 (67) = happyShift action_39-action_91 (93) = happyShift action_235-action_91 (95) = happyShift action_238-action_91 (103) = happyShift action_236-action_91 (109) = happyShift action_102-action_91 (23) = happyGoto action_233-action_91 (58) = happyGoto action_237-action_91 (62) = happyGoto action_231-action_91 _ = happyReduce_169--action_92 (67) = happyShift action_39-action_92 (93) = happyShift action_235-action_92 (103) = happyShift action_236-action_92 (109) = happyShift action_102-action_92 (23) = happyGoto action_233-action_92 (58) = happyGoto action_234-action_92 (62) = happyGoto action_231-action_92 _ = happyReduce_163--action_93 _ = happyReduce_137--action_94 _ = happyReduce_135--action_95 (99) = happyShift action_232-action_95 _ = happyFail--action_96 _ = happyReduce_127--action_97 _ = happyReduce_129--action_98 (67) = happyShift action_39-action_98 (68) = happyShift action_93-action_98 (69) = happyShift action_94-action_98 (72) = happyShift action_95-action_98 (91) = happyShift action_96-action_98 (92) = happyShift action_97-action_98 (93) = happyShift action_98-action_98 (94) = happyShift action_99-action_98 (97) = happyShift action_100-action_98 (103) = happyShift action_101-action_98 (109) = happyShift action_102-action_98 (121) = happyShift action_103-action_98 (23) = happyGoto action_229-action_98 (47) = happyGoto action_191-action_98 (48) = happyGoto action_87-action_98 (58) = happyGoto action_230-action_98 (62) = happyGoto action_231-action_98 _ = happyFail--action_99 _ = happyReduce_128--action_100 (67) = happyShift action_39-action_100 (68) = happyShift action_93-action_100 (69) = happyShift action_119-action_100 (72) = happyShift action_95-action_100 (79) = happyShift action_120-action_100 (81) = happyShift action_121-action_100 (89) = happyShift action_122-action_100 (90) = happyShift action_123-action_100 (91) = happyShift action_96-action_100 (92) = happyShift action_97-action_100 (93) = happyShift action_124-action_100 (94) = happyShift action_99-action_100 (97) = happyShift action_100-action_100 (99) = happyShift action_125-action_100 (101) = happyShift action_126-action_100 (103) = happyShift action_127-action_100 (105) = happyShift action_128-action_100 (109) = happyShift action_57-action_100 (113) = happyShift action_58-action_100 (114) = happyShift action_59-action_100 (115) = happyShift action_60-action_100 (117) = happyShift action_61-action_100 (118) = happyShift action_62-action_100 (120) = happyShift action_129-action_100 (121) = happyShift action_103-action_100 (23) = happyGoto action_104-action_100 (26) = happyGoto action_105-action_100 (27) = happyGoto action_106-action_100 (29) = happyGoto action_107-action_100 (31) = happyGoto action_108-action_100 (32) = happyGoto action_109-action_100 (33) = happyGoto action_110-action_100 (34) = happyGoto action_111-action_100 (39) = happyGoto action_112-action_100 (40) = happyGoto action_228-action_100 (41) = happyGoto action_200-action_100 (42) = happyGoto action_157-action_100 (43) = happyGoto action_114-action_100 (44) = happyGoto action_115-action_100 (45) = happyGoto action_116-action_100 (46) = happyGoto action_117-action_100 (47) = happyGoto action_118-action_100 (48) = happyGoto action_87-action_100 _ = happyReduce_60--action_101 (67) = happyShift action_39-action_101 (68) = happyShift action_93-action_101 (69) = happyShift action_119-action_101 (72) = happyShift action_95-action_101 (79) = happyShift action_120-action_101 (81) = happyShift action_121-action_101 (89) = happyShift action_122-action_101 (90) = happyShift action_123-action_101 (91) = happyShift action_96-action_101 (92) = happyShift action_97-action_101 (93) = happyShift action_98-action_101 (94) = happyShift action_99-action_101 (97) = happyShift action_100-action_101 (99) = happyShift action_125-action_101 (101) = happyShift action_126-action_101 (103) = happyShift action_225-action_101 (104) = happyShift action_226-action_101 (105) = happyShift action_128-action_101 (109) = happyShift action_227-action_101 (113) = happyShift action_58-action_101 (114) = happyShift action_59-action_101 (115) = happyShift action_60-action_101 (117) = happyShift action_61-action_101 (118) = happyShift action_62-action_101 (120) = happyShift action_129-action_101 (121) = happyShift action_103-action_101 (23) = happyGoto action_85-action_101 (26) = happyGoto action_105-action_101 (27) = happyGoto action_106-action_101 (29) = happyGoto action_107-action_101 (31) = happyGoto action_108-action_101 (32) = happyGoto action_109-action_101 (33) = happyGoto action_110-action_101 (34) = happyGoto action_111-action_101 (39) = happyGoto action_112-action_101 (40) = happyGoto action_185-action_101 (41) = happyGoto action_200-action_101 (42) = happyGoto action_157-action_101 (43) = happyGoto action_114-action_101 (44) = happyGoto action_115-action_101 (45) = happyGoto action_116-action_101 (46) = happyGoto action_117-action_101 (47) = happyGoto action_223-action_101 (48) = happyGoto action_87-action_101 (58) = happyGoto action_88-action_101 (59) = happyGoto action_224-action_101 (60) = happyGoto action_90-action_101 (61) = happyGoto action_91-action_101 (62) = happyGoto action_92-action_101 _ = happyReduce_60--action_102 (67) = happyShift action_39-action_102 (68) = happyShift action_93-action_102 (69) = happyShift action_94-action_102 (72) = happyShift action_95-action_102 (89) = happyShift action_222-action_102 (91) = happyShift action_96-action_102 (92) = happyShift action_97-action_102 (93) = happyShift action_124-action_102 (94) = happyShift action_99-action_102 (97) = happyShift action_100-action_102 (103) = happyShift action_192-action_102 (121) = happyShift action_103-action_102 (23) = happyGoto action_220-action_102 (47) = happyGoto action_221-action_102 (48) = happyGoto action_87-action_102 _ = happyFail--action_103 _ = happyReduce_133--action_104 _ = happyReduce_138--action_105 (67) = happyShift action_39-action_105 (68) = happyShift action_93-action_105 (69) = happyShift action_119-action_105 (72) = happyShift action_95-action_105 (89) = happyShift action_122-action_105 (90) = happyShift action_123-action_105 (91) = happyShift action_96-action_105 (92) = happyShift action_97-action_105 (93) = happyShift action_124-action_105 (94) = happyShift action_99-action_105 (97) = happyShift action_100-action_105 (99) = happyShift action_125-action_105 (101) = happyShift action_218-action_105 (103) = happyShift action_219-action_105 (105) = happyShift action_128-action_105 (109) = happyShift action_57-action_105 (113) = happyShift action_58-action_105 (114) = happyShift action_59-action_105 (115) = happyShift action_60-action_105 (117) = happyShift action_61-action_105 (118) = happyShift action_62-action_105 (121) = happyShift action_103-action_105 (23) = happyGoto action_104-action_105 (26) = happyGoto action_212-action_105 (27) = happyGoto action_213-action_105 (29) = happyGoto action_214-action_105 (32) = happyGoto action_215-action_105 (33) = happyGoto action_110-action_105 (34) = happyGoto action_111-action_105 (43) = happyGoto action_216-action_105 (44) = happyGoto action_115-action_105 (45) = happyGoto action_217-action_105 (46) = happyGoto action_117-action_105 (47) = happyGoto action_118-action_105 (48) = happyGoto action_87-action_105 _ = happyFail--action_106 (97) = happyShift action_210-action_106 (99) = happyShift action_125-action_106 (101) = happyShift action_151-action_106 (103) = happyShift action_152-action_106 (105) = happyShift action_128-action_106 (109) = happyShift action_57-action_106 (110) = happyReduce_96-action_106 (111) = happyShift action_211-action_106 (113) = happyShift action_58-action_106 (114) = happyShift action_59-action_106 (115) = happyShift action_60-action_106 (117) = happyShift action_61-action_106 (118) = happyShift action_62-action_106 (26) = happyGoto action_147-action_106 (27) = happyGoto action_148-action_106 (31) = happyGoto action_163-action_106 (32) = happyGoto action_150-action_106 (33) = happyGoto action_110-action_106 (34) = happyGoto action_111-action_106 _ = happyReduce_116--action_107 (119) = happyReduce_117-action_107 _ = happyReduce_97--action_108 _ = happyReduce_98--action_109 (99) = happyShift action_125-action_109 (101) = happyShift action_151-action_109 (103) = happyShift action_152-action_109 (105) = happyShift action_128-action_109 (109) = happyShift action_57-action_109 (110) = happyReduce_95-action_109 (113) = happyShift action_58-action_109 (114) = happyShift action_59-action_109 (115) = happyShift action_60-action_109 (117) = happyShift action_61-action_109 (118) = happyShift action_62-action_109 (26) = happyGoto action_147-action_109 (27) = happyGoto action_148-action_109 (31) = happyGoto action_160-action_109 (32) = happyGoto action_150-action_109 (33) = happyGoto action_110-action_109 (34) = happyGoto action_111-action_109 _ = happyReduce_115--action_110 _ = happyReduce_69--action_111 _ = happyReduce_70--action_112 (110) = happyShift action_209-action_112 _ = happyFail--action_113 _ = happyReduce_143--action_114 (110) = happyReduce_92-action_114 _ = happyReduce_106--action_115 (119) = happyShift action_208-action_115 _ = happyFail--action_116 (95) = happyShift action_205-action_116 (96) = happyShift action_206-action_116 (114) = happyShift action_207-action_116 (119) = happyReduce_112-action_116 _ = happyReduce_110--action_117 (67) = happyShift action_39-action_117 (68) = happyShift action_93-action_117 (69) = happyShift action_94-action_117 (72) = happyShift action_95-action_117 (89) = happyShift action_203-action_117 (91) = happyShift action_96-action_117 (92) = happyShift action_97-action_117 (93) = happyShift action_124-action_117 (94) = happyShift action_99-action_117 (97) = happyShift action_100-action_117 (103) = happyShift action_192-action_117 (109) = happyShift action_204-action_117 (121) = happyShift action_103-action_117 (23) = happyGoto action_104-action_117 (47) = happyGoto action_202-action_117 (48) = happyGoto action_87-action_117 _ = happyReduce_118--action_118 _ = happyReduce_123--action_119 (117) = happyShift action_201-action_119 _ = happyReduce_135--action_120 (67) = happyShift action_39-action_120 (68) = happyShift action_93-action_120 (69) = happyShift action_119-action_120 (72) = happyShift action_95-action_120 (79) = happyShift action_120-action_120 (81) = happyShift action_121-action_120 (89) = happyShift action_122-action_120 (90) = happyShift action_123-action_120 (91) = happyShift action_96-action_120 (92) = happyShift action_97-action_120 (93) = happyShift action_124-action_120 (94) = happyShift action_99-action_120 (97) = happyShift action_100-action_120 (99) = happyShift action_125-action_120 (101) = happyShift action_126-action_120 (103) = happyShift action_127-action_120 (105) = happyShift action_128-action_120 (109) = happyShift action_57-action_120 (113) = happyShift action_58-action_120 (114) = happyShift action_59-action_120 (115) = happyShift action_60-action_120 (117) = happyShift action_61-action_120 (118) = happyShift action_62-action_120 (120) = happyShift action_129-action_120 (121) = happyShift action_103-action_120 (23) = happyGoto action_104-action_120 (26) = happyGoto action_105-action_120 (27) = happyGoto action_106-action_120 (29) = happyGoto action_107-action_120 (31) = happyGoto action_108-action_120 (32) = happyGoto action_109-action_120 (33) = happyGoto action_110-action_120 (34) = happyGoto action_111-action_120 (39) = happyGoto action_112-action_120 (40) = happyGoto action_199-action_120 (41) = happyGoto action_200-action_120 (42) = happyGoto action_157-action_120 (43) = happyGoto action_114-action_120 (44) = happyGoto action_115-action_120 (45) = happyGoto action_116-action_120 (46) = happyGoto action_117-action_120 (47) = happyGoto action_118-action_120 (48) = happyGoto action_87-action_120 _ = happyReduce_60--action_121 (67) = happyShift action_39-action_121 (101) = happyShift action_198-action_121 (109) = happyShift action_57-action_121 (113) = happyShift action_58-action_121 (114) = happyShift action_59-action_121 (115) = happyShift action_60-action_121 (117) = happyShift action_61-action_121 (118) = happyShift action_62-action_121 (18) = happyGoto action_195-action_121 (23) = happyGoto action_53-action_121 (26) = happyGoto action_196-action_121 (36) = happyGoto action_55-action_121 (37) = happyGoto action_197-action_121 _ = happyFail--action_122 (67) = happyShift action_39-action_122 (68) = happyShift action_93-action_122 (69) = happyShift action_94-action_122 (72) = happyShift action_95-action_122 (91) = happyShift action_96-action_122 (92) = happyShift action_97-action_122 (93) = happyShift action_124-action_122 (94) = happyShift action_99-action_122 (97) = happyShift action_100-action_122 (103) = happyShift action_192-action_122 (121) = happyShift action_103-action_122 (23) = happyGoto action_104-action_122 (47) = happyGoto action_194-action_122 (48) = happyGoto action_87-action_122 _ = happyReduce_120--action_123 (67) = happyShift action_39-action_123 (68) = happyShift action_93-action_123 (69) = happyShift action_94-action_123 (72) = happyShift action_95-action_123 (91) = happyShift action_96-action_123 (92) = happyShift action_97-action_123 (93) = happyShift action_124-action_123 (94) = happyShift action_99-action_123 (97) = happyShift action_100-action_123 (103) = happyShift action_192-action_123 (121) = happyShift action_103-action_123 (23) = happyGoto action_104-action_123 (47) = happyGoto action_193-action_123 (48) = happyGoto action_87-action_123 _ = happyFail--action_124 (67) = happyShift action_39-action_124 (68) = happyShift action_93-action_124 (69) = happyShift action_94-action_124 (72) = happyShift action_95-action_124 (91) = happyShift action_96-action_124 (92) = happyShift action_97-action_124 (93) = happyShift action_124-action_124 (94) = happyShift action_99-action_124 (97) = happyShift action_100-action_124 (103) = happyShift action_192-action_124 (121) = happyShift action_103-action_124 (23) = happyGoto action_104-action_124 (47) = happyGoto action_191-action_124 (48) = happyGoto action_87-action_124 _ = happyFail--action_125 (67) = happyShift action_39-action_125 (23) = happyGoto action_189-action_125 (25) = happyGoto action_190-action_125 _ = happyFail--action_126 (67) = happyShift action_39-action_126 (68) = happyShift action_93-action_126 (69) = happyShift action_119-action_126 (72) = happyShift action_95-action_126 (79) = happyShift action_120-action_126 (81) = happyShift action_121-action_126 (89) = happyShift action_122-action_126 (90) = happyShift action_123-action_126 (91) = happyShift action_96-action_126 (92) = happyShift action_97-action_126 (93) = happyShift action_124-action_126 (94) = happyShift action_99-action_126 (97) = happyShift action_100-action_126 (99) = happyShift action_125-action_126 (101) = happyShift action_126-action_126 (103) = happyShift action_127-action_126 (105) = happyShift action_128-action_126 (109) = happyShift action_57-action_126 (113) = happyShift action_58-action_126 (114) = happyShift action_59-action_126 (115) = happyShift action_60-action_126 (117) = happyShift action_61-action_126 (118) = happyShift action_62-action_126 (120) = happyShift action_129-action_126 (121) = happyShift action_103-action_126 (23) = happyGoto action_187-action_126 (25) = happyGoto action_159-action_126 (26) = happyGoto action_105-action_126 (27) = happyGoto action_106-action_126 (29) = happyGoto action_107-action_126 (31) = happyGoto action_108-action_126 (32) = happyGoto action_109-action_126 (33) = happyGoto action_110-action_126 (34) = happyGoto action_111-action_126 (39) = happyGoto action_112-action_126 (42) = happyGoto action_188-action_126 (43) = happyGoto action_114-action_126 (44) = happyGoto action_115-action_126 (45) = happyGoto action_116-action_126 (46) = happyGoto action_117-action_126 (47) = happyGoto action_118-action_126 (48) = happyGoto action_87-action_126 _ = happyReduce_60--action_127 (67) = happyShift action_39-action_127 (68) = happyShift action_93-action_127 (69) = happyShift action_119-action_127 (72) = happyShift action_95-action_127 (79) = happyShift action_120-action_127 (81) = happyShift action_121-action_127 (89) = happyShift action_122-action_127 (90) = happyShift action_123-action_127 (91) = happyShift action_96-action_127 (92) = happyShift action_97-action_127 (93) = happyShift action_124-action_127 (94) = happyShift action_99-action_127 (97) = happyShift action_100-action_127 (99) = happyShift action_125-action_127 (101) = happyShift action_126-action_127 (103) = happyShift action_127-action_127 (105) = happyShift action_128-action_127 (109) = happyShift action_57-action_127 (113) = happyShift action_58-action_127 (114) = happyShift action_59-action_127 (115) = happyShift action_60-action_127 (117) = happyShift action_61-action_127 (118) = happyShift action_62-action_127 (120) = happyShift action_129-action_127 (121) = happyShift action_103-action_127 (23) = happyGoto action_154-action_127 (26) = happyGoto action_105-action_127 (27) = happyGoto action_106-action_127 (29) = happyGoto action_107-action_127 (30) = happyGoto action_155-action_127 (31) = happyGoto action_108-action_127 (32) = happyGoto action_109-action_127 (33) = happyGoto action_110-action_127 (34) = happyGoto action_111-action_127 (39) = happyGoto action_112-action_127 (40) = happyGoto action_185-action_127 (41) = happyGoto action_186-action_127 (42) = happyGoto action_157-action_127 (43) = happyGoto action_114-action_127 (44) = happyGoto action_115-action_127 (45) = happyGoto action_116-action_127 (46) = happyGoto action_117-action_127 (47) = happyGoto action_118-action_127 (48) = happyGoto action_87-action_127 _ = happyReduce_60--action_128 (67) = happyShift action_39-action_128 (68) = happyShift action_93-action_128 (69) = happyShift action_119-action_128 (72) = happyShift action_95-action_128 (79) = happyShift action_120-action_128 (81) = happyShift action_121-action_128 (89) = happyShift action_122-action_128 (90) = happyShift action_123-action_128 (91) = happyShift action_96-action_128 (92) = happyShift action_97-action_128 (93) = happyShift action_124-action_128 (94) = happyShift action_99-action_128 (97) = happyShift action_100-action_128 (99) = happyShift action_125-action_128 (101) = happyShift action_126-action_128 (103) = happyShift action_127-action_128 (105) = happyShift action_128-action_128 (109) = happyShift action_57-action_128 (113) = happyShift action_58-action_128 (114) = happyShift action_59-action_128 (115) = happyShift action_60-action_128 (117) = happyShift action_61-action_128 (118) = happyShift action_62-action_128 (120) = happyShift action_129-action_128 (121) = happyShift action_103-action_128 (23) = happyGoto action_104-action_128 (26) = happyGoto action_105-action_128 (27) = happyGoto action_106-action_128 (28) = happyGoto action_183-action_128 (29) = happyGoto action_107-action_128 (31) = happyGoto action_108-action_128 (32) = happyGoto action_109-action_128 (33) = happyGoto action_110-action_128 (34) = happyGoto action_111-action_128 (39) = happyGoto action_112-action_128 (42) = happyGoto action_184-action_128 (43) = happyGoto action_114-action_128 (44) = happyGoto action_115-action_128 (45) = happyGoto action_116-action_128 (46) = happyGoto action_117-action_128 (47) = happyGoto action_118-action_128 (48) = happyGoto action_87-action_128 _ = happyReduce_60--action_129 (67) = happyShift action_39-action_129 (23) = happyGoto action_37-action_129 (24) = happyGoto action_182-action_129 _ = happyFail--action_130 (56) = happyGoto action_180-action_130 (57) = happyGoto action_181-action_130 _ = happyReduce_158--action_131 _ = happyReduce_181--action_132 (100) = happyShift action_179-action_132 _ = happyFail--action_133 (107) = happyShift action_178-action_133 _ = happyReduce_178--action_134 (100) = happyShift action_177-action_134 _ = happyFail--action_135 _ = happyReduce_33--action_136 (67) = happyShift action_39-action_136 (23) = happyGoto action_168-action_136 (52) = happyGoto action_176-action_136 _ = happyFail--action_137 (67) = happyShift action_39-action_137 (68) = happyShift action_93-action_137 (69) = happyShift action_119-action_137 (72) = happyShift action_95-action_137 (79) = happyShift action_120-action_137 (81) = happyShift action_121-action_137 (89) = happyShift action_122-action_137 (90) = happyShift action_123-action_137 (91) = happyShift action_96-action_137 (92) = happyShift action_97-action_137 (93) = happyShift action_124-action_137 (94) = happyShift action_99-action_137 (97) = happyShift action_100-action_137 (99) = happyShift action_125-action_137 (101) = happyShift action_126-action_137 (103) = happyShift action_127-action_137 (105) = happyShift action_128-action_137 (109) = happyShift action_57-action_137 (113) = happyShift action_58-action_137 (114) = happyShift action_59-action_137 (115) = happyShift action_60-action_137 (117) = happyShift action_61-action_137 (118) = happyShift action_62-action_137 (120) = happyShift action_129-action_137 (121) = happyShift action_103-action_137 (23) = happyGoto action_104-action_137 (26) = happyGoto action_105-action_137 (27) = happyGoto action_106-action_137 (29) = happyGoto action_107-action_137 (31) = happyGoto action_108-action_137 (32) = happyGoto action_109-action_137 (33) = happyGoto action_110-action_137 (34) = happyGoto action_111-action_137 (39) = happyGoto action_112-action_137 (42) = happyGoto action_175-action_137 (43) = happyGoto action_114-action_137 (44) = happyGoto action_115-action_137 (45) = happyGoto action_116-action_137 (46) = happyGoto action_117-action_137 (47) = happyGoto action_118-action_137 (48) = happyGoto action_87-action_137 _ = happyReduce_60--action_138 (106) = happyShift action_174-action_138 _ = happyReduce_46--action_139 (108) = happyShift action_173-action_139 _ = happyFail--action_140 (67) = happyShift action_39-action_140 (23) = happyGoto action_138-action_140 (25) = happyGoto action_172-action_140 _ = happyFail--action_141 (108) = happyShift action_171-action_141 _ = happyFail--action_142 (67) = happyShift action_39-action_142 (23) = happyGoto action_168-action_142 (52) = happyGoto action_169-action_142 (53) = happyGoto action_170-action_142 _ = happyReduce_149--action_143 (67) = happyShift action_39-action_143 (68) = happyShift action_93-action_143 (69) = happyShift action_119-action_143 (72) = happyShift action_95-action_143 (79) = happyShift action_120-action_143 (81) = happyShift action_121-action_143 (89) = happyShift action_122-action_143 (90) = happyShift action_123-action_143 (91) = happyShift action_96-action_143 (92) = happyShift action_97-action_143 (93) = happyShift action_124-action_143 (94) = happyShift action_99-action_143 (97) = happyShift action_100-action_143 (99) = happyShift action_125-action_143 (101) = happyShift action_126-action_143 (103) = happyShift action_127-action_143 (105) = happyShift action_128-action_143 (109) = happyShift action_57-action_143 (113) = happyShift action_58-action_143 (114) = happyShift action_59-action_143 (115) = happyShift action_60-action_143 (117) = happyShift action_61-action_143 (118) = happyShift action_62-action_143 (120) = happyShift action_129-action_143 (121) = happyShift action_103-action_143 (23) = happyGoto action_104-action_143 (26) = happyGoto action_105-action_143 (27) = happyGoto action_106-action_143 (29) = happyGoto action_107-action_143 (31) = happyGoto action_108-action_143 (32) = happyGoto action_109-action_143 (33) = happyGoto action_110-action_143 (34) = happyGoto action_111-action_143 (39) = happyGoto action_112-action_143 (42) = happyGoto action_167-action_143 (43) = happyGoto action_114-action_143 (44) = happyGoto action_115-action_143 (45) = happyGoto action_116-action_143 (46) = happyGoto action_117-action_143 (47) = happyGoto action_118-action_143 (48) = happyGoto action_87-action_143 _ = happyReduce_60--action_144 _ = happyReduce_188--action_145 (67) = happyShift action_39-action_145 (23) = happyGoto action_138-action_145 (25) = happyGoto action_166-action_145 _ = happyFail--action_146 (102) = happyShift action_165-action_146 _ = happyFail--action_147 (103) = happyShift action_164-action_147 _ = happyFail--action_148 (99) = happyShift action_125-action_148 (101) = happyShift action_151-action_148 (103) = happyShift action_152-action_148 (105) = happyShift action_128-action_148 (109) = happyShift action_57-action_148 (113) = happyShift action_58-action_148 (114) = happyShift action_59-action_148 (115) = happyShift action_60-action_148 (117) = happyShift action_61-action_148 (118) = happyShift action_62-action_148 (26) = happyGoto action_147-action_148 (27) = happyGoto action_148-action_148 (31) = happyGoto action_163-action_148 (32) = happyGoto action_150-action_148 (33) = happyGoto action_110-action_148 (34) = happyGoto action_111-action_148 _ = happyReduce_60--action_149 (108) = happyShift action_162-action_149 (20) = happyGoto action_161-action_149 _ = happyReduce_38--action_150 (99) = happyShift action_125-action_150 (101) = happyShift action_151-action_150 (103) = happyShift action_152-action_150 (105) = happyShift action_128-action_150 (109) = happyShift action_57-action_150 (113) = happyShift action_58-action_150 (114) = happyShift action_59-action_150 (115) = happyShift action_60-action_150 (117) = happyShift action_61-action_150 (118) = happyShift action_62-action_150 (26) = happyGoto action_147-action_150 (27) = happyGoto action_148-action_150 (31) = happyGoto action_160-action_150 (32) = happyGoto action_150-action_150 (33) = happyGoto action_110-action_150 (34) = happyGoto action_111-action_150 _ = happyReduce_60--action_151 (67) = happyShift action_39-action_151 (23) = happyGoto action_158-action_151 (25) = happyGoto action_159-action_151 _ = happyFail--action_152 (67) = happyShift action_39-action_152 (68) = happyShift action_93-action_152 (69) = happyShift action_119-action_152 (72) = happyShift action_95-action_152 (79) = happyShift action_120-action_152 (81) = happyShift action_121-action_152 (89) = happyShift action_122-action_152 (90) = happyShift action_123-action_152 (91) = happyShift action_96-action_152 (92) = happyShift action_97-action_152 (93) = happyShift action_124-action_152 (94) = happyShift action_99-action_152 (97) = happyShift action_100-action_152 (99) = happyShift action_125-action_152 (101) = happyShift action_126-action_152 (103) = happyShift action_127-action_152 (105) = happyShift action_128-action_152 (109) = happyShift action_57-action_152 (113) = happyShift action_58-action_152 (114) = happyShift action_59-action_152 (115) = happyShift action_60-action_152 (117) = happyShift action_61-action_152 (118) = happyShift action_62-action_152 (120) = happyShift action_129-action_152 (121) = happyShift action_103-action_152 (23) = happyGoto action_154-action_152 (26) = happyGoto action_105-action_152 (27) = happyGoto action_106-action_152 (29) = happyGoto action_107-action_152 (30) = happyGoto action_155-action_152 (31) = happyGoto action_108-action_152 (32) = happyGoto action_109-action_152 (33) = happyGoto action_110-action_152 (34) = happyGoto action_111-action_152 (39) = happyGoto action_112-action_152 (41) = happyGoto action_156-action_152 (42) = happyGoto action_157-action_152 (43) = happyGoto action_114-action_152 (44) = happyGoto action_115-action_152 (45) = happyGoto action_116-action_152 (46) = happyGoto action_117-action_152 (47) = happyGoto action_118-action_152 (48) = happyGoto action_87-action_152 _ = happyReduce_60--action_153 _ = happyReduce_83--action_154 (97) = happyShift action_303-action_154 (111) = happyShift action_304-action_154 _ = happyReduce_138--action_155 (108) = happyShift action_302-action_155 _ = happyFail--action_156 _ = happyReduce_59--action_157 (106) = happyShift action_301-action_157 _ = happyReduce_100--action_158 (97) = happyShift action_275-action_158 (106) = happyShift action_174-action_158 (111) = happyShift action_276-action_158 _ = happyReduce_46--action_159 (108) = happyShift action_300-action_159 _ = happyFail--action_160 _ = happyReduce_61--action_161 (112) = happyShift action_299-action_161 _ = happyFail--action_162 (67) = happyShift action_39-action_162 (68) = happyShift action_93-action_162 (69) = happyShift action_119-action_162 (72) = happyShift action_95-action_162 (79) = happyShift action_120-action_162 (81) = happyShift action_121-action_162 (89) = happyShift action_122-action_162 (90) = happyShift action_123-action_162 (91) = happyShift action_96-action_162 (92) = happyShift action_97-action_162 (93) = happyShift action_124-action_162 (94) = happyShift action_99-action_162 (97) = happyShift action_100-action_162 (99) = happyShift action_125-action_162 (101) = happyShift action_126-action_162 (103) = happyShift action_127-action_162 (105) = happyShift action_128-action_162 (109) = happyShift action_57-action_162 (113) = happyShift action_58-action_162 (114) = happyShift action_59-action_162 (115) = happyShift action_60-action_162 (117) = happyShift action_61-action_162 (118) = happyShift action_62-action_162 (120) = happyShift action_129-action_162 (121) = happyShift action_103-action_162 (23) = happyGoto action_104-action_162 (26) = happyGoto action_105-action_162 (27) = happyGoto action_106-action_162 (29) = happyGoto action_107-action_162 (31) = happyGoto action_108-action_162 (32) = happyGoto action_109-action_162 (33) = happyGoto action_110-action_162 (34) = happyGoto action_111-action_162 (39) = happyGoto action_112-action_162 (42) = happyGoto action_298-action_162 (43) = happyGoto action_114-action_162 (44) = happyGoto action_115-action_162 (45) = happyGoto action_116-action_162 (46) = happyGoto action_117-action_162 (47) = happyGoto action_118-action_162 (48) = happyGoto action_87-action_162 _ = happyReduce_60--action_163 _ = happyReduce_62--action_164 (67) = happyShift action_39-action_164 (68) = happyShift action_93-action_164 (69) = happyShift action_119-action_164 (72) = happyShift action_95-action_164 (79) = happyShift action_120-action_164 (81) = happyShift action_121-action_164 (89) = happyShift action_122-action_164 (90) = happyShift action_123-action_164 (91) = happyShift action_96-action_164 (92) = happyShift action_97-action_164 (93) = happyShift action_124-action_164 (94) = happyShift action_99-action_164 (97) = happyShift action_100-action_164 (99) = happyShift action_125-action_164 (101) = happyShift action_126-action_164 (103) = happyShift action_127-action_164 (105) = happyShift action_128-action_164 (109) = happyShift action_57-action_164 (113) = happyShift action_58-action_164 (114) = happyShift action_59-action_164 (115) = happyShift action_60-action_164 (117) = happyShift action_61-action_164 (118) = happyShift action_62-action_164 (120) = happyShift action_129-action_164 (121) = happyShift action_103-action_164 (23) = happyGoto action_296-action_164 (26) = happyGoto action_105-action_164 (27) = happyGoto action_106-action_164 (29) = happyGoto action_107-action_164 (30) = happyGoto action_297-action_164 (31) = happyGoto action_108-action_164 (32) = happyGoto action_109-action_164 (33) = happyGoto action_110-action_164 (34) = happyGoto action_111-action_164 (39) = happyGoto action_112-action_164 (41) = happyGoto action_156-action_164 (42) = happyGoto action_157-action_164 (43) = happyGoto action_114-action_164 (44) = happyGoto action_115-action_164 (45) = happyGoto action_116-action_164 (46) = happyGoto action_117-action_164 (47) = happyGoto action_118-action_164 (48) = happyGoto action_87-action_164 _ = happyReduce_60--action_165 _ = happyReduce_82--action_166 (108) = happyShift action_295-action_166 _ = happyFail--action_167 (99) = happyShift action_294-action_167 _ = happyFail--action_168 (99) = happyShift action_125-action_168 (101) = happyShift action_151-action_168 (103) = happyShift action_152-action_168 (105) = happyShift action_128-action_168 (109) = happyShift action_57-action_168 (113) = happyShift action_58-action_168 (114) = happyShift action_59-action_168 (115) = happyShift action_60-action_168 (117) = happyShift action_61-action_168 (118) = happyShift action_62-action_168 (26) = happyGoto action_147-action_168 (27) = happyGoto action_148-action_168 (31) = happyGoto action_293-action_168 (32) = happyGoto action_150-action_168 (33) = happyGoto action_110-action_168 (34) = happyGoto action_111-action_168 _ = happyReduce_60--action_169 _ = happyReduce_148--action_170 (100) = happyShift action_291-action_170 (107) = happyShift action_292-action_170 _ = happyFail--action_171 (67) = happyShift action_39-action_171 (68) = happyShift action_93-action_171 (69) = happyShift action_119-action_171 (72) = happyShift action_95-action_171 (79) = happyShift action_120-action_171 (81) = happyShift action_121-action_171 (89) = happyShift action_122-action_171 (90) = happyShift action_123-action_171 (91) = happyShift action_96-action_171 (92) = happyShift action_97-action_171 (93) = happyShift action_124-action_171 (94) = happyShift action_99-action_171 (97) = happyShift action_100-action_171 (99) = happyShift action_125-action_171 (101) = happyShift action_126-action_171 (103) = happyShift action_127-action_171 (105) = happyShift action_128-action_171 (109) = happyShift action_57-action_171 (113) = happyShift action_58-action_171 (114) = happyShift action_59-action_171 (115) = happyShift action_60-action_171 (117) = happyShift action_61-action_171 (118) = happyShift action_62-action_171 (120) = happyShift action_129-action_171 (121) = happyShift action_103-action_171 (23) = happyGoto action_104-action_171 (26) = happyGoto action_105-action_171 (27) = happyGoto action_106-action_171 (29) = happyGoto action_107-action_171 (31) = happyGoto action_108-action_171 (32) = happyGoto action_109-action_171 (33) = happyGoto action_110-action_171 (34) = happyGoto action_111-action_171 (39) = happyGoto action_112-action_171 (42) = happyGoto action_290-action_171 (43) = happyGoto action_114-action_171 (44) = happyGoto action_115-action_171 (45) = happyGoto action_116-action_171 (46) = happyGoto action_117-action_171 (47) = happyGoto action_118-action_171 (48) = happyGoto action_87-action_171 _ = happyReduce_60--action_172 (108) = happyShift action_289-action_172 _ = happyFail--action_173 (67) = happyShift action_39-action_173 (68) = happyShift action_93-action_173 (69) = happyShift action_119-action_173 (72) = happyShift action_95-action_173 (79) = happyShift action_120-action_173 (81) = happyShift action_121-action_173 (89) = happyShift action_122-action_173 (90) = happyShift action_123-action_173 (91) = happyShift action_96-action_173 (92) = happyShift action_97-action_173 (93) = happyShift action_124-action_173 (94) = happyShift action_99-action_173 (97) = happyShift action_100-action_173 (99) = happyShift action_125-action_173 (101) = happyShift action_126-action_173 (103) = happyShift action_127-action_173 (105) = happyShift action_128-action_173 (109) = happyShift action_57-action_173 (113) = happyShift action_58-action_173 (114) = happyShift action_59-action_173 (115) = happyShift action_60-action_173 (117) = happyShift action_61-action_173 (118) = happyShift action_62-action_173 (120) = happyShift action_129-action_173 (121) = happyShift action_103-action_173 (23) = happyGoto action_104-action_173 (26) = happyGoto action_105-action_173 (27) = happyGoto action_106-action_173 (29) = happyGoto action_107-action_173 (31) = happyGoto action_108-action_173 (32) = happyGoto action_109-action_173 (33) = happyGoto action_110-action_173 (34) = happyGoto action_111-action_173 (39) = happyGoto action_112-action_173 (42) = happyGoto action_288-action_173 (43) = happyGoto action_114-action_173 (44) = happyGoto action_115-action_173 (45) = happyGoto action_116-action_173 (46) = happyGoto action_117-action_173 (47) = happyGoto action_118-action_173 (48) = happyGoto action_87-action_173 _ = happyReduce_60--action_174 (67) = happyShift action_39-action_174 (23) = happyGoto action_138-action_174 (25) = happyGoto action_287-action_174 _ = happyFail--action_175 (99) = happyShift action_286-action_175 _ = happyFail--action_176 (100) = happyShift action_285-action_176 _ = happyFail--action_177 _ = happyReduce_31--action_178 (67) = happyShift action_39-action_178 (23) = happyGoto action_130-action_178 (55) = happyGoto action_284-action_178 _ = happyReduce_180--action_179 _ = happyReduce_32--action_180 (112) = happyShift action_283-action_180 _ = happyReduce_156--action_181 (67) = happyShift action_39-action_181 (93) = happyShift action_235-action_181 (95) = happyShift action_282-action_181 (103) = happyShift action_236-action_181 (109) = happyShift action_102-action_181 (23) = happyGoto action_233-action_181 (58) = happyGoto action_281-action_181 (62) = happyGoto action_231-action_181 _ = happyReduce_157--action_182 (110) = happyShift action_280-action_182 _ = happyFail--action_183 _ = happyReduce_54--action_184 (105) = happyShift action_278-action_184 (106) = happyShift action_279-action_184 _ = happyFail--action_185 (104) = happyShift action_277-action_185 _ = happyFail--action_186 (108) = happyReduce_59-action_186 _ = happyReduce_99--action_187 (97) = happyShift action_275-action_187 (106) = happyShift action_174-action_187 (108) = happyReduce_46-action_187 (111) = happyShift action_276-action_187 _ = happyReduce_138--action_188 (102) = happyShift action_274-action_188 _ = happyFail--action_189 (97) = happyShift action_272-action_189 (106) = happyShift action_174-action_189 (111) = happyShift action_273-action_189 _ = happyReduce_46--action_190 (108) = happyShift action_271-action_190 _ = happyFail--action_191 _ = happyReduce_134--action_192 (67) = happyShift action_39-action_192 (68) = happyShift action_93-action_192 (69) = happyShift action_119-action_192 (72) = happyShift action_95-action_192 (79) = happyShift action_120-action_192 (81) = happyShift action_121-action_192 (89) = happyShift action_122-action_192 (90) = happyShift action_123-action_192 (91) = happyShift action_96-action_192 (92) = happyShift action_97-action_192 (93) = happyShift action_124-action_192 (94) = happyShift action_99-action_192 (97) = happyShift action_100-action_192 (99) = happyShift action_125-action_192 (101) = happyShift action_126-action_192 (103) = happyShift action_127-action_192 (105) = happyShift action_128-action_192 (109) = happyShift action_57-action_192 (113) = happyShift action_58-action_192 (114) = happyShift action_59-action_192 (115) = happyShift action_60-action_192 (117) = happyShift action_61-action_192 (118) = happyShift action_62-action_192 (120) = happyShift action_129-action_192 (121) = happyShift action_103-action_192 (23) = happyGoto action_104-action_192 (26) = happyGoto action_105-action_192 (27) = happyGoto action_106-action_192 (29) = happyGoto action_107-action_192 (31) = happyGoto action_108-action_192 (32) = happyGoto action_109-action_192 (33) = happyGoto action_110-action_192 (34) = happyGoto action_111-action_192 (39) = happyGoto action_112-action_192 (40) = happyGoto action_185-action_192 (41) = happyGoto action_200-action_192 (42) = happyGoto action_157-action_192 (43) = happyGoto action_114-action_192 (44) = happyGoto action_115-action_192 (45) = happyGoto action_116-action_192 (46) = happyGoto action_117-action_192 (47) = happyGoto action_118-action_192 (48) = happyGoto action_87-action_192 _ = happyReduce_60--action_193 _ = happyReduce_119--action_194 _ = happyReduce_121--action_195 _ = happyReduce_84--action_196 (67) = happyShift action_39-action_196 (103) = happyShift action_270-action_196 (23) = happyGoto action_153-action_196 _ = happyFail--action_197 (82) = happyShift action_269-action_197 _ = happyFail--action_198 (67) = happyShift action_39-action_198 (23) = happyGoto action_268-action_198 _ = happyFail--action_199 (108) = happyShift action_162-action_199 (20) = happyGoto action_267-action_199 _ = happyReduce_38--action_200 _ = happyReduce_99--action_201 (67) = happyShift action_39-action_201 (68) = happyShift action_93-action_201 (69) = happyShift action_119-action_201 (72) = happyShift action_95-action_201 (89) = happyShift action_122-action_201 (90) = happyShift action_123-action_201 (91) = happyShift action_96-action_201 (92) = happyShift action_97-action_201 (93) = happyShift action_124-action_201 (94) = happyShift action_99-action_201 (97) = happyShift action_100-action_201 (103) = happyShift action_192-action_201 (121) = happyShift action_103-action_201 (23) = happyGoto action_104-action_201 (45) = happyGoto action_266-action_201 (46) = happyGoto action_117-action_201 (47) = happyGoto action_118-action_201 (48) = happyGoto action_87-action_201 _ = happyFail--action_202 _ = happyReduce_124--action_203 _ = happyReduce_126--action_204 (67) = happyShift action_39-action_204 (23) = happyGoto action_265-action_204 _ = happyFail--action_205 (67) = happyShift action_39-action_205 (68) = happyShift action_93-action_205 (69) = happyShift action_119-action_205 (72) = happyShift action_95-action_205 (79) = happyShift action_120-action_205 (81) = happyShift action_121-action_205 (89) = happyShift action_122-action_205 (90) = happyShift action_123-action_205 (91) = happyShift action_96-action_205 (92) = happyShift action_97-action_205 (93) = happyShift action_124-action_205 (94) = happyShift action_99-action_205 (97) = happyShift action_100-action_205 (99) = happyShift action_125-action_205 (101) = happyShift action_126-action_205 (103) = happyShift action_127-action_205 (105) = happyShift action_128-action_205 (109) = happyShift action_57-action_205 (113) = happyShift action_58-action_205 (114) = happyShift action_59-action_205 (115) = happyShift action_60-action_205 (117) = happyShift action_61-action_205 (118) = happyShift action_62-action_205 (120) = happyShift action_129-action_205 (121) = happyShift action_103-action_205 (23) = happyGoto action_104-action_205 (26) = happyGoto action_105-action_205 (27) = happyGoto action_106-action_205 (29) = happyGoto action_107-action_205 (31) = happyGoto action_108-action_205 (32) = happyGoto action_109-action_205 (33) = happyGoto action_110-action_205 (34) = happyGoto action_111-action_205 (39) = happyGoto action_112-action_205 (42) = happyGoto action_264-action_205 (43) = happyGoto action_114-action_205 (44) = happyGoto action_115-action_205 (45) = happyGoto action_116-action_205 (46) = happyGoto action_117-action_205 (47) = happyGoto action_118-action_205 (48) = happyGoto action_87-action_205 _ = happyReduce_60--action_206 (67) = happyShift action_39-action_206 (68) = happyShift action_93-action_206 (69) = happyShift action_119-action_206 (72) = happyShift action_95-action_206 (79) = happyShift action_120-action_206 (81) = happyShift action_121-action_206 (89) = happyShift action_122-action_206 (90) = happyShift action_123-action_206 (91) = happyShift action_96-action_206 (92) = happyShift action_97-action_206 (93) = happyShift action_124-action_206 (94) = happyShift action_99-action_206 (97) = happyShift action_100-action_206 (99) = happyShift action_125-action_206 (101) = happyShift action_126-action_206 (103) = happyShift action_127-action_206 (105) = happyShift action_128-action_206 (109) = happyShift action_57-action_206 (113) = happyShift action_58-action_206 (114) = happyShift action_59-action_206 (115) = happyShift action_60-action_206 (117) = happyShift action_61-action_206 (118) = happyShift action_62-action_206 (120) = happyShift action_129-action_206 (121) = happyShift action_103-action_206 (23) = happyGoto action_104-action_206 (26) = happyGoto action_105-action_206 (27) = happyGoto action_106-action_206 (29) = happyGoto action_107-action_206 (31) = happyGoto action_108-action_206 (32) = happyGoto action_109-action_206 (33) = happyGoto action_110-action_206 (34) = happyGoto action_111-action_206 (39) = happyGoto action_112-action_206 (42) = happyGoto action_263-action_206 (43) = happyGoto action_114-action_206 (44) = happyGoto action_115-action_206 (45) = happyGoto action_116-action_206 (46) = happyGoto action_117-action_206 (47) = happyGoto action_118-action_206 (48) = happyGoto action_87-action_206 _ = happyReduce_60--action_207 (67) = happyShift action_39-action_207 (68) = happyShift action_93-action_207 (69) = happyShift action_119-action_207 (72) = happyShift action_95-action_207 (79) = happyShift action_120-action_207 (81) = happyShift action_121-action_207 (89) = happyShift action_122-action_207 (90) = happyShift action_123-action_207 (91) = happyShift action_96-action_207 (92) = happyShift action_97-action_207 (93) = happyShift action_124-action_207 (94) = happyShift action_99-action_207 (97) = happyShift action_100-action_207 (99) = happyShift action_125-action_207 (101) = happyShift action_126-action_207 (103) = happyShift action_127-action_207 (105) = happyShift action_128-action_207 (109) = happyShift action_57-action_207 (113) = happyShift action_58-action_207 (114) = happyShift action_59-action_207 (115) = happyShift action_60-action_207 (117) = happyShift action_61-action_207 (118) = happyShift action_62-action_207 (120) = happyShift action_129-action_207 (121) = happyShift action_103-action_207 (23) = happyGoto action_104-action_207 (26) = happyGoto action_105-action_207 (27) = happyGoto action_106-action_207 (29) = happyGoto action_107-action_207 (31) = happyGoto action_108-action_207 (32) = happyGoto action_109-action_207 (33) = happyGoto action_110-action_207 (34) = happyGoto action_111-action_207 (39) = happyGoto action_112-action_207 (42) = happyGoto action_262-action_207 (43) = happyGoto action_114-action_207 (44) = happyGoto action_115-action_207 (45) = happyGoto action_116-action_207 (46) = happyGoto action_117-action_207 (47) = happyGoto action_118-action_207 (48) = happyGoto action_87-action_207 _ = happyReduce_60--action_208 (67) = happyShift action_39-action_208 (68) = happyShift action_93-action_208 (69) = happyShift action_119-action_208 (72) = happyShift action_95-action_208 (89) = happyShift action_122-action_208 (90) = happyShift action_123-action_208 (91) = happyShift action_96-action_208 (92) = happyShift action_97-action_208 (93) = happyShift action_124-action_208 (94) = happyShift action_99-action_208 (97) = happyShift action_100-action_208 (99) = happyShift action_125-action_208 (101) = happyShift action_218-action_208 (103) = happyShift action_127-action_208 (105) = happyShift action_128-action_208 (109) = happyShift action_57-action_208 (113) = happyShift action_58-action_208 (114) = happyShift action_59-action_208 (115) = happyShift action_60-action_208 (117) = happyShift action_61-action_208 (118) = happyShift action_62-action_208 (121) = happyShift action_103-action_208 (23) = happyGoto action_104-action_208 (26) = happyGoto action_212-action_208 (27) = happyGoto action_213-action_208 (29) = happyGoto action_214-action_208 (32) = happyGoto action_215-action_208 (33) = happyGoto action_110-action_208 (34) = happyGoto action_111-action_208 (43) = happyGoto action_260-action_208 (44) = happyGoto action_115-action_208 (45) = happyGoto action_261-action_208 (46) = happyGoto action_117-action_208 (47) = happyGoto action_118-action_208 (48) = happyGoto action_87-action_208 _ = happyFail--action_209 (67) = happyShift action_39-action_209 (68) = happyShift action_93-action_209 (69) = happyShift action_119-action_209 (72) = happyShift action_95-action_209 (79) = happyShift action_120-action_209 (81) = happyShift action_121-action_209 (89) = happyShift action_122-action_209 (90) = happyShift action_123-action_209 (91) = happyShift action_96-action_209 (92) = happyShift action_97-action_209 (93) = happyShift action_124-action_209 (94) = happyShift action_99-action_209 (97) = happyShift action_100-action_209 (99) = happyShift action_125-action_209 (101) = happyShift action_126-action_209 (103) = happyShift action_127-action_209 (105) = happyShift action_128-action_209 (109) = happyShift action_57-action_209 (113) = happyShift action_58-action_209 (114) = happyShift action_59-action_209 (115) = happyShift action_60-action_209 (117) = happyShift action_61-action_209 (118) = happyShift action_62-action_209 (120) = happyShift action_129-action_209 (121) = happyShift action_103-action_209 (23) = happyGoto action_104-action_209 (26) = happyGoto action_105-action_209 (27) = happyGoto action_106-action_209 (29) = happyGoto action_107-action_209 (31) = happyGoto action_108-action_209 (32) = happyGoto action_109-action_209 (33) = happyGoto action_110-action_209 (34) = happyGoto action_111-action_209 (39) = happyGoto action_112-action_209 (42) = happyGoto action_259-action_209 (43) = happyGoto action_114-action_209 (44) = happyGoto action_115-action_209 (45) = happyGoto action_116-action_209 (46) = happyGoto action_117-action_209 (47) = happyGoto action_118-action_209 (48) = happyGoto action_87-action_209 _ = happyReduce_60--action_210 (105) = happyShift action_128-action_210 (27) = happyGoto action_258-action_210 _ = happyFail--action_211 (105) = happyShift action_128-action_211 (27) = happyGoto action_257-action_211 _ = happyFail--action_212 (67) = happyShift action_39-action_212 (68) = happyShift action_93-action_212 (69) = happyShift action_119-action_212 (72) = happyShift action_95-action_212 (89) = happyShift action_122-action_212 (90) = happyShift action_123-action_212 (91) = happyShift action_96-action_212 (92) = happyShift action_97-action_212 (93) = happyShift action_124-action_212 (94) = happyShift action_99-action_212 (97) = happyShift action_100-action_212 (103) = happyShift action_256-action_212 (121) = happyShift action_103-action_212 (23) = happyGoto action_104-action_212 (45) = happyGoto action_255-action_212 (46) = happyGoto action_117-action_212 (47) = happyGoto action_118-action_212 (48) = happyGoto action_87-action_212 _ = happyFail--action_213 (97) = happyShift action_210-action_213 (111) = happyShift action_211-action_213 _ = happyReduce_116--action_214 _ = happyReduce_117--action_215 _ = happyReduce_115--action_216 _ = happyReduce_94--action_217 (119) = happyReduce_114-action_217 _ = happyReduce_110--action_218 (67) = happyShift action_39-action_218 (68) = happyShift action_93-action_218 (69) = happyShift action_119-action_218 (72) = happyShift action_95-action_218 (79) = happyShift action_120-action_218 (81) = happyShift action_121-action_218 (89) = happyShift action_122-action_218 (90) = happyShift action_123-action_218 (91) = happyShift action_96-action_218 (92) = happyShift action_97-action_218 (93) = happyShift action_124-action_218 (94) = happyShift action_99-action_218 (97) = happyShift action_100-action_218 (99) = happyShift action_125-action_218 (101) = happyShift action_126-action_218 (103) = happyShift action_127-action_218 (105) = happyShift action_128-action_218 (109) = happyShift action_57-action_218 (113) = happyShift action_58-action_218 (114) = happyShift action_59-action_218 (115) = happyShift action_60-action_218 (117) = happyShift action_61-action_218 (118) = happyShift action_62-action_218 (120) = happyShift action_129-action_218 (121) = happyShift action_103-action_218 (23) = happyGoto action_187-action_218 (25) = happyGoto action_159-action_218 (26) = happyGoto action_105-action_218 (27) = happyGoto action_106-action_218 (29) = happyGoto action_107-action_218 (31) = happyGoto action_108-action_218 (32) = happyGoto action_109-action_218 (33) = happyGoto action_110-action_218 (34) = happyGoto action_111-action_218 (39) = happyGoto action_112-action_218 (42) = happyGoto action_254-action_218 (43) = happyGoto action_114-action_218 (44) = happyGoto action_115-action_218 (45) = happyGoto action_116-action_218 (46) = happyGoto action_117-action_218 (47) = happyGoto action_118-action_218 (48) = happyGoto action_87-action_218 _ = happyReduce_60--action_219 (67) = happyShift action_39-action_219 (68) = happyShift action_93-action_219 (69) = happyShift action_119-action_219 (72) = happyShift action_95-action_219 (79) = happyShift action_120-action_219 (81) = happyShift action_121-action_219 (89) = happyShift action_122-action_219 (90) = happyShift action_123-action_219 (91) = happyShift action_96-action_219 (92) = happyShift action_97-action_219 (93) = happyShift action_124-action_219 (94) = happyShift action_99-action_219 (97) = happyShift action_100-action_219 (99) = happyShift action_125-action_219 (101) = happyShift action_126-action_219 (103) = happyShift action_127-action_219 (105) = happyShift action_128-action_219 (109) = happyShift action_57-action_219 (113) = happyShift action_58-action_219 (114) = happyShift action_59-action_219 (115) = happyShift action_60-action_219 (117) = happyShift action_61-action_219 (118) = happyShift action_62-action_219 (120) = happyShift action_129-action_219 (121) = happyShift action_103-action_219 (23) = happyGoto action_252-action_219 (26) = happyGoto action_105-action_219 (27) = happyGoto action_106-action_219 (29) = happyGoto action_107-action_219 (30) = happyGoto action_253-action_219 (31) = happyGoto action_108-action_219 (32) = happyGoto action_109-action_219 (33) = happyGoto action_110-action_219 (34) = happyGoto action_111-action_219 (39) = happyGoto action_112-action_219 (40) = happyGoto action_185-action_219 (41) = happyGoto action_186-action_219 (42) = happyGoto action_157-action_219 (43) = happyGoto action_114-action_219 (44) = happyGoto action_115-action_219 (45) = happyGoto action_116-action_219 (46) = happyGoto action_117-action_219 (47) = happyGoto action_118-action_219 (48) = happyGoto action_87-action_219 _ = happyReduce_60--action_220 (67) = happyReduce_177-action_220 (70) = happyReduce_177-action_220 (71) = happyReduce_177-action_220 (72) = happyReduce_177-action_220 (73) = happyReduce_177-action_220 (75) = happyReduce_177-action_220 (76) = happyReduce_177-action_220 (77) = happyReduce_177-action_220 (78) = happyReduce_177-action_220 (81) = happyReduce_177-action_220 (83) = happyReduce_177-action_220 (84) = happyReduce_177-action_220 (85) = happyReduce_177-action_220 (86) = happyReduce_177-action_220 (87) = happyReduce_177-action_220 (93) = happyReduce_177-action_220 (95) = happyReduce_177-action_220 (100) = happyReduce_177-action_220 (103) = happyReduce_177-action_220 (104) = happyReduce_177-action_220 (106) = happyReduce_177-action_220 (107) = happyReduce_177-action_220 (109) = happyReduce_177-action_220 (110) = happyReduce_177-action_220 (112) = happyReduce_177-action_220 (122) = happyReduce_177-action_220 _ = happyReduce_177--action_221 _ = happyReduce_166--action_222 _ = happyReduce_165--action_223 (98) = happyShift action_240-action_223 _ = happyReduce_123--action_224 (104) = happyShift action_251-action_224 _ = happyFail--action_225 (67) = happyShift action_39-action_225 (68) = happyShift action_93-action_225 (69) = happyShift action_119-action_225 (72) = happyShift action_95-action_225 (79) = happyShift action_120-action_225 (81) = happyShift action_121-action_225 (89) = happyShift action_122-action_225 (90) = happyShift action_123-action_225 (91) = happyShift action_96-action_225 (92) = happyShift action_97-action_225 (93) = happyShift action_98-action_225 (94) = happyShift action_99-action_225 (97) = happyShift action_100-action_225 (99) = happyShift action_125-action_225 (101) = happyShift action_126-action_225 (103) = happyShift action_225-action_225 (104) = happyShift action_226-action_225 (105) = happyShift action_128-action_225 (109) = happyShift action_227-action_225 (113) = happyShift action_58-action_225 (114) = happyShift action_59-action_225 (115) = happyShift action_60-action_225 (117) = happyShift action_61-action_225 (118) = happyShift action_62-action_225 (120) = happyShift action_129-action_225 (121) = happyShift action_103-action_225 (23) = happyGoto action_250-action_225 (26) = happyGoto action_105-action_225 (27) = happyGoto action_106-action_225 (29) = happyGoto action_107-action_225 (30) = happyGoto action_155-action_225 (31) = happyGoto action_108-action_225 (32) = happyGoto action_109-action_225 (33) = happyGoto action_110-action_225 (34) = happyGoto action_111-action_225 (39) = happyGoto action_112-action_225 (40) = happyGoto action_185-action_225 (41) = happyGoto action_186-action_225 (42) = happyGoto action_157-action_225 (43) = happyGoto action_114-action_225 (44) = happyGoto action_115-action_225 (45) = happyGoto action_116-action_225 (46) = happyGoto action_117-action_225 (47) = happyGoto action_223-action_225 (48) = happyGoto action_87-action_225 (58) = happyGoto action_88-action_225 (59) = happyGoto action_224-action_225 (60) = happyGoto action_90-action_225 (61) = happyGoto action_91-action_225 (62) = happyGoto action_92-action_225 _ = happyReduce_60--action_226 _ = happyReduce_161--action_227 (67) = happyShift action_39-action_227 (68) = happyShift action_93-action_227 (69) = happyShift action_94-action_227 (72) = happyShift action_95-action_227 (89) = happyShift action_222-action_227 (91) = happyShift action_96-action_227 (92) = happyShift action_97-action_227 (93) = happyShift action_124-action_227 (94) = happyShift action_99-action_227 (97) = happyShift action_100-action_227 (103) = happyShift action_192-action_227 (121) = happyShift action_103-action_227 (23) = happyGoto action_220-action_227 (47) = happyGoto action_221-action_227 (48) = happyGoto action_87-action_227 _ = happyReduce_51--action_228 (108) = happyShift action_249-action_228 _ = happyFail--action_229 (67) = happyReduce_176-action_229 (70) = happyReduce_176-action_229 (71) = happyReduce_176-action_229 (72) = happyReduce_176-action_229 (73) = happyReduce_176-action_229 (75) = happyReduce_176-action_229 (76) = happyReduce_176-action_229 (77) = happyReduce_176-action_229 (78) = happyReduce_176-action_229 (81) = happyReduce_176-action_229 (83) = happyReduce_176-action_229 (84) = happyReduce_176-action_229 (85) = happyReduce_176-action_229 (86) = happyReduce_176-action_229 (87) = happyReduce_176-action_229 (93) = happyReduce_176-action_229 (95) = happyReduce_176-action_229 (100) = happyReduce_176-action_229 (103) = happyReduce_176-action_229 (104) = happyReduce_176-action_229 (106) = happyReduce_176-action_229 (107) = happyReduce_176-action_229 (109) = happyReduce_176-action_229 (112) = happyReduce_176-action_229 (122) = happyReduce_176-action_229 _ = happyReduce_138--action_230 _ = happyReduce_164--action_231 _ = happyReduce_163--action_232 (67) = happyShift action_39-action_232 (23) = happyGoto action_37-action_232 (24) = happyGoto action_246-action_232 (49) = happyGoto action_247-action_232 (50) = happyGoto action_248-action_232 _ = happyReduce_141--action_233 _ = happyReduce_176--action_234 _ = happyReduce_174--action_235 (67) = happyShift action_39-action_235 (93) = happyShift action_235-action_235 (103) = happyShift action_236-action_235 (109) = happyShift action_102-action_235 (23) = happyGoto action_233-action_235 (58) = happyGoto action_230-action_235 (62) = happyGoto action_231-action_235 _ = happyFail--action_236 (67) = happyShift action_39-action_236 (68) = happyShift action_93-action_236 (69) = happyShift action_94-action_236 (72) = happyShift action_95-action_236 (91) = happyShift action_96-action_236 (92) = happyShift action_97-action_236 (93) = happyShift action_98-action_236 (94) = happyShift action_99-action_236 (97) = happyShift action_100-action_236 (103) = happyShift action_101-action_236 (104) = happyShift action_226-action_236 (109) = happyShift action_102-action_236 (121) = happyShift action_103-action_236 (23) = happyGoto action_85-action_236 (47) = happyGoto action_86-action_236 (48) = happyGoto action_87-action_236 (58) = happyGoto action_88-action_236 (59) = happyGoto action_224-action_236 (60) = happyGoto action_90-action_236 (61) = happyGoto action_91-action_236 (62) = happyGoto action_92-action_236 _ = happyFail--action_237 _ = happyReduce_175--action_238 (67) = happyShift action_39-action_238 (68) = happyShift action_93-action_238 (69) = happyShift action_94-action_238 (72) = happyShift action_95-action_238 (91) = happyShift action_96-action_238 (92) = happyShift action_97-action_238 (93) = happyShift action_98-action_238 (94) = happyShift action_99-action_238 (97) = happyShift action_100-action_238 (103) = happyShift action_101-action_238 (109) = happyShift action_102-action_238 (121) = happyShift action_103-action_238 (23) = happyGoto action_85-action_238 (47) = happyGoto action_86-action_238 (48) = happyGoto action_87-action_238 (58) = happyGoto action_88-action_238 (60) = happyGoto action_245-action_238 (61) = happyGoto action_91-action_238 (62) = happyGoto action_92-action_238 _ = happyFail--action_239 (67) = happyShift action_39-action_239 (68) = happyShift action_93-action_239 (69) = happyShift action_94-action_239 (72) = happyShift action_95-action_239 (91) = happyShift action_96-action_239 (92) = happyShift action_97-action_239 (93) = happyShift action_98-action_239 (94) = happyShift action_99-action_239 (97) = happyShift action_100-action_239 (103) = happyShift action_101-action_239 (109) = happyShift action_102-action_239 (121) = happyShift action_103-action_239 (23) = happyGoto action_85-action_239 (47) = happyGoto action_86-action_239 (48) = happyGoto action_87-action_239 (58) = happyGoto action_88-action_239 (59) = happyGoto action_244-action_239 (60) = happyGoto action_90-action_239 (61) = happyGoto action_91-action_239 (62) = happyGoto action_92-action_239 _ = happyFail--action_240 (67) = happyShift action_39-action_240 (23) = happyGoto action_243-action_240 _ = happyFail--action_241 (67) = happyShift action_39-action_241 (68) = happyShift action_93-action_241 (69) = happyShift action_94-action_241 (72) = happyShift action_95-action_241 (91) = happyShift action_96-action_241 (92) = happyShift action_97-action_241 (93) = happyShift action_124-action_241 (94) = happyShift action_99-action_241 (97) = happyShift action_100-action_241 (103) = happyShift action_192-action_241 (121) = happyShift action_103-action_241 (23) = happyGoto action_104-action_241 (47) = happyGoto action_242-action_241 (48) = happyGoto action_87-action_241 _ = happyFail--action_242 _ = happyReduce_171--action_243 _ = happyReduce_170--action_244 _ = happyReduce_167--action_245 _ = happyReduce_173--action_246 (112) = happyShift action_346-action_246 _ = happyFail--action_247 (100) = happyShift action_345-action_247 _ = happyFail--action_248 (107) = happyShift action_344-action_248 _ = happyReduce_140--action_249 (67) = happyShift action_39-action_249 (68) = happyShift action_93-action_249 (69) = happyShift action_119-action_249 (72) = happyShift action_95-action_249 (79) = happyShift action_120-action_249 (81) = happyShift action_121-action_249 (89) = happyShift action_122-action_249 (90) = happyShift action_123-action_249 (91) = happyShift action_96-action_249 (92) = happyShift action_97-action_249 (93) = happyShift action_124-action_249 (94) = happyShift action_99-action_249 (97) = happyShift action_100-action_249 (99) = happyShift action_125-action_249 (101) = happyShift action_126-action_249 (103) = happyShift action_127-action_249 (105) = happyShift action_128-action_249 (109) = happyShift action_57-action_249 (113) = happyShift action_58-action_249 (114) = happyShift action_59-action_249 (115) = happyShift action_60-action_249 (117) = happyShift action_61-action_249 (118) = happyShift action_62-action_249 (120) = happyShift action_129-action_249 (121) = happyShift action_103-action_249 (23) = happyGoto action_104-action_249 (26) = happyGoto action_105-action_249 (27) = happyGoto action_106-action_249 (29) = happyGoto action_107-action_249 (31) = happyGoto action_108-action_249 (32) = happyGoto action_109-action_249 (33) = happyGoto action_110-action_249 (34) = happyGoto action_111-action_249 (39) = happyGoto action_112-action_249 (42) = happyGoto action_343-action_249 (43) = happyGoto action_114-action_249 (44) = happyGoto action_115-action_249 (45) = happyGoto action_116-action_249 (46) = happyGoto action_117-action_249 (47) = happyGoto action_118-action_249 (48) = happyGoto action_87-action_249 _ = happyReduce_60--action_250 (67) = happyReduce_176-action_250 (93) = happyReduce_176-action_250 (97) = happyShift action_342-action_250 (103) = happyReduce_176-action_250 (104) = happyReduce_176-action_250 (106) = happyReduce_176-action_250 (109) = happyReduce_176-action_250 (111) = happyShift action_304-action_250 _ = happyReduce_138--action_251 _ = happyReduce_162--action_252 (97) = happyShift action_340-action_252 (111) = happyShift action_341-action_252 _ = happyReduce_138--action_253 (108) = happyShift action_339-action_253 _ = happyFail--action_254 (102) = happyShift action_338-action_254 _ = happyFail--action_255 _ = happyReduce_114--action_256 (67) = happyShift action_39-action_256 (68) = happyShift action_93-action_256 (69) = happyShift action_119-action_256 (72) = happyShift action_95-action_256 (79) = happyShift action_120-action_256 (81) = happyShift action_121-action_256 (89) = happyShift action_122-action_256 (90) = happyShift action_123-action_256 (91) = happyShift action_96-action_256 (92) = happyShift action_97-action_256 (93) = happyShift action_124-action_256 (94) = happyShift action_99-action_256 (97) = happyShift action_100-action_256 (99) = happyShift action_125-action_256 (101) = happyShift action_126-action_256 (103) = happyShift action_127-action_256 (105) = happyShift action_128-action_256 (109) = happyShift action_57-action_256 (113) = happyShift action_58-action_256 (114) = happyShift action_59-action_256 (115) = happyShift action_60-action_256 (117) = happyShift action_61-action_256 (118) = happyShift action_62-action_256 (120) = happyShift action_129-action_256 (121) = happyShift action_103-action_256 (23) = happyGoto action_296-action_256 (26) = happyGoto action_105-action_256 (27) = happyGoto action_106-action_256 (29) = happyGoto action_107-action_256 (30) = happyGoto action_297-action_256 (31) = happyGoto action_108-action_256 (32) = happyGoto action_109-action_256 (33) = happyGoto action_110-action_256 (34) = happyGoto action_111-action_256 (39) = happyGoto action_112-action_256 (40) = happyGoto action_185-action_256 (41) = happyGoto action_186-action_256 (42) = happyGoto action_157-action_256 (43) = happyGoto action_114-action_256 (44) = happyGoto action_115-action_256 (45) = happyGoto action_116-action_256 (46) = happyGoto action_117-action_256 (47) = happyGoto action_118-action_256 (48) = happyGoto action_87-action_256 _ = happyReduce_60--action_257 _ = happyReduce_58--action_258 _ = happyReduce_57--action_259 _ = happyReduce_102--action_260 _ = happyReduce_111--action_261 (119) = happyReduce_112-action_261 _ = happyReduce_110--action_262 _ = happyReduce_107--action_263 _ = happyReduce_109--action_264 _ = happyReduce_108--action_265 _ = happyReduce_125--action_266 _ = happyReduce_122--action_267 (99) = happyShift action_337-action_267 _ = happyFail--action_268 (102) = happyShift action_165-action_268 (108) = happyShift action_336-action_268 _ = happyFail--action_269 (67) = happyShift action_39-action_269 (68) = happyShift action_93-action_269 (69) = happyShift action_119-action_269 (72) = happyShift action_95-action_269 (79) = happyShift action_120-action_269 (81) = happyShift action_121-action_269 (89) = happyShift action_122-action_269 (90) = happyShift action_123-action_269 (91) = happyShift action_96-action_269 (92) = happyShift action_97-action_269 (93) = happyShift action_124-action_269 (94) = happyShift action_99-action_269 (97) = happyShift action_100-action_269 (99) = happyShift action_125-action_269 (101) = happyShift action_126-action_269 (103) = happyShift action_127-action_269 (105) = happyShift action_128-action_269 (109) = happyShift action_57-action_269 (113) = happyShift action_58-action_269 (114) = happyShift action_59-action_269 (115) = happyShift action_60-action_269 (117) = happyShift action_61-action_269 (118) = happyShift action_62-action_269 (120) = happyShift action_129-action_269 (121) = happyShift action_103-action_269 (23) = happyGoto action_104-action_269 (26) = happyGoto action_105-action_269 (27) = happyGoto action_106-action_269 (29) = happyGoto action_107-action_269 (31) = happyGoto action_108-action_269 (32) = happyGoto action_109-action_269 (33) = happyGoto action_110-action_269 (34) = happyGoto action_111-action_269 (39) = happyGoto action_112-action_269 (40) = happyGoto action_335-action_269 (41) = happyGoto action_200-action_269 (42) = happyGoto action_157-action_269 (43) = happyGoto action_114-action_269 (44) = happyGoto action_115-action_269 (45) = happyGoto action_116-action_269 (46) = happyGoto action_117-action_269 (47) = happyGoto action_118-action_269 (48) = happyGoto action_87-action_269 _ = happyReduce_60--action_270 (67) = happyShift action_39-action_270 (23) = happyGoto action_334-action_270 _ = happyFail--action_271 (67) = happyShift action_39-action_271 (68) = happyShift action_93-action_271 (69) = happyShift action_119-action_271 (72) = happyShift action_95-action_271 (79) = happyShift action_120-action_271 (81) = happyShift action_121-action_271 (89) = happyShift action_122-action_271 (90) = happyShift action_123-action_271 (91) = happyShift action_96-action_271 (92) = happyShift action_97-action_271 (93) = happyShift action_124-action_271 (94) = happyShift action_99-action_271 (97) = happyShift action_100-action_271 (99) = happyShift action_125-action_271 (101) = happyShift action_126-action_271 (103) = happyShift action_127-action_271 (105) = happyShift action_128-action_271 (109) = happyShift action_57-action_271 (113) = happyShift action_58-action_271 (114) = happyShift action_59-action_271 (115) = happyShift action_60-action_271 (117) = happyShift action_61-action_271 (118) = happyShift action_62-action_271 (120) = happyShift action_129-action_271 (121) = happyShift action_103-action_271 (23) = happyGoto action_104-action_271 (26) = happyGoto action_105-action_271 (27) = happyGoto action_106-action_271 (29) = happyGoto action_107-action_271 (31) = happyGoto action_108-action_271 (32) = happyGoto action_109-action_271 (33) = happyGoto action_110-action_271 (34) = happyGoto action_111-action_271 (39) = happyGoto action_112-action_271 (42) = happyGoto action_333-action_271 (43) = happyGoto action_114-action_271 (44) = happyGoto action_115-action_271 (45) = happyGoto action_116-action_271 (46) = happyGoto action_117-action_271 (47) = happyGoto action_118-action_271 (48) = happyGoto action_87-action_271 _ = happyReduce_60--action_272 (67) = happyShift action_39-action_272 (68) = happyShift action_93-action_272 (69) = happyShift action_119-action_272 (72) = happyShift action_95-action_272 (79) = happyShift action_120-action_272 (81) = happyShift action_121-action_272 (89) = happyShift action_122-action_272 (90) = happyShift action_123-action_272 (91) = happyShift action_96-action_272 (92) = happyShift action_97-action_272 (93) = happyShift action_124-action_272 (94) = happyShift action_99-action_272 (97) = happyShift action_100-action_272 (99) = happyShift action_125-action_272 (101) = happyShift action_126-action_272 (103) = happyShift action_127-action_272 (105) = happyShift action_128-action_272 (109) = happyShift action_57-action_272 (113) = happyShift action_58-action_272 (114) = happyShift action_59-action_272 (115) = happyShift action_60-action_272 (117) = happyShift action_61-action_272 (118) = happyShift action_62-action_272 (120) = happyShift action_129-action_272 (121) = happyShift action_103-action_272 (23) = happyGoto action_104-action_272 (26) = happyGoto action_105-action_272 (27) = happyGoto action_106-action_272 (29) = happyGoto action_107-action_272 (31) = happyGoto action_108-action_272 (32) = happyGoto action_109-action_272 (33) = happyGoto action_110-action_272 (34) = happyGoto action_111-action_272 (39) = happyGoto action_112-action_272 (42) = happyGoto action_332-action_272 (43) = happyGoto action_114-action_272 (44) = happyGoto action_115-action_272 (45) = happyGoto action_116-action_272 (46) = happyGoto action_117-action_272 (47) = happyGoto action_118-action_272 (48) = happyGoto action_87-action_272 _ = happyReduce_60--action_273 (67) = happyShift action_39-action_273 (68) = happyShift action_93-action_273 (69) = happyShift action_119-action_273 (72) = happyShift action_95-action_273 (79) = happyShift action_120-action_273 (81) = happyShift action_121-action_273 (89) = happyShift action_122-action_273 (90) = happyShift action_123-action_273 (91) = happyShift action_96-action_273 (92) = happyShift action_97-action_273 (93) = happyShift action_124-action_273 (94) = happyShift action_99-action_273 (97) = happyShift action_100-action_273 (99) = happyShift action_125-action_273 (101) = happyShift action_126-action_273 (103) = happyShift action_127-action_273 (105) = happyShift action_128-action_273 (109) = happyShift action_57-action_273 (113) = happyShift action_58-action_273 (114) = happyShift action_59-action_273 (115) = happyShift action_60-action_273 (117) = happyShift action_61-action_273 (118) = happyShift action_62-action_273 (120) = happyShift action_129-action_273 (121) = happyShift action_103-action_273 (23) = happyGoto action_104-action_273 (26) = happyGoto action_105-action_273 (27) = happyGoto action_106-action_273 (29) = happyGoto action_107-action_273 (31) = happyGoto action_108-action_273 (32) = happyGoto action_109-action_273 (33) = happyGoto action_110-action_273 (34) = happyGoto action_111-action_273 (39) = happyGoto action_112-action_273 (42) = happyGoto action_331-action_273 (43) = happyGoto action_114-action_273 (44) = happyGoto action_115-action_273 (45) = happyGoto action_116-action_273 (46) = happyGoto action_117-action_273 (47) = happyGoto action_118-action_273 (48) = happyGoto action_87-action_273 _ = happyReduce_60--action_274 (119) = happyReduce_113-action_274 _ = happyReduce_93--action_275 (67) = happyShift action_39-action_275 (68) = happyShift action_93-action_275 (69) = happyShift action_119-action_275 (72) = happyShift action_95-action_275 (79) = happyShift action_120-action_275 (81) = happyShift action_121-action_275 (89) = happyShift action_122-action_275 (90) = happyShift action_123-action_275 (91) = happyShift action_96-action_275 (92) = happyShift action_97-action_275 (93) = happyShift action_124-action_275 (94) = happyShift action_99-action_275 (97) = happyShift action_100-action_275 (99) = happyShift action_125-action_275 (101) = happyShift action_126-action_275 (103) = happyShift action_127-action_275 (105) = happyShift action_128-action_275 (109) = happyShift action_57-action_275 (113) = happyShift action_58-action_275 (114) = happyShift action_59-action_275 (115) = happyShift action_60-action_275 (117) = happyShift action_61-action_275 (118) = happyShift action_62-action_275 (120) = happyShift action_129-action_275 (121) = happyShift action_103-action_275 (23) = happyGoto action_104-action_275 (26) = happyGoto action_105-action_275 (27) = happyGoto action_106-action_275 (29) = happyGoto action_107-action_275 (31) = happyGoto action_108-action_275 (32) = happyGoto action_109-action_275 (33) = happyGoto action_110-action_275 (34) = happyGoto action_111-action_275 (39) = happyGoto action_112-action_275 (42) = happyGoto action_330-action_275 (43) = happyGoto action_114-action_275 (44) = happyGoto action_115-action_275 (45) = happyGoto action_116-action_275 (46) = happyGoto action_117-action_275 (47) = happyGoto action_118-action_275 (48) = happyGoto action_87-action_275 _ = happyReduce_60--action_276 (67) = happyShift action_39-action_276 (68) = happyShift action_93-action_276 (69) = happyShift action_119-action_276 (72) = happyShift action_95-action_276 (79) = happyShift action_120-action_276 (81) = happyShift action_121-action_276 (89) = happyShift action_122-action_276 (90) = happyShift action_123-action_276 (91) = happyShift action_96-action_276 (92) = happyShift action_97-action_276 (93) = happyShift action_124-action_276 (94) = happyShift action_99-action_276 (97) = happyShift action_100-action_276 (99) = happyShift action_125-action_276 (101) = happyShift action_126-action_276 (103) = happyShift action_127-action_276 (105) = happyShift action_128-action_276 (109) = happyShift action_57-action_276 (113) = happyShift action_58-action_276 (114) = happyShift action_59-action_276 (115) = happyShift action_60-action_276 (117) = happyShift action_61-action_276 (118) = happyShift action_62-action_276 (120) = happyShift action_129-action_276 (121) = happyShift action_103-action_276 (23) = happyGoto action_104-action_276 (26) = happyGoto action_105-action_276 (27) = happyGoto action_106-action_276 (29) = happyGoto action_107-action_276 (31) = happyGoto action_108-action_276 (32) = happyGoto action_109-action_276 (33) = happyGoto action_110-action_276 (34) = happyGoto action_111-action_276 (39) = happyGoto action_112-action_276 (42) = happyGoto action_329-action_276 (43) = happyGoto action_114-action_276 (44) = happyGoto action_115-action_276 (45) = happyGoto action_116-action_276 (46) = happyGoto action_117-action_276 (47) = happyGoto action_118-action_276 (48) = happyGoto action_87-action_276 _ = happyReduce_60--action_277 _ = happyReduce_132--action_278 _ = happyReduce_55--action_279 (67) = happyShift action_39-action_279 (68) = happyShift action_93-action_279 (69) = happyShift action_119-action_279 (72) = happyShift action_95-action_279 (79) = happyShift action_120-action_279 (81) = happyShift action_121-action_279 (89) = happyShift action_122-action_279 (90) = happyShift action_123-action_279 (91) = happyShift action_96-action_279 (92) = happyShift action_97-action_279 (93) = happyShift action_124-action_279 (94) = happyShift action_99-action_279 (97) = happyShift action_100-action_279 (99) = happyShift action_125-action_279 (101) = happyShift action_126-action_279 (103) = happyShift action_127-action_279 (105) = happyShift action_128-action_279 (109) = happyShift action_57-action_279 (113) = happyShift action_58-action_279 (114) = happyShift action_59-action_279 (115) = happyShift action_60-action_279 (117) = happyShift action_61-action_279 (118) = happyShift action_62-action_279 (120) = happyShift action_129-action_279 (121) = happyShift action_103-action_279 (23) = happyGoto action_104-action_279 (26) = happyGoto action_105-action_279 (27) = happyGoto action_106-action_279 (28) = happyGoto action_328-action_279 (29) = happyGoto action_107-action_279 (31) = happyGoto action_108-action_279 (32) = happyGoto action_109-action_279 (33) = happyGoto action_110-action_279 (34) = happyGoto action_111-action_279 (39) = happyGoto action_112-action_279 (42) = happyGoto action_184-action_279 (43) = happyGoto action_114-action_279 (44) = happyGoto action_115-action_279 (45) = happyGoto action_116-action_279 (46) = happyGoto action_117-action_279 (47) = happyGoto action_118-action_279 (48) = happyGoto action_87-action_279 _ = happyReduce_60--action_280 (67) = happyShift action_39-action_280 (68) = happyShift action_93-action_280 (69) = happyShift action_119-action_280 (72) = happyShift action_95-action_280 (79) = happyShift action_120-action_280 (81) = happyShift action_121-action_280 (89) = happyShift action_122-action_280 (90) = happyShift action_123-action_280 (91) = happyShift action_96-action_280 (92) = happyShift action_97-action_280 (93) = happyShift action_124-action_280 (94) = happyShift action_99-action_280 (97) = happyShift action_100-action_280 (99) = happyShift action_125-action_280 (101) = happyShift action_126-action_280 (103) = happyShift action_127-action_280 (105) = happyShift action_128-action_280 (109) = happyShift action_57-action_280 (113) = happyShift action_58-action_280 (114) = happyShift action_59-action_280 (115) = happyShift action_60-action_280 (117) = happyShift action_61-action_280 (118) = happyShift action_62-action_280 (120) = happyShift action_129-action_280 (121) = happyShift action_103-action_280 (23) = happyGoto action_104-action_280 (26) = happyGoto action_105-action_280 (27) = happyGoto action_106-action_280 (29) = happyGoto action_107-action_280 (31) = happyGoto action_108-action_280 (32) = happyGoto action_109-action_280 (33) = happyGoto action_110-action_280 (34) = happyGoto action_111-action_280 (39) = happyGoto action_112-action_280 (40) = happyGoto action_327-action_280 (41) = happyGoto action_200-action_280 (42) = happyGoto action_157-action_280 (43) = happyGoto action_114-action_280 (44) = happyGoto action_115-action_280 (45) = happyGoto action_116-action_280 (46) = happyGoto action_117-action_280 (47) = happyGoto action_118-action_280 (48) = happyGoto action_87-action_280 _ = happyReduce_60--action_281 _ = happyReduce_159--action_282 (67) = happyShift action_39-action_282 (68) = happyShift action_93-action_282 (69) = happyShift action_94-action_282 (72) = happyShift action_95-action_282 (91) = happyShift action_96-action_282 (92) = happyShift action_97-action_282 (93) = happyShift action_98-action_282 (94) = happyShift action_99-action_282 (97) = happyShift action_100-action_282 (103) = happyShift action_101-action_282 (109) = happyShift action_102-action_282 (121) = happyShift action_103-action_282 (23) = happyGoto action_85-action_282 (47) = happyGoto action_86-action_282 (48) = happyGoto action_87-action_282 (58) = happyGoto action_88-action_282 (60) = happyGoto action_326-action_282 (61) = happyGoto action_91-action_282 (62) = happyGoto action_92-action_282 _ = happyFail--action_283 (67) = happyShift action_39-action_283 (68) = happyShift action_93-action_283 (69) = happyShift action_119-action_283 (72) = happyShift action_95-action_283 (79) = happyShift action_120-action_283 (81) = happyShift action_121-action_283 (89) = happyShift action_122-action_283 (90) = happyShift action_123-action_283 (91) = happyShift action_96-action_283 (92) = happyShift action_97-action_283 (93) = happyShift action_124-action_283 (94) = happyShift action_99-action_283 (97) = happyShift action_100-action_283 (99) = happyShift action_125-action_283 (101) = happyShift action_126-action_283 (103) = happyShift action_127-action_283 (105) = happyShift action_128-action_283 (109) = happyShift action_57-action_283 (113) = happyShift action_58-action_283 (114) = happyShift action_59-action_283 (115) = happyShift action_60-action_283 (117) = happyShift action_61-action_283 (118) = happyShift action_62-action_283 (120) = happyShift action_129-action_283 (121) = happyShift action_103-action_283 (23) = happyGoto action_104-action_283 (26) = happyGoto action_105-action_283 (27) = happyGoto action_106-action_283 (29) = happyGoto action_107-action_283 (31) = happyGoto action_108-action_283 (32) = happyGoto action_109-action_283 (33) = happyGoto action_110-action_283 (34) = happyGoto action_111-action_283 (39) = happyGoto action_112-action_283 (40) = happyGoto action_325-action_283 (41) = happyGoto action_200-action_283 (42) = happyGoto action_157-action_283 (43) = happyGoto action_114-action_283 (44) = happyGoto action_115-action_283 (45) = happyGoto action_116-action_283 (46) = happyGoto action_117-action_283 (47) = happyGoto action_118-action_283 (48) = happyGoto action_87-action_283 _ = happyReduce_60--action_284 _ = happyReduce_179--action_285 (74) = happyShift action_319-action_285 (22) = happyGoto action_324-action_285 _ = happyReduce_41--action_286 (67) = happyShift action_39-action_286 (23) = happyGoto action_168-action_286 (52) = happyGoto action_323-action_286 _ = happyFail--action_287 _ = happyReduce_47--action_288 (104) = happyShift action_322-action_288 _ = happyFail--action_289 (67) = happyShift action_39-action_289 (68) = happyShift action_93-action_289 (69) = happyShift action_119-action_289 (72) = happyShift action_95-action_289 (79) = happyShift action_120-action_289 (81) = happyShift action_121-action_289 (89) = happyShift action_122-action_289 (90) = happyShift action_123-action_289 (91) = happyShift action_96-action_289 (92) = happyShift action_97-action_289 (93) = happyShift action_124-action_289 (94) = happyShift action_99-action_289 (97) = happyShift action_100-action_289 (99) = happyShift action_125-action_289 (101) = happyShift action_126-action_289 (103) = happyShift action_127-action_289 (105) = happyShift action_128-action_289 (109) = happyShift action_57-action_289 (113) = happyShift action_58-action_289 (114) = happyShift action_59-action_289 (115) = happyShift action_60-action_289 (117) = happyShift action_61-action_289 (118) = happyShift action_62-action_289 (120) = happyShift action_129-action_289 (121) = happyShift action_103-action_289 (23) = happyGoto action_104-action_289 (26) = happyGoto action_105-action_289 (27) = happyGoto action_106-action_289 (29) = happyGoto action_107-action_289 (31) = happyGoto action_108-action_289 (32) = happyGoto action_109-action_289 (33) = happyGoto action_110-action_289 (34) = happyGoto action_111-action_289 (39) = happyGoto action_112-action_289 (42) = happyGoto action_321-action_289 (43) = happyGoto action_114-action_289 (44) = happyGoto action_115-action_289 (45) = happyGoto action_116-action_289 (46) = happyGoto action_117-action_289 (47) = happyGoto action_118-action_289 (48) = happyGoto action_87-action_289 _ = happyReduce_60--action_290 (102) = happyShift action_320-action_290 _ = happyFail--action_291 (74) = happyShift action_319-action_291 (22) = happyGoto action_318-action_291 _ = happyReduce_41--action_292 (67) = happyShift action_39-action_292 (23) = happyGoto action_168-action_292 (52) = happyGoto action_317-action_292 _ = happyReduce_147--action_293 (108) = happyShift action_316-action_293 _ = happyReduce_145--action_294 (67) = happyShift action_39-action_294 (23) = happyGoto action_168-action_294 (52) = happyGoto action_169-action_294 (53) = happyGoto action_315-action_294 _ = happyReduce_149--action_295 (67) = happyShift action_39-action_295 (68) = happyShift action_93-action_295 (69) = happyShift action_119-action_295 (72) = happyShift action_95-action_295 (79) = happyShift action_120-action_295 (81) = happyShift action_121-action_295 (89) = happyShift action_122-action_295 (90) = happyShift action_123-action_295 (91) = happyShift action_96-action_295 (92) = happyShift action_97-action_295 (93) = happyShift action_124-action_295 (94) = happyShift action_99-action_295 (97) = happyShift action_100-action_295 (99) = happyShift action_125-action_295 (101) = happyShift action_126-action_295 (103) = happyShift action_127-action_295 (105) = happyShift action_128-action_295 (109) = happyShift action_57-action_295 (113) = happyShift action_58-action_295 (114) = happyShift action_59-action_295 (115) = happyShift action_60-action_295 (117) = happyShift action_61-action_295 (118) = happyShift action_62-action_295 (120) = happyShift action_129-action_295 (121) = happyShift action_103-action_295 (23) = happyGoto action_104-action_295 (26) = happyGoto action_105-action_295 (27) = happyGoto action_106-action_295 (29) = happyGoto action_107-action_295 (31) = happyGoto action_108-action_295 (32) = happyGoto action_109-action_295 (33) = happyGoto action_110-action_295 (34) = happyGoto action_111-action_295 (39) = happyGoto action_112-action_295 (42) = happyGoto action_314-action_295 (43) = happyGoto action_114-action_295 (44) = happyGoto action_115-action_295 (45) = happyGoto action_116-action_295 (46) = happyGoto action_117-action_295 (47) = happyGoto action_118-action_295 (48) = happyGoto action_87-action_295 _ = happyReduce_60--action_296 (97) = happyShift action_312-action_296 (111) = happyShift action_313-action_296 _ = happyReduce_138--action_297 (108) = happyShift action_311-action_297 _ = happyFail--action_298 _ = happyReduce_39--action_299 (67) = happyShift action_39-action_299 (68) = happyShift action_93-action_299 (69) = happyShift action_119-action_299 (72) = happyShift action_95-action_299 (79) = happyShift action_120-action_299 (81) = happyShift action_121-action_299 (89) = happyShift action_122-action_299 (90) = happyShift action_123-action_299 (91) = happyShift action_96-action_299 (92) = happyShift action_97-action_299 (93) = happyShift action_124-action_299 (94) = happyShift action_99-action_299 (97) = happyShift action_100-action_299 (99) = happyShift action_125-action_299 (101) = happyShift action_126-action_299 (103) = happyShift action_127-action_299 (105) = happyShift action_128-action_299 (109) = happyShift action_57-action_299 (113) = happyShift action_58-action_299 (114) = happyShift action_59-action_299 (115) = happyShift action_60-action_299 (117) = happyShift action_61-action_299 (118) = happyShift action_62-action_299 (120) = happyShift action_129-action_299 (121) = happyShift action_103-action_299 (23) = happyGoto action_104-action_299 (26) = happyGoto action_105-action_299 (27) = happyGoto action_106-action_299 (29) = happyGoto action_107-action_299 (31) = happyGoto action_108-action_299 (32) = happyGoto action_109-action_299 (33) = happyGoto action_110-action_299 (34) = happyGoto action_111-action_299 (39) = happyGoto action_112-action_299 (40) = happyGoto action_310-action_299 (41) = happyGoto action_200-action_299 (42) = happyGoto action_157-action_299 (43) = happyGoto action_114-action_299 (44) = happyGoto action_115-action_299 (45) = happyGoto action_116-action_299 (46) = happyGoto action_117-action_299 (47) = happyGoto action_118-action_299 (48) = happyGoto action_87-action_299 _ = happyReduce_60--action_300 (67) = happyShift action_39-action_300 (68) = happyShift action_93-action_300 (69) = happyShift action_119-action_300 (72) = happyShift action_95-action_300 (79) = happyShift action_120-action_300 (81) = happyShift action_121-action_300 (89) = happyShift action_122-action_300 (90) = happyShift action_123-action_300 (91) = happyShift action_96-action_300 (92) = happyShift action_97-action_300 (93) = happyShift action_124-action_300 (94) = happyShift action_99-action_300 (97) = happyShift action_100-action_300 (99) = happyShift action_125-action_300 (101) = happyShift action_126-action_300 (103) = happyShift action_127-action_300 (105) = happyShift action_128-action_300 (109) = happyShift action_57-action_300 (113) = happyShift action_58-action_300 (114) = happyShift action_59-action_300 (115) = happyShift action_60-action_300 (117) = happyShift action_61-action_300 (118) = happyShift action_62-action_300 (120) = happyShift action_129-action_300 (121) = happyShift action_103-action_300 (23) = happyGoto action_104-action_300 (26) = happyGoto action_105-action_300 (27) = happyGoto action_106-action_300 (29) = happyGoto action_107-action_300 (31) = happyGoto action_108-action_300 (32) = happyGoto action_109-action_300 (33) = happyGoto action_110-action_300 (34) = happyGoto action_111-action_300 (39) = happyGoto action_112-action_300 (42) = happyGoto action_309-action_300 (43) = happyGoto action_114-action_300 (44) = happyGoto action_115-action_300 (45) = happyGoto action_116-action_300 (46) = happyGoto action_117-action_300 (47) = happyGoto action_118-action_300 (48) = happyGoto action_87-action_300 _ = happyReduce_60--action_301 (67) = happyShift action_39-action_301 (68) = happyShift action_93-action_301 (69) = happyShift action_119-action_301 (72) = happyShift action_95-action_301 (79) = happyShift action_120-action_301 (81) = happyShift action_121-action_301 (89) = happyShift action_122-action_301 (90) = happyShift action_123-action_301 (91) = happyShift action_96-action_301 (92) = happyShift action_97-action_301 (93) = happyShift action_124-action_301 (94) = happyShift action_99-action_301 (97) = happyShift action_100-action_301 (99) = happyShift action_125-action_301 (101) = happyShift action_126-action_301 (103) = happyShift action_127-action_301 (105) = happyShift action_128-action_301 (109) = happyShift action_57-action_301 (113) = happyShift action_58-action_301 (114) = happyShift action_59-action_301 (115) = happyShift action_60-action_301 (117) = happyShift action_61-action_301 (118) = happyShift action_62-action_301 (120) = happyShift action_129-action_301 (121) = happyShift action_103-action_301 (23) = happyGoto action_104-action_301 (26) = happyGoto action_105-action_301 (27) = happyGoto action_106-action_301 (29) = happyGoto action_107-action_301 (31) = happyGoto action_108-action_301 (32) = happyGoto action_109-action_301 (33) = happyGoto action_110-action_301 (34) = happyGoto action_111-action_301 (39) = happyGoto action_112-action_301 (41) = happyGoto action_308-action_301 (42) = happyGoto action_157-action_301 (43) = happyGoto action_114-action_301 (44) = happyGoto action_115-action_301 (45) = happyGoto action_116-action_301 (46) = happyGoto action_117-action_301 (47) = happyGoto action_118-action_301 (48) = happyGoto action_87-action_301 _ = happyReduce_60--action_302 (67) = happyShift action_39-action_302 (68) = happyShift action_93-action_302 (69) = happyShift action_119-action_302 (72) = happyShift action_95-action_302 (79) = happyShift action_120-action_302 (81) = happyShift action_121-action_302 (89) = happyShift action_122-action_302 (90) = happyShift action_123-action_302 (91) = happyShift action_96-action_302 (92) = happyShift action_97-action_302 (93) = happyShift action_124-action_302 (94) = happyShift action_99-action_302 (97) = happyShift action_100-action_302 (99) = happyShift action_125-action_302 (101) = happyShift action_126-action_302 (103) = happyShift action_127-action_302 (105) = happyShift action_128-action_302 (109) = happyShift action_57-action_302 (113) = happyShift action_58-action_302 (114) = happyShift action_59-action_302 (115) = happyShift action_60-action_302 (117) = happyShift action_61-action_302 (118) = happyShift action_62-action_302 (120) = happyShift action_129-action_302 (121) = happyShift action_103-action_302 (23) = happyGoto action_104-action_302 (26) = happyGoto action_105-action_302 (27) = happyGoto action_106-action_302 (29) = happyGoto action_107-action_302 (31) = happyGoto action_108-action_302 (32) = happyGoto action_109-action_302 (33) = happyGoto action_110-action_302 (34) = happyGoto action_111-action_302 (39) = happyGoto action_112-action_302 (42) = happyGoto action_307-action_302 (43) = happyGoto action_114-action_302 (44) = happyGoto action_115-action_302 (45) = happyGoto action_116-action_302 (46) = happyGoto action_117-action_302 (47) = happyGoto action_118-action_302 (48) = happyGoto action_87-action_302 _ = happyReduce_60--action_303 (67) = happyShift action_39-action_303 (68) = happyShift action_93-action_303 (69) = happyShift action_119-action_303 (72) = happyShift action_95-action_303 (79) = happyShift action_120-action_303 (81) = happyShift action_121-action_303 (89) = happyShift action_122-action_303 (90) = happyShift action_123-action_303 (91) = happyShift action_96-action_303 (92) = happyShift action_97-action_303 (93) = happyShift action_124-action_303 (94) = happyShift action_99-action_303 (97) = happyShift action_100-action_303 (99) = happyShift action_125-action_303 (101) = happyShift action_126-action_303 (103) = happyShift action_127-action_303 (105) = happyShift action_128-action_303 (109) = happyShift action_57-action_303 (113) = happyShift action_58-action_303 (114) = happyShift action_59-action_303 (115) = happyShift action_60-action_303 (117) = happyShift action_61-action_303 (118) = happyShift action_62-action_303 (120) = happyShift action_129-action_303 (121) = happyShift action_103-action_303 (23) = happyGoto action_104-action_303 (26) = happyGoto action_105-action_303 (27) = happyGoto action_106-action_303 (29) = happyGoto action_107-action_303 (31) = happyGoto action_108-action_303 (32) = happyGoto action_109-action_303 (33) = happyGoto action_110-action_303 (34) = happyGoto action_111-action_303 (39) = happyGoto action_112-action_303 (42) = happyGoto action_306-action_303 (43) = happyGoto action_114-action_303 (44) = happyGoto action_115-action_303 (45) = happyGoto action_116-action_303 (46) = happyGoto action_117-action_303 (47) = happyGoto action_118-action_303 (48) = happyGoto action_87-action_303 _ = happyReduce_60--action_304 (67) = happyShift action_39-action_304 (68) = happyShift action_93-action_304 (69) = happyShift action_119-action_304 (72) = happyShift action_95-action_304 (79) = happyShift action_120-action_304 (81) = happyShift action_121-action_304 (89) = happyShift action_122-action_304 (90) = happyShift action_123-action_304 (91) = happyShift action_96-action_304 (92) = happyShift action_97-action_304 (93) = happyShift action_124-action_304 (94) = happyShift action_99-action_304 (97) = happyShift action_100-action_304 (99) = happyShift action_125-action_304 (101) = happyShift action_126-action_304 (103) = happyShift action_127-action_304 (105) = happyShift action_128-action_304 (109) = happyShift action_57-action_304 (113) = happyShift action_58-action_304 (114) = happyShift action_59-action_304 (115) = happyShift action_60-action_304 (117) = happyShift action_61-action_304 (118) = happyShift action_62-action_304 (120) = happyShift action_129-action_304 (121) = happyShift action_103-action_304 (23) = happyGoto action_104-action_304 (26) = happyGoto action_105-action_304 (27) = happyGoto action_106-action_304 (29) = happyGoto action_107-action_304 (31) = happyGoto action_108-action_304 (32) = happyGoto action_109-action_304 (33) = happyGoto action_110-action_304 (34) = happyGoto action_111-action_304 (39) = happyGoto action_112-action_304 (42) = happyGoto action_305-action_304 (43) = happyGoto action_114-action_304 (44) = happyGoto action_115-action_304 (45) = happyGoto action_116-action_304 (46) = happyGoto action_117-action_304 (47) = happyGoto action_118-action_304 (48) = happyGoto action_87-action_304 _ = happyReduce_60--action_305 (104) = happyShift action_375-action_305 _ = happyFail--action_306 (104) = happyShift action_374-action_306 _ = happyFail--action_307 (104) = happyShift action_373-action_307 _ = happyFail--action_308 _ = happyReduce_101--action_309 (102) = happyShift action_372-action_309 _ = happyFail--action_310 _ = happyReduce_35--action_311 (67) = happyShift action_39-action_311 (68) = happyShift action_93-action_311 (69) = happyShift action_119-action_311 (72) = happyShift action_95-action_311 (79) = happyShift action_120-action_311 (81) = happyShift action_121-action_311 (89) = happyShift action_122-action_311 (90) = happyShift action_123-action_311 (91) = happyShift action_96-action_311 (92) = happyShift action_97-action_311 (93) = happyShift action_124-action_311 (94) = happyShift action_99-action_311 (97) = happyShift action_100-action_311 (99) = happyShift action_125-action_311 (101) = happyShift action_126-action_311 (103) = happyShift action_127-action_311 (105) = happyShift action_128-action_311 (109) = happyShift action_57-action_311 (113) = happyShift action_58-action_311 (114) = happyShift action_59-action_311 (115) = happyShift action_60-action_311 (117) = happyShift action_61-action_311 (118) = happyShift action_62-action_311 (120) = happyShift action_129-action_311 (121) = happyShift action_103-action_311 (23) = happyGoto action_104-action_311 (26) = happyGoto action_105-action_311 (27) = happyGoto action_106-action_311 (29) = happyGoto action_107-action_311 (31) = happyGoto action_108-action_311 (32) = happyGoto action_109-action_311 (33) = happyGoto action_110-action_311 (34) = happyGoto action_111-action_311 (39) = happyGoto action_112-action_311 (42) = happyGoto action_371-action_311 (43) = happyGoto action_114-action_311 (44) = happyGoto action_115-action_311 (45) = happyGoto action_116-action_311 (46) = happyGoto action_117-action_311 (47) = happyGoto action_118-action_311 (48) = happyGoto action_87-action_311 _ = happyReduce_60--action_312 (67) = happyShift action_39-action_312 (68) = happyShift action_93-action_312 (69) = happyShift action_119-action_312 (72) = happyShift action_95-action_312 (79) = happyShift action_120-action_312 (81) = happyShift action_121-action_312 (89) = happyShift action_122-action_312 (90) = happyShift action_123-action_312 (91) = happyShift action_96-action_312 (92) = happyShift action_97-action_312 (93) = happyShift action_124-action_312 (94) = happyShift action_99-action_312 (97) = happyShift action_100-action_312 (99) = happyShift action_125-action_312 (101) = happyShift action_126-action_312 (103) = happyShift action_127-action_312 (105) = happyShift action_128-action_312 (109) = happyShift action_57-action_312 (113) = happyShift action_58-action_312 (114) = happyShift action_59-action_312 (115) = happyShift action_60-action_312 (117) = happyShift action_61-action_312 (118) = happyShift action_62-action_312 (120) = happyShift action_129-action_312 (121) = happyShift action_103-action_312 (23) = happyGoto action_104-action_312 (26) = happyGoto action_105-action_312 (27) = happyGoto action_106-action_312 (29) = happyGoto action_107-action_312 (31) = happyGoto action_108-action_312 (32) = happyGoto action_109-action_312 (33) = happyGoto action_110-action_312 (34) = happyGoto action_111-action_312 (39) = happyGoto action_112-action_312 (42) = happyGoto action_370-action_312 (43) = happyGoto action_114-action_312 (44) = happyGoto action_115-action_312 (45) = happyGoto action_116-action_312 (46) = happyGoto action_117-action_312 (47) = happyGoto action_118-action_312 (48) = happyGoto action_87-action_312 _ = happyReduce_60--action_313 (67) = happyShift action_39-action_313 (68) = happyShift action_93-action_313 (69) = happyShift action_119-action_313 (72) = happyShift action_95-action_313 (79) = happyShift action_120-action_313 (81) = happyShift action_121-action_313 (89) = happyShift action_122-action_313 (90) = happyShift action_123-action_313 (91) = happyShift action_96-action_313 (92) = happyShift action_97-action_313 (93) = happyShift action_124-action_313 (94) = happyShift action_99-action_313 (97) = happyShift action_100-action_313 (99) = happyShift action_125-action_313 (101) = happyShift action_126-action_313 (103) = happyShift action_127-action_313 (105) = happyShift action_128-action_313 (109) = happyShift action_57-action_313 (113) = happyShift action_58-action_313 (114) = happyShift action_59-action_313 (115) = happyShift action_60-action_313 (117) = happyShift action_61-action_313 (118) = happyShift action_62-action_313 (120) = happyShift action_129-action_313 (121) = happyShift action_103-action_313 (23) = happyGoto action_104-action_313 (26) = happyGoto action_105-action_313 (27) = happyGoto action_106-action_313 (29) = happyGoto action_107-action_313 (31) = happyGoto action_108-action_313 (32) = happyGoto action_109-action_313 (33) = happyGoto action_110-action_313 (34) = happyGoto action_111-action_313 (39) = happyGoto action_112-action_313 (42) = happyGoto action_369-action_313 (43) = happyGoto action_114-action_313 (44) = happyGoto action_115-action_313 (45) = happyGoto action_116-action_313 (46) = happyGoto action_117-action_313 (47) = happyGoto action_118-action_313 (48) = happyGoto action_87-action_313 _ = happyReduce_60--action_314 (104) = happyShift action_368-action_314 _ = happyFail--action_315 (100) = happyShift action_367-action_315 (107) = happyShift action_292-action_315 _ = happyFail--action_316 (67) = happyShift action_39-action_316 (68) = happyShift action_93-action_316 (69) = happyShift action_119-action_316 (72) = happyShift action_95-action_316 (79) = happyShift action_120-action_316 (81) = happyShift action_121-action_316 (89) = happyShift action_122-action_316 (90) = happyShift action_123-action_316 (91) = happyShift action_96-action_316 (92) = happyShift action_97-action_316 (93) = happyShift action_124-action_316 (94) = happyShift action_99-action_316 (97) = happyShift action_100-action_316 (99) = happyShift action_125-action_316 (101) = happyShift action_126-action_316 (103) = happyShift action_127-action_316 (105) = happyShift action_128-action_316 (109) = happyShift action_57-action_316 (113) = happyShift action_58-action_316 (114) = happyShift action_59-action_316 (115) = happyShift action_60-action_316 (117) = happyShift action_61-action_316 (118) = happyShift action_62-action_316 (120) = happyShift action_129-action_316 (121) = happyShift action_103-action_316 (23) = happyGoto action_104-action_316 (26) = happyGoto action_105-action_316 (27) = happyGoto action_106-action_316 (29) = happyGoto action_107-action_316 (31) = happyGoto action_108-action_316 (32) = happyGoto action_109-action_316 (33) = happyGoto action_110-action_316 (34) = happyGoto action_111-action_316 (39) = happyGoto action_112-action_316 (42) = happyGoto action_366-action_316 (43) = happyGoto action_114-action_316 (44) = happyGoto action_115-action_316 (45) = happyGoto action_116-action_316 (46) = happyGoto action_117-action_316 (47) = happyGoto action_118-action_316 (48) = happyGoto action_87-action_316 _ = happyReduce_60--action_317 _ = happyReduce_146--action_318 _ = happyReduce_28--action_319 (67) = happyShift action_39-action_319 (23) = happyGoto action_138-action_319 (25) = happyGoto action_365-action_319 _ = happyFail--action_320 _ = happyReduce_184--action_321 (104) = happyShift action_364-action_321 _ = happyFail--action_322 _ = happyReduce_183--action_323 (100) = happyShift action_363-action_323 _ = happyFail--action_324 _ = happyReduce_30--action_325 _ = happyReduce_155--action_326 _ = happyReduce_160--action_327 _ = happyReduce_103--action_328 _ = happyReduce_56--action_329 (102) = happyShift action_362-action_329 _ = happyFail--action_330 (102) = happyShift action_361-action_330 _ = happyFail--action_331 (100) = happyShift action_360-action_331 _ = happyFail--action_332 (100) = happyShift action_359-action_332 _ = happyFail--action_333 (100) = happyShift action_358-action_333 _ = happyFail--action_334 (108) = happyShift action_357-action_334 _ = happyFail--action_335 _ = happyReduce_104--action_336 (67) = happyShift action_39-action_336 (68) = happyShift action_93-action_336 (69) = happyShift action_119-action_336 (72) = happyShift action_95-action_336 (79) = happyShift action_120-action_336 (81) = happyShift action_121-action_336 (89) = happyShift action_122-action_336 (90) = happyShift action_123-action_336 (91) = happyShift action_96-action_336 (92) = happyShift action_97-action_336 (93) = happyShift action_124-action_336 (94) = happyShift action_99-action_336 (97) = happyShift action_100-action_336 (99) = happyShift action_125-action_336 (101) = happyShift action_126-action_336 (103) = happyShift action_127-action_336 (105) = happyShift action_128-action_336 (109) = happyShift action_57-action_336 (113) = happyShift action_58-action_336 (114) = happyShift action_59-action_336 (115) = happyShift action_60-action_336 (117) = happyShift action_61-action_336 (118) = happyShift action_62-action_336 (120) = happyShift action_129-action_336 (121) = happyShift action_103-action_336 (23) = happyGoto action_104-action_336 (26) = happyGoto action_105-action_336 (27) = happyGoto action_106-action_336 (29) = happyGoto action_107-action_336 (31) = happyGoto action_108-action_336 (32) = happyGoto action_109-action_336 (33) = happyGoto action_110-action_336 (34) = happyGoto action_111-action_336 (39) = happyGoto action_112-action_336 (42) = happyGoto action_356-action_336 (43) = happyGoto action_114-action_336 (44) = happyGoto action_115-action_336 (45) = happyGoto action_116-action_336 (46) = happyGoto action_117-action_336 (47) = happyGoto action_118-action_336 (48) = happyGoto action_87-action_336 _ = happyReduce_60--action_337 (67) = happyShift action_39-action_337 (93) = happyShift action_235-action_337 (103) = happyShift action_236-action_337 (109) = happyShift action_102-action_337 (23) = happyGoto action_233-action_337 (54) = happyGoto action_354-action_337 (58) = happyGoto action_355-action_337 (62) = happyGoto action_231-action_337 _ = happyReduce_154--action_338 _ = happyReduce_113--action_339 (67) = happyShift action_39-action_339 (68) = happyShift action_93-action_339 (69) = happyShift action_119-action_339 (72) = happyShift action_95-action_339 (79) = happyShift action_120-action_339 (81) = happyShift action_121-action_339 (89) = happyShift action_122-action_339 (90) = happyShift action_123-action_339 (91) = happyShift action_96-action_339 (92) = happyShift action_97-action_339 (93) = happyShift action_124-action_339 (94) = happyShift action_99-action_339 (97) = happyShift action_100-action_339 (99) = happyShift action_125-action_339 (101) = happyShift action_126-action_339 (103) = happyShift action_127-action_339 (105) = happyShift action_128-action_339 (109) = happyShift action_57-action_339 (113) = happyShift action_58-action_339 (114) = happyShift action_59-action_339 (115) = happyShift action_60-action_339 (117) = happyShift action_61-action_339 (118) = happyShift action_62-action_339 (120) = happyShift action_129-action_339 (121) = happyShift action_103-action_339 (23) = happyGoto action_104-action_339 (26) = happyGoto action_105-action_339 (27) = happyGoto action_106-action_339 (29) = happyGoto action_107-action_339 (31) = happyGoto action_108-action_339 (32) = happyGoto action_109-action_339 (33) = happyGoto action_110-action_339 (34) = happyGoto action_111-action_339 (39) = happyGoto action_112-action_339 (42) = happyGoto action_353-action_339 (43) = happyGoto action_114-action_339 (44) = happyGoto action_115-action_339 (45) = happyGoto action_116-action_339 (46) = happyGoto action_117-action_339 (47) = happyGoto action_118-action_339 (48) = happyGoto action_87-action_339 _ = happyReduce_60--action_340 (67) = happyShift action_39-action_340 (68) = happyShift action_93-action_340 (69) = happyShift action_119-action_340 (72) = happyShift action_95-action_340 (79) = happyShift action_120-action_340 (81) = happyShift action_121-action_340 (89) = happyShift action_122-action_340 (90) = happyShift action_123-action_340 (91) = happyShift action_96-action_340 (92) = happyShift action_97-action_340 (93) = happyShift action_124-action_340 (94) = happyShift action_99-action_340 (97) = happyShift action_100-action_340 (99) = happyShift action_125-action_340 (101) = happyShift action_126-action_340 (103) = happyShift action_127-action_340 (105) = happyShift action_128-action_340 (109) = happyShift action_57-action_340 (113) = happyShift action_58-action_340 (114) = happyShift action_59-action_340 (115) = happyShift action_60-action_340 (117) = happyShift action_61-action_340 (118) = happyShift action_62-action_340 (120) = happyShift action_129-action_340 (121) = happyShift action_103-action_340 (23) = happyGoto action_104-action_340 (26) = happyGoto action_105-action_340 (27) = happyGoto action_106-action_340 (29) = happyGoto action_107-action_340 (31) = happyGoto action_108-action_340 (32) = happyGoto action_109-action_340 (33) = happyGoto action_110-action_340 (34) = happyGoto action_111-action_340 (39) = happyGoto action_112-action_340 (42) = happyGoto action_352-action_340 (43) = happyGoto action_114-action_340 (44) = happyGoto action_115-action_340 (45) = happyGoto action_116-action_340 (46) = happyGoto action_117-action_340 (47) = happyGoto action_118-action_340 (48) = happyGoto action_87-action_340 _ = happyReduce_60--action_341 (67) = happyShift action_39-action_341 (68) = happyShift action_93-action_341 (69) = happyShift action_119-action_341 (72) = happyShift action_95-action_341 (79) = happyShift action_120-action_341 (81) = happyShift action_121-action_341 (89) = happyShift action_122-action_341 (90) = happyShift action_123-action_341 (91) = happyShift action_96-action_341 (92) = happyShift action_97-action_341 (93) = happyShift action_124-action_341 (94) = happyShift action_99-action_341 (97) = happyShift action_100-action_341 (99) = happyShift action_125-action_341 (101) = happyShift action_126-action_341 (103) = happyShift action_127-action_341 (105) = happyShift action_128-action_341 (109) = happyShift action_57-action_341 (113) = happyShift action_58-action_341 (114) = happyShift action_59-action_341 (115) = happyShift action_60-action_341 (117) = happyShift action_61-action_341 (118) = happyShift action_62-action_341 (120) = happyShift action_129-action_341 (121) = happyShift action_103-action_341 (23) = happyGoto action_104-action_341 (26) = happyGoto action_105-action_341 (27) = happyGoto action_106-action_341 (29) = happyGoto action_107-action_341 (31) = happyGoto action_108-action_341 (32) = happyGoto action_109-action_341 (33) = happyGoto action_110-action_341 (34) = happyGoto action_111-action_341 (39) = happyGoto action_112-action_341 (42) = happyGoto action_351-action_341 (43) = happyGoto action_114-action_341 (44) = happyGoto action_115-action_341 (45) = happyGoto action_116-action_341 (46) = happyGoto action_117-action_341 (47) = happyGoto action_118-action_341 (48) = happyGoto action_87-action_341 _ = happyReduce_60--action_342 (67) = happyShift action_39-action_342 (68) = happyShift action_93-action_342 (69) = happyShift action_119-action_342 (72) = happyShift action_95-action_342 (79) = happyShift action_120-action_342 (81) = happyShift action_121-action_342 (89) = happyShift action_122-action_342 (90) = happyShift action_123-action_342 (91) = happyShift action_96-action_342 (92) = happyShift action_97-action_342 (93) = happyShift action_124-action_342 (94) = happyShift action_99-action_342 (97) = happyShift action_100-action_342 (99) = happyShift action_125-action_342 (101) = happyShift action_126-action_342 (103) = happyShift action_127-action_342 (105) = happyShift action_128-action_342 (109) = happyShift action_57-action_342 (113) = happyShift action_58-action_342 (114) = happyShift action_59-action_342 (115) = happyShift action_60-action_342 (117) = happyShift action_61-action_342 (118) = happyShift action_62-action_342 (120) = happyShift action_129-action_342 (121) = happyShift action_103-action_342 (23) = happyGoto action_104-action_342 (26) = happyGoto action_105-action_342 (27) = happyGoto action_106-action_342 (29) = happyGoto action_107-action_342 (31) = happyGoto action_108-action_342 (32) = happyGoto action_109-action_342 (33) = happyGoto action_110-action_342 (34) = happyGoto action_111-action_342 (39) = happyGoto action_112-action_342 (42) = happyGoto action_306-action_342 (43) = happyGoto action_114-action_342 (44) = happyGoto action_115-action_342 (45) = happyGoto action_116-action_342 (46) = happyGoto action_117-action_342 (47) = happyGoto action_350-action_342 (48) = happyGoto action_87-action_342 _ = happyReduce_60--action_343 (98) = happyShift action_349-action_343 _ = happyFail--action_344 (67) = happyShift action_39-action_344 (23) = happyGoto action_37-action_344 (24) = happyGoto action_246-action_344 (49) = happyGoto action_348-action_344 (50) = happyGoto action_248-action_344 _ = happyReduce_141--action_345 _ = happyReduce_136--action_346 (67) = happyShift action_39-action_346 (68) = happyShift action_93-action_346 (69) = happyShift action_119-action_346 (72) = happyShift action_95-action_346 (79) = happyShift action_120-action_346 (81) = happyShift action_121-action_346 (89) = happyShift action_122-action_346 (90) = happyShift action_123-action_346 (91) = happyShift action_96-action_346 (92) = happyShift action_97-action_346 (93) = happyShift action_124-action_346 (94) = happyShift action_99-action_346 (97) = happyShift action_100-action_346 (99) = happyShift action_125-action_346 (101) = happyShift action_126-action_346 (103) = happyShift action_127-action_346 (105) = happyShift action_128-action_346 (109) = happyShift action_57-action_346 (113) = happyShift action_58-action_346 (114) = happyShift action_59-action_346 (115) = happyShift action_60-action_346 (117) = happyShift action_61-action_346 (118) = happyShift action_62-action_346 (120) = happyShift action_129-action_346 (121) = happyShift action_103-action_346 (23) = happyGoto action_104-action_346 (26) = happyGoto action_105-action_346 (27) = happyGoto action_106-action_346 (29) = happyGoto action_107-action_346 (31) = happyGoto action_108-action_346 (32) = happyGoto action_109-action_346 (33) = happyGoto action_110-action_346 (34) = happyGoto action_111-action_346 (39) = happyGoto action_112-action_346 (40) = happyGoto action_347-action_346 (41) = happyGoto action_200-action_346 (42) = happyGoto action_157-action_346 (43) = happyGoto action_114-action_346 (44) = happyGoto action_115-action_346 (45) = happyGoto action_116-action_346 (46) = happyGoto action_117-action_346 (47) = happyGoto action_118-action_346 (48) = happyGoto action_87-action_346 _ = happyReduce_60--action_347 _ = happyReduce_142--action_348 _ = happyReduce_139--action_349 _ = happyReduce_131--action_350 (104) = happyReduce_171-action_350 (106) = happyReduce_171-action_350 _ = happyReduce_123--action_351 (104) = happyShift action_388-action_351 _ = happyFail--action_352 (104) = happyShift action_387-action_352 _ = happyFail--action_353 (104) = happyShift action_386-action_353 _ = happyFail--action_354 (100) = happyShift action_385-action_354 _ = happyFail--action_355 (107) = happyShift action_383-action_355 (110) = happyShift action_384-action_355 _ = happyReduce_153--action_356 (102) = happyShift action_382-action_356 _ = happyFail--action_357 (67) = happyShift action_39-action_357 (68) = happyShift action_93-action_357 (69) = happyShift action_119-action_357 (72) = happyShift action_95-action_357 (79) = happyShift action_120-action_357 (81) = happyShift action_121-action_357 (89) = happyShift action_122-action_357 (90) = happyShift action_123-action_357 (91) = happyShift action_96-action_357 (92) = happyShift action_97-action_357 (93) = happyShift action_124-action_357 (94) = happyShift action_99-action_357 (97) = happyShift action_100-action_357 (99) = happyShift action_125-action_357 (101) = happyShift action_126-action_357 (103) = happyShift action_127-action_357 (105) = happyShift action_128-action_357 (109) = happyShift action_57-action_357 (113) = happyShift action_58-action_357 (114) = happyShift action_59-action_357 (115) = happyShift action_60-action_357 (117) = happyShift action_61-action_357 (118) = happyShift action_62-action_357 (120) = happyShift action_129-action_357 (121) = happyShift action_103-action_357 (23) = happyGoto action_104-action_357 (26) = happyGoto action_105-action_357 (27) = happyGoto action_106-action_357 (29) = happyGoto action_107-action_357 (31) = happyGoto action_108-action_357 (32) = happyGoto action_109-action_357 (33) = happyGoto action_110-action_357 (34) = happyGoto action_111-action_357 (39) = happyGoto action_112-action_357 (42) = happyGoto action_381-action_357 (43) = happyGoto action_114-action_357 (44) = happyGoto action_115-action_357 (45) = happyGoto action_116-action_357 (46) = happyGoto action_117-action_357 (47) = happyGoto action_118-action_357 (48) = happyGoto action_87-action_357 _ = happyReduce_60--action_358 _ = happyReduce_74--action_359 _ = happyReduce_75--action_360 _ = happyReduce_76--action_361 _ = happyReduce_72--action_362 _ = happyReduce_73--action_363 (74) = happyShift action_319-action_363 (22) = happyGoto action_380-action_363 _ = happyReduce_41--action_364 _ = happyReduce_186--action_365 _ = happyReduce_42--action_366 _ = happyReduce_144--action_367 (74) = happyShift action_319-action_367 (22) = happyGoto action_379-action_367 _ = happyReduce_41--action_368 _ = happyReduce_185--action_369 (104) = happyShift action_378-action_369 _ = happyFail--action_370 (104) = happyShift action_377-action_370 _ = happyFail--action_371 (104) = happyShift action_376-action_371 _ = happyFail--action_372 _ = happyReduce_71--action_373 _ = happyReduce_63--action_374 _ = happyReduce_64--action_375 _ = happyReduce_65--action_376 _ = happyReduce_66--action_377 _ = happyReduce_67--action_378 _ = happyReduce_68--action_379 _ = happyReduce_27--action_380 _ = happyReduce_29--action_381 (104) = happyShift action_392-action_381 _ = happyFail--action_382 (112) = happyShift action_391-action_382 _ = happyFail--action_383 (67) = happyShift action_39-action_383 (93) = happyShift action_235-action_383 (103) = happyShift action_236-action_383 (109) = happyShift action_102-action_383 (23) = happyGoto action_233-action_383 (54) = happyGoto action_390-action_383 (58) = happyGoto action_355-action_383 (62) = happyGoto action_231-action_383 _ = happyReduce_154--action_384 (67) = happyShift action_39-action_384 (68) = happyShift action_93-action_384 (69) = happyShift action_119-action_384 (72) = happyShift action_95-action_384 (79) = happyShift action_120-action_384 (81) = happyShift action_121-action_384 (89) = happyShift action_122-action_384 (90) = happyShift action_123-action_384 (91) = happyShift action_96-action_384 (92) = happyShift action_97-action_384 (93) = happyShift action_124-action_384 (94) = happyShift action_99-action_384 (97) = happyShift action_100-action_384 (99) = happyShift action_125-action_384 (101) = happyShift action_126-action_384 (103) = happyShift action_127-action_384 (105) = happyShift action_128-action_384 (109) = happyShift action_57-action_384 (113) = happyShift action_58-action_384 (114) = happyShift action_59-action_384 (115) = happyShift action_60-action_384 (117) = happyShift action_61-action_384 (118) = happyShift action_62-action_384 (120) = happyShift action_129-action_384 (121) = happyShift action_103-action_384 (23) = happyGoto action_104-action_384 (26) = happyGoto action_105-action_384 (27) = happyGoto action_106-action_384 (29) = happyGoto action_107-action_384 (31) = happyGoto action_108-action_384 (32) = happyGoto action_109-action_384 (33) = happyGoto action_110-action_384 (34) = happyGoto action_111-action_384 (39) = happyGoto action_112-action_384 (40) = happyGoto action_389-action_384 (41) = happyGoto action_200-action_384 (42) = happyGoto action_157-action_384 (43) = happyGoto action_114-action_384 (44) = happyGoto action_115-action_384 (45) = happyGoto action_116-action_384 (46) = happyGoto action_117-action_384 (47) = happyGoto action_118-action_384 (48) = happyGoto action_87-action_384 _ = happyReduce_60--action_385 _ = happyReduce_105--action_386 (119) = happyReduce_66-action_386 _ = happyReduce_66--action_387 (119) = happyReduce_67-action_387 _ = happyReduce_67--action_388 (119) = happyReduce_68-action_388 _ = happyReduce_68--action_389 (107) = happyShift action_395-action_389 _ = happyReduce_151--action_390 _ = happyReduce_152--action_391 (67) = happyShift action_39-action_391 (68) = happyShift action_93-action_391 (69) = happyShift action_119-action_391 (72) = happyShift action_95-action_391 (79) = happyShift action_120-action_391 (81) = happyShift action_121-action_391 (89) = happyShift action_122-action_391 (90) = happyShift action_123-action_391 (91) = happyShift action_96-action_391 (92) = happyShift action_97-action_391 (93) = happyShift action_124-action_391 (94) = happyShift action_99-action_391 (97) = happyShift action_100-action_391 (99) = happyShift action_125-action_391 (101) = happyShift action_126-action_391 (103) = happyShift action_127-action_391 (105) = happyShift action_128-action_391 (109) = happyShift action_57-action_391 (113) = happyShift action_58-action_391 (114) = happyShift action_59-action_391 (115) = happyShift action_60-action_391 (117) = happyShift action_61-action_391 (118) = happyShift action_62-action_391 (120) = happyShift action_129-action_391 (121) = happyShift action_103-action_391 (23) = happyGoto action_104-action_391 (26) = happyGoto action_105-action_391 (27) = happyGoto action_106-action_391 (29) = happyGoto action_107-action_391 (31) = happyGoto action_108-action_391 (32) = happyGoto action_109-action_391 (33) = happyGoto action_110-action_391 (34) = happyGoto action_111-action_391 (39) = happyGoto action_112-action_391 (42) = happyGoto action_394-action_391 (43) = happyGoto action_114-action_391 (44) = happyGoto action_115-action_391 (45) = happyGoto action_116-action_391 (46) = happyGoto action_117-action_391 (47) = happyGoto action_118-action_391 (48) = happyGoto action_87-action_391 _ = happyReduce_60--action_392 (112) = happyShift action_393-action_392 _ = happyFail--action_393 (67) = happyShift action_39-action_393 (68) = happyShift action_93-action_393 (69) = happyShift action_119-action_393 (72) = happyShift action_95-action_393 (79) = happyShift action_120-action_393 (81) = happyShift action_121-action_393 (89) = happyShift action_122-action_393 (90) = happyShift action_123-action_393 (91) = happyShift action_96-action_393 (92) = happyShift action_97-action_393 (93) = happyShift action_124-action_393 (94) = happyShift action_99-action_393 (97) = happyShift action_100-action_393 (99) = happyShift action_125-action_393 (101) = happyShift action_126-action_393 (103) = happyShift action_127-action_393 (105) = happyShift action_128-action_393 (109) = happyShift action_57-action_393 (113) = happyShift action_58-action_393 (114) = happyShift action_59-action_393 (115) = happyShift action_60-action_393 (117) = happyShift action_61-action_393 (118) = happyShift action_62-action_393 (120) = happyShift action_129-action_393 (121) = happyShift action_103-action_393 (23) = happyGoto action_104-action_393 (26) = happyGoto action_105-action_393 (27) = happyGoto action_106-action_393 (29) = happyGoto action_107-action_393 (31) = happyGoto action_108-action_393 (32) = happyGoto action_109-action_393 (33) = happyGoto action_110-action_393 (34) = happyGoto action_111-action_393 (39) = happyGoto action_112-action_393 (42) = happyGoto action_397-action_393 (43) = happyGoto action_114-action_393 (44) = happyGoto action_115-action_393 (45) = happyGoto action_116-action_393 (46) = happyGoto action_117-action_393 (47) = happyGoto action_118-action_393 (48) = happyGoto action_87-action_393 _ = happyReduce_60--action_394 _ = happyReduce_85--action_395 (67) = happyShift action_39-action_395 (93) = happyShift action_235-action_395 (103) = happyShift action_236-action_395 (109) = happyShift action_102-action_395 (23) = happyGoto action_233-action_395 (54) = happyGoto action_396-action_395 (58) = happyGoto action_355-action_395 (62) = happyGoto action_231-action_395 _ = happyReduce_154--action_396 _ = happyReduce_150--action_397 _ = happyReduce_86--happyReduce_1 = happySpecReduce_1  4 happyReduction_1-happyReduction_1 (HappyAbsSyn4  happy_var_1)-	 =  HappyAbsSyn4-		 (reverse happy_var_1-	)-happyReduction_1 _  = notHappyAtAll --happyReduce_2 = happySpecReduce_0  5 happyReduction_2-happyReduction_2  =  HappyAbsSyn4-		 ([]-	)--happyReduce_3 = happySpecReduce_2  5 happyReduction_3-happyReduction_3 (HappyAbsSyn6  happy_var_2)-	(HappyAbsSyn4  happy_var_1)-	 =  HappyAbsSyn4-		 (happy_var_2 : happy_var_1-	)-happyReduction_3 _ _  = notHappyAtAll --happyReduce_4 = happySpecReduce_1  6 happyReduction_4-happyReduction_4 (HappyAbsSyn6  happy_var_1)-	 =  HappyAbsSyn6-		 (happy_var_1-	)-happyReduction_4 _  = notHappyAtAll --happyReduce_5 = happySpecReduce_1  6 happyReduction_5-happyReduction_5 (HappyAbsSyn6  happy_var_1)-	 =  HappyAbsSyn6-		 (happy_var_1-	)-happyReduction_5 _  = notHappyAtAll --happyReduce_6 = happySpecReduce_1  6 happyReduction_6-happyReduction_6 (HappyAbsSyn6  happy_var_1)-	 =  HappyAbsSyn6-		 (happy_var_1-	)-happyReduction_6 _  = notHappyAtAll --happyReduce_7 = happySpecReduce_1  6 happyReduction_7-happyReduction_7 (HappyAbsSyn6  happy_var_1)-	 =  HappyAbsSyn6-		 (happy_var_1-	)-happyReduction_7 _  = notHappyAtAll --happyReduce_8 = happySpecReduce_1  6 happyReduction_8-happyReduction_8 (HappyAbsSyn6  happy_var_1)-	 =  HappyAbsSyn6-		 (happy_var_1-	)-happyReduction_8 _  = notHappyAtAll --happyReduce_9 = happySpecReduce_1  6 happyReduction_9-happyReduction_9 (HappyAbsSyn6  happy_var_1)-	 =  HappyAbsSyn6-		 (happy_var_1-	)-happyReduction_9 _  = notHappyAtAll --happyReduce_10 = happySpecReduce_1  6 happyReduction_10-happyReduction_10 (HappyAbsSyn6  happy_var_1)-	 =  HappyAbsSyn6-		 (happy_var_1-	)-happyReduction_10 _  = notHappyAtAll --happyReduce_11 = happySpecReduce_1  6 happyReduction_11-happyReduction_11 (HappyAbsSyn6  happy_var_1)-	 =  HappyAbsSyn6-		 (happy_var_1-	)-happyReduction_11 _  = notHappyAtAll --happyReduce_12 = happySpecReduce_1  6 happyReduction_12-happyReduction_12 (HappyAbsSyn6  happy_var_1)-	 =  HappyAbsSyn6-		 (happy_var_1-	)-happyReduction_12 _  = notHappyAtAll --happyReduce_13 = happySpecReduce_1  6 happyReduction_13-happyReduction_13 (HappyAbsSyn6  happy_var_1)-	 =  HappyAbsSyn6-		 (happy_var_1-	)-happyReduction_13 _  = notHappyAtAll --happyReduce_14 = happySpecReduce_2  6 happyReduction_14-happyReduction_14 (HappyAbsSyn6  happy_var_2)-	_-	 =  HappyAbsSyn6-		 (C.OverrideDecl Impredicative [happy_var_2]-	)-happyReduction_14 _ _  = notHappyAtAll --happyReduce_15 = happyReduce 4 6 happyReduction_15-happyReduction_15 (_ `HappyStk`-	(HappyAbsSyn4  happy_var_3) `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn6-		 (C.OverrideDecl Impredicative happy_var_3-	) `HappyStk` happyRest--happyReduce_16 = happySpecReduce_2  6 happyReduction_16-happyReduction_16 (HappyAbsSyn6  happy_var_2)-	_-	 =  HappyAbsSyn6-		 (C.OverrideDecl Fail [happy_var_2]-	)-happyReduction_16 _ _  = notHappyAtAll --happyReduce_17 = happyReduce 4 6 happyReduction_17-happyReduction_17 (_ `HappyStk`-	(HappyAbsSyn4  happy_var_3) `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn6-		 (C.OverrideDecl Fail happy_var_3-	) `HappyStk` happyRest--happyReduce_18 = happySpecReduce_2  6 happyReduction_18-happyReduction_18 (HappyAbsSyn6  happy_var_2)-	_-	 =  HappyAbsSyn6-		 (C.OverrideDecl Check [happy_var_2]-	)-happyReduction_18 _ _  = notHappyAtAll --happyReduce_19 = happyReduce 4 6 happyReduction_19-happyReduction_19 (_ `HappyStk`-	(HappyAbsSyn4  happy_var_3) `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn6-		 (C.OverrideDecl Check happy_var_3-	) `HappyStk` happyRest--happyReduce_20 = happySpecReduce_2  6 happyReduction_20-happyReduction_20 (HappyAbsSyn6  happy_var_2)-	_-	 =  HappyAbsSyn6-		 (C.OverrideDecl TrustMe [happy_var_2]-	)-happyReduction_20 _ _  = notHappyAtAll --happyReduce_21 = happyReduce 4 6 happyReduction_21-happyReduction_21 (_ `HappyStk`-	(HappyAbsSyn4  happy_var_3) `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn6-		 (C.OverrideDecl TrustMe happy_var_3-	) `HappyStk` happyRest--happyReduce_22 = happySpecReduce_2  7 happyReduction_22-happyReduction_22 (HappyAbsSyn12  happy_var_2)-	_-	 =  HappyAbsSyn6-		 (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.Ind tel t cs fs-	)-happyReduction_22 _ _  = notHappyAtAll --happyReduce_23 = happySpecReduce_3  8 happyReduction_23-happyReduction_23 (HappyAbsSyn12  happy_var_3)-	_-	_-	 =  HappyAbsSyn6-		 (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.Ind tel t cs fs-	)-happyReduction_23 _ _ _  = notHappyAtAll --happyReduce_24 = happySpecReduce_2  9 happyReduction_24-happyReduction_24 (HappyAbsSyn12  happy_var_2)-	_-	 =  HappyAbsSyn6-		 (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.CoInd tel t cs fs-	)-happyReduction_24 _ _  = notHappyAtAll --happyReduce_25 = happySpecReduce_3  10 happyReduction_25-happyReduction_25 (HappyAbsSyn12  happy_var_3)-	_-	_-	 =  HappyAbsSyn6-		 (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.CoInd tel t cs fs-	)-happyReduction_25 _ _ _  = notHappyAtAll --happyReduce_26 = happySpecReduce_2  11 happyReduction_26-happyReduction_26 (HappyAbsSyn13  happy_var_2)-	_-	 =  HappyAbsSyn6-		 (let (n,tel,t,c,fs) = happy_var_2 in C.RecordDecl n tel t c fs-	)-happyReduction_26 _ _  = notHappyAtAll --happyReduce_27 = happyReduce 8 12 happyReduction_27-happyReduction_27 ((HappyAbsSyn22  happy_var_8) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn53  happy_var_6) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn31  happy_var_2) `HappyStk`-	(HappyAbsSyn23  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn12-		 ((happy_var_1, happy_var_2, happy_var_4, reverse happy_var_6, happy_var_8)-	) `HappyStk` happyRest--happyReduce_28 = happyReduce 6 12 happyReduction_28-happyReduction_28 ((HappyAbsSyn22  happy_var_6) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn53  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn31  happy_var_2) `HappyStk`-	(HappyAbsSyn23  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn12-		 ((happy_var_1, happy_var_2, C.set0, reverse happy_var_4, happy_var_6)-	) `HappyStk` happyRest--happyReduce_29 = happyReduce 8 13 happyReduction_29-happyReduction_29 ((HappyAbsSyn22  happy_var_8) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn52  happy_var_6) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn31  happy_var_2) `HappyStk`-	(HappyAbsSyn23  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn13-		 ((happy_var_1, happy_var_2, happy_var_4, happy_var_6, happy_var_8)-	) `HappyStk` happyRest--happyReduce_30 = happyReduce 6 13 happyReduction_30-happyReduction_30 ((HappyAbsSyn22  happy_var_6) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn52  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn31  happy_var_2) `HappyStk`-	(HappyAbsSyn23  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn13-		 ((happy_var_1, happy_var_2, C.set0, happy_var_4, happy_var_6)-	) `HappyStk` happyRest--happyReduce_31 = happyReduce 5 14 happyReduction_31-happyReduction_31 (_ `HappyStk`-	(HappyAbsSyn54  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn51  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn6-		 (C.FunDecl A.Ind happy_var_2 happy_var_4-	) `HappyStk` happyRest--happyReduce_32 = happyReduce 5 15 happyReduction_32-happyReduction_32 (_ `HappyStk`-	(HappyAbsSyn54  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn51  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn6-		 (C.FunDecl A.CoInd happy_var_2 happy_var_4-	) `HappyStk` happyRest--happyReduce_33 = happyReduce 4 16 happyReduction_33-happyReduction_33 (_ `HappyStk`-	(HappyAbsSyn4  happy_var_3) `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn6-		 (C.MutualDecl (reverse happy_var_3)-	) `HappyStk` happyRest--happyReduce_34 = happySpecReduce_3  17 happyReduction_34-happyReduction_34 (HappyAbsSyn18  happy_var_3)-	_-	(HappyAbsSyn19  happy_var_1)-	 =  HappyAbsSyn6-		 (C.LetDecl happy_var_1 happy_var_3-	)-happyReduction_34 _ _ _  = notHappyAtAll --happyReduce_35 = happyReduce 5 18 happyReduction_35-happyReduction_35 ((HappyAbsSyn40  happy_var_5) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn20  happy_var_3) `HappyStk`-	(HappyAbsSyn31  happy_var_2) `HappyStk`-	(HappyAbsSyn36  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn18-		 (let (dec,n) = happy_var_1 in C.LetDef dec n happy_var_2 happy_var_3 happy_var_5-	) `HappyStk` happyRest--happyReduce_36 = happySpecReduce_0  19 happyReduction_36-happyReduction_36  =  HappyAbsSyn19-		 (False-	)--happyReduce_37 = happySpecReduce_1  19 happyReduction_37-happyReduction_37 _-	 =  HappyAbsSyn19-		 (True-	)--happyReduce_38 = happySpecReduce_0  20 happyReduction_38-happyReduction_38  =  HappyAbsSyn20-		 (Nothing-	)--happyReduce_39 = happySpecReduce_2  20 happyReduction_39-happyReduction_39 (HappyAbsSyn40  happy_var_2)-	_-	 =  HappyAbsSyn20-		 (Just happy_var_2-	)-happyReduction_39 _ _  = notHappyAtAll --happyReduce_40 = happyReduce 4 21 happyReduction_40-happyReduction_40 ((HappyAbsSyn58  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn22  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn6-		 (C.PatternDecl (head happy_var_2) (tail happy_var_2) happy_var_4-	) `HappyStk` happyRest--happyReduce_41 = happySpecReduce_0  22 happyReduction_41-happyReduction_41  =  HappyAbsSyn22-		 ([]-	)--happyReduce_42 = happySpecReduce_2  22 happyReduction_42-happyReduction_42 (HappyAbsSyn22  happy_var_2)-	_-	 =  HappyAbsSyn22-		 (happy_var_2-	)-happyReduction_42 _ _  = notHappyAtAll --happyReduce_43 = happySpecReduce_1  23 happyReduction_43-happyReduction_43 (HappyTerminal (T.Id happy_var_1 _))-	 =  HappyAbsSyn23-		 (C.Name happy_var_1-	)-happyReduction_43 _  = notHappyAtAll --happyReduce_44 = happySpecReduce_1  24 happyReduction_44-happyReduction_44 (HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn22-		 ([happy_var_1]-	)-happyReduction_44 _  = notHappyAtAll --happyReduce_45 = happySpecReduce_2  24 happyReduction_45-happyReduction_45 (HappyAbsSyn22  happy_var_2)-	(HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn22-		 (happy_var_1 : happy_var_2-	)-happyReduction_45 _ _  = notHappyAtAll --happyReduce_46 = happySpecReduce_1  25 happyReduction_46-happyReduction_46 (HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn22-		 ([happy_var_1]-	)-happyReduction_46 _  = notHappyAtAll --happyReduce_47 = happySpecReduce_3  25 happyReduction_47-happyReduction_47 (HappyAbsSyn22  happy_var_3)-	_-	(HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn22-		 (happy_var_1 : happy_var_3-	)-happyReduction_47 _ _ _  = notHappyAtAll --happyReduce_48 = happySpecReduce_1  26 happyReduction_48-happyReduction_48 _-	 =  HappyAbsSyn26-		 (SPos-	)--happyReduce_49 = happySpecReduce_1  26 happyReduction_49-happyReduction_49 _-	 =  HappyAbsSyn26-		 (Pos-	)--happyReduce_50 = happySpecReduce_1  26 happyReduction_50-happyReduction_50 _-	 =  HappyAbsSyn26-		 (Neg-	)--happyReduce_51 = happySpecReduce_1  26 happyReduction_51-happyReduction_51 _-	 =  HappyAbsSyn26-		 (Const-	)--happyReduce_52 = happySpecReduce_1  26 happyReduction_52-happyReduction_52 _-	 =  HappyAbsSyn26-		 (Param-	)--happyReduce_53 = happySpecReduce_1  26 happyReduction_53-happyReduction_53 _-	 =  HappyAbsSyn26-		 (Rec-	)--happyReduce_54 = happySpecReduce_2  27 happyReduction_54-happyReduction_54 (HappyAbsSyn28  happy_var_2)-	_-	 =  HappyAbsSyn27-		 (A.Measure happy_var_2-	)-happyReduction_54 _ _  = notHappyAtAll --happyReduce_55 = happySpecReduce_2  28 happyReduction_55-happyReduction_55 _-	(HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn28-		 ([happy_var_1]-	)-happyReduction_55 _ _  = notHappyAtAll --happyReduce_56 = happySpecReduce_3  28 happyReduction_56-happyReduction_56 (HappyAbsSyn28  happy_var_3)-	_-	(HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn28-		 (happy_var_1 : happy_var_3-	)-happyReduction_56 _ _ _  = notHappyAtAll --happyReduce_57 = happySpecReduce_3  29 happyReduction_57-happyReduction_57 (HappyAbsSyn27  happy_var_3)-	_-	(HappyAbsSyn27  happy_var_1)-	 =  HappyAbsSyn29-		 (A.Bound A.Lt happy_var_1 happy_var_3-	)-happyReduction_57 _ _ _  = notHappyAtAll --happyReduce_58 = happySpecReduce_3  29 happyReduction_58-happyReduction_58 (HappyAbsSyn27  happy_var_3)-	_-	(HappyAbsSyn27  happy_var_1)-	 =  HappyAbsSyn29-		 (A.Bound A.Le happy_var_1 happy_var_3-	)-happyReduction_58 _ _ _  = notHappyAtAll --happyReduce_59 = happySpecReduce_1  30 happyReduction_59-happyReduction_59 (HappyAbsSyn28  happy_var_1)-	 =  HappyAbsSyn22-		 (let { f (C.Ident (C.QName x)) = x-                            ; f e = error ("not an identifier: " ++ C.prettyExpr e)-                            } in map f happy_var_1-	)-happyReduction_59 _  = notHappyAtAll --happyReduce_60 = happySpecReduce_0  31 happyReduction_60-happyReduction_60  =  HappyAbsSyn31-		 ([]-	)--happyReduce_61 = happySpecReduce_2  31 happyReduction_61-happyReduction_61 (HappyAbsSyn31  happy_var_2)-	(HappyAbsSyn32  happy_var_1)-	 =  HappyAbsSyn31-		 (happy_var_1 : happy_var_2-	)-happyReduction_61 _ _  = notHappyAtAll --happyReduce_62 = happySpecReduce_2  31 happyReduction_62-happyReduction_62 (HappyAbsSyn31  happy_var_2)-	(HappyAbsSyn27  happy_var_1)-	 =  HappyAbsSyn31-		 (C.TMeasure happy_var_1 : happy_var_2-	)-happyReduction_62 _ _  = notHappyAtAll --happyReduce_63 = happyReduce 5 32 happyReduction_63-happyReduction_63 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn22  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBind   (Dec Default) happy_var_2      happy_var_4-	) `HappyStk` happyRest--happyReduce_64 = happyReduce 5 32 happyReduction_64-happyReduction_64 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBounded A.defaultDec happy_var_2 A.Lt happy_var_4-	) `HappyStk` happyRest--happyReduce_65 = happyReduce 5 32 happyReduction_65-happyReduction_65 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBounded A.defaultDec happy_var_2 A.Le happy_var_4-	) `HappyStk` happyRest--happyReduce_66 = happyReduce 6 32 happyReduction_66-happyReduction_66 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_5) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn22  happy_var_3) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn26  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBind    (Dec happy_var_1)     happy_var_3      happy_var_5-	) `HappyStk` happyRest--happyReduce_67 = happyReduce 6 32 happyReduction_67-happyReduction_67 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_5) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_3) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn26  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBounded (Dec happy_var_1)     happy_var_3 A.Lt happy_var_5-	) `HappyStk` happyRest--happyReduce_68 = happyReduce 6 32 happyReduction_68-happyReduction_68 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_5) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_3) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn26  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBounded (Dec happy_var_1)     happy_var_3 A.Le happy_var_5-	) `HappyStk` happyRest--happyReduce_69 = happySpecReduce_1  32 happyReduction_69-happyReduction_69 (HappyAbsSyn32  happy_var_1)-	 =  HappyAbsSyn32-		 (happy_var_1-	)-happyReduction_69 _  = notHappyAtAll --happyReduce_70 = happySpecReduce_1  32 happyReduction_70-happyReduction_70 (HappyAbsSyn32  happy_var_1)-	 =  HappyAbsSyn32-		 (happy_var_1-	)-happyReduction_70 _  = notHappyAtAll --happyReduce_71 = happyReduce 5 33 happyReduction_71-happyReduction_71 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn22  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBind    A.irrelevantDec happy_var_2      happy_var_4-	) `HappyStk` happyRest--happyReduce_72 = happyReduce 5 33 happyReduction_72-happyReduction_72 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBounded A.irrelevantDec happy_var_2 A.Lt happy_var_4-	) `HappyStk` happyRest--happyReduce_73 = happyReduce 5 33 happyReduction_73-happyReduction_73 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBounded A.irrelevantDec happy_var_2 A.Le happy_var_4-	) `HappyStk` happyRest--happyReduce_74 = happyReduce 5 34 happyReduction_74-happyReduction_74 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn22  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBind    A.Hidden happy_var_2      happy_var_4-	) `HappyStk` happyRest--happyReduce_75 = happyReduce 5 34 happyReduction_75-happyReduction_75 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBounded A.Hidden happy_var_2 A.Lt happy_var_4-	) `HappyStk` happyRest--happyReduce_76 = happyReduce 5 34 happyReduction_76-happyReduction_76 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBounded A.Hidden happy_var_2 A.Le happy_var_4-	) `HappyStk` happyRest--happyReduce_77 = happySpecReduce_1  35 happyReduction_77-happyReduction_77 (HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn35-		 (C.TBind A.defaultDec [happy_var_1] Nothing-	)-happyReduction_77 _  = notHappyAtAll --happyReduce_78 = happySpecReduce_3  35 happyReduction_78-happyReduction_78 _-	(HappyAbsSyn23  happy_var_2)-	_-	 =  HappyAbsSyn35-		 (C.TBind A.irrelevantDec [happy_var_2] Nothing-	)-happyReduction_78 _ _ _  = notHappyAtAll --happyReduce_79 = happySpecReduce_2  35 happyReduction_79-happyReduction_79 (HappyAbsSyn23  happy_var_2)-	(HappyAbsSyn26  happy_var_1)-	 =  HappyAbsSyn35-		 (C.TBind (Dec happy_var_1) [happy_var_2] Nothing-	)-happyReduction_79 _ _  = notHappyAtAll --happyReduce_80 = happyReduce 4 35 happyReduction_80-happyReduction_80 (_ `HappyStk`-	(HappyAbsSyn23  happy_var_3) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn26  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn35-		 (C.TBind (Dec happy_var_1) [happy_var_3] Nothing-	) `HappyStk` happyRest--happyReduce_81 = happySpecReduce_1  36 happyReduction_81-happyReduction_81 (HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn36-		 ((A.defaultDec   , happy_var_1)-	)-happyReduction_81 _  = notHappyAtAll --happyReduce_82 = happySpecReduce_3  36 happyReduction_82-happyReduction_82 _-	(HappyAbsSyn23  happy_var_2)-	_-	 =  HappyAbsSyn36-		 ((A.irrelevantDec, happy_var_2)-	)-happyReduction_82 _ _ _  = notHappyAtAll --happyReduce_83 = happySpecReduce_2  36 happyReduction_83-happyReduction_83 (HappyAbsSyn23  happy_var_2)-	(HappyAbsSyn26  happy_var_1)-	 =  HappyAbsSyn36-		 ((Dec happy_var_1         , happy_var_2)-	)-happyReduction_83 _ _  = notHappyAtAll --happyReduce_84 = happySpecReduce_1  37 happyReduction_84-happyReduction_84 (HappyAbsSyn18  happy_var_1)-	 =  HappyAbsSyn18-		 (happy_var_1-	)-happyReduction_84 _  = notHappyAtAll --happyReduce_85 = happyReduce 7 37 happyReduction_85-happyReduction_85 ((HappyAbsSyn40  happy_var_7) `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn18-		 (C.LetDef A.irrelevantDec happy_var_2 [] (Just happy_var_4) happy_var_7-	) `HappyStk` happyRest--happyReduce_86 = happyReduce 8 37 happyReduction_86-happyReduction_86 ((HappyAbsSyn40  happy_var_8) `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn40  happy_var_5) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_3) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn26  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn18-		 (C.LetDef (Dec happy_var_1) happy_var_3 [] (Just happy_var_5) happy_var_8-	) `HappyStk` happyRest--happyReduce_87 = happySpecReduce_1  38 happyReduction_87-happyReduction_87 (HappyAbsSyn35  happy_var_1)-	 =  HappyAbsSyn35-		 (happy_var_1-	)-happyReduction_87 _  = notHappyAtAll --happyReduce_88 = happySpecReduce_3  38 happyReduction_88-happyReduction_88 (HappyAbsSyn40  happy_var_3)-	_-	(HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn35-		 (C.TBind A.defaultDec [happy_var_1] (Just happy_var_3)-	)-happyReduction_88 _ _ _  = notHappyAtAll --happyReduce_89 = happyReduce 5 38 happyReduction_89-happyReduction_89 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn35-		 (C.TBind A.defaultDec [happy_var_2] (Just happy_var_4)-	) `HappyStk` happyRest--happyReduce_90 = happyReduce 5 38 happyReduction_90-happyReduction_90 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn35-		 (C.TBind A.irrelevantDec [happy_var_2] (Just happy_var_4)-	) `HappyStk` happyRest--happyReduce_91 = happyReduce 6 38 happyReduction_91-happyReduction_91 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_5) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_3) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn26  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn35-		 (C.TBind (Dec happy_var_1) [happy_var_3] (Just happy_var_5)-	) `HappyStk` happyRest--happyReduce_92 = happySpecReduce_1  39 happyReduction_92-happyReduction_92 (HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn31-		 ([C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1]-	)-happyReduction_92 _  = notHappyAtAll --happyReduce_93 = happySpecReduce_3  39 happyReduction_93-happyReduction_93 _-	(HappyAbsSyn40  happy_var_2)-	_-	 =  HappyAbsSyn31-		 ([C.TBind A.irrelevantDec [] happy_var_2]-	)-happyReduction_93 _ _ _  = notHappyAtAll --happyReduce_94 = happySpecReduce_2  39 happyReduction_94-happyReduction_94 (HappyAbsSyn40  happy_var_2)-	(HappyAbsSyn26  happy_var_1)-	 =  HappyAbsSyn31-		 ([C.TBind (Dec happy_var_1) [] happy_var_2]-	)-happyReduction_94 _ _  = notHappyAtAll --happyReduce_95 = happySpecReduce_1  39 happyReduction_95-happyReduction_95 (HappyAbsSyn32  happy_var_1)-	 =  HappyAbsSyn31-		 ([happy_var_1]-	)-happyReduction_95 _  = notHappyAtAll --happyReduce_96 = happySpecReduce_1  39 happyReduction_96-happyReduction_96 (HappyAbsSyn27  happy_var_1)-	 =  HappyAbsSyn31-		 ([C.TMeasure happy_var_1]-	)-happyReduction_96 _  = notHappyAtAll --happyReduce_97 = happySpecReduce_1  39 happyReduction_97-happyReduction_97 (HappyAbsSyn29  happy_var_1)-	 =  HappyAbsSyn31-		 ([C.TBound happy_var_1]-	)-happyReduction_97 _  = notHappyAtAll --happyReduce_98 = happySpecReduce_1  39 happyReduction_98-happyReduction_98 (HappyAbsSyn31  happy_var_1)-	 =  HappyAbsSyn31-		 (happy_var_1-	)-happyReduction_98 _  = notHappyAtAll --happyReduce_99 = happySpecReduce_1  40 happyReduction_99-happyReduction_99 (HappyAbsSyn28  happy_var_1)-	 =  HappyAbsSyn40-		 (foldr1 C.Pair happy_var_1-	)-happyReduction_99 _  = notHappyAtAll --happyReduce_100 = happySpecReduce_1  41 happyReduction_100-happyReduction_100 (HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn28-		 ([happy_var_1]-	)-happyReduction_100 _  = notHappyAtAll --happyReduce_101 = happySpecReduce_3  41 happyReduction_101-happyReduction_101 (HappyAbsSyn28  happy_var_3)-	_-	(HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn28-		 (happy_var_1 : happy_var_3-	)-happyReduction_101 _ _ _  = notHappyAtAll --happyReduce_102 = happySpecReduce_3  42 happyReduction_102-happyReduction_102 (HappyAbsSyn40  happy_var_3)-	_-	(HappyAbsSyn31  happy_var_1)-	 =  HappyAbsSyn40-		 (C.Quant A.Pi happy_var_1 happy_var_3-	)-happyReduction_102 _ _ _  = notHappyAtAll --happyReduce_103 = happyReduce 4 42 happyReduction_103-happyReduction_103 ((HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn22  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn40-		 (foldr C.Lam happy_var_4 happy_var_2-	) `HappyStk` happyRest--happyReduce_104 = happyReduce 4 42 happyReduction_104-happyReduction_104 ((HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn18  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn40-		 (C.LLet happy_var_2 happy_var_4-	) `HappyStk` happyRest--happyReduce_105 = happyReduce 6 42 happyReduction_105-happyReduction_105 (_ `HappyStk`-	(HappyAbsSyn54  happy_var_5) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn20  happy_var_3) `HappyStk`-	(HappyAbsSyn40  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn40-		 (C.Case happy_var_2 happy_var_3 happy_var_5-	) `HappyStk` happyRest--happyReduce_106 = happySpecReduce_1  42 happyReduction_106-happyReduction_106 (HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn40-		 (happy_var_1-	)-happyReduction_106 _  = notHappyAtAll --happyReduce_107 = happySpecReduce_3  42 happyReduction_107-happyReduction_107 (HappyAbsSyn40  happy_var_3)-	_-	(HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn40-		 (C.Plus happy_var_1 happy_var_3-	)-happyReduction_107 _ _ _  = notHappyAtAll --happyReduce_108 = happySpecReduce_3  42 happyReduction_108-happyReduction_108 (HappyAbsSyn40  happy_var_3)-	_-	(HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn40-		 (C.App happy_var_1 [happy_var_3]-	)-happyReduction_108 _ _ _  = notHappyAtAll --happyReduce_109 = happySpecReduce_3  42 happyReduction_109-happyReduction_109 (HappyAbsSyn40  happy_var_3)-	_-	(HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn40-		 (C.App happy_var_3 [happy_var_1]-	)-happyReduction_109 _ _ _  = notHappyAtAll --happyReduce_110 = happySpecReduce_1  43 happyReduction_110-happyReduction_110 (HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn40-		 (happy_var_1-	)-happyReduction_110 _  = notHappyAtAll --happyReduce_111 = happySpecReduce_3  43 happyReduction_111-happyReduction_111 (HappyAbsSyn40  happy_var_3)-	_-	(HappyAbsSyn32  happy_var_1)-	 =  HappyAbsSyn40-		 (C.Quant A.Sigma [happy_var_1] happy_var_3-	)-happyReduction_111 _ _ _  = notHappyAtAll --happyReduce_112 = happySpecReduce_1  44 happyReduction_112-happyReduction_112 (HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn32-		 (C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1-	)-happyReduction_112 _  = notHappyAtAll --happyReduce_113 = happySpecReduce_3  44 happyReduction_113-happyReduction_113 _-	(HappyAbsSyn40  happy_var_2)-	_-	 =  HappyAbsSyn32-		 (C.TBind A.irrelevantDec [] happy_var_2-	)-happyReduction_113 _ _ _  = notHappyAtAll --happyReduce_114 = happySpecReduce_2  44 happyReduction_114-happyReduction_114 (HappyAbsSyn40  happy_var_2)-	(HappyAbsSyn26  happy_var_1)-	 =  HappyAbsSyn32-		 (C.TBind (Dec happy_var_1) [] happy_var_2-	)-happyReduction_114 _ _  = notHappyAtAll --happyReduce_115 = happySpecReduce_1  44 happyReduction_115-happyReduction_115 (HappyAbsSyn32  happy_var_1)-	 =  HappyAbsSyn32-		 (happy_var_1-	)-happyReduction_115 _  = notHappyAtAll --happyReduce_116 = happySpecReduce_1  44 happyReduction_116-happyReduction_116 (HappyAbsSyn27  happy_var_1)-	 =  HappyAbsSyn32-		 (C.TMeasure happy_var_1-	)-happyReduction_116 _  = notHappyAtAll --happyReduce_117 = happySpecReduce_1  44 happyReduction_117-happyReduction_117 (HappyAbsSyn29  happy_var_1)-	 =  HappyAbsSyn32-		 (C.TBound happy_var_1-	)-happyReduction_117 _  = notHappyAtAll --happyReduce_118 = happySpecReduce_1  45 happyReduction_118-happyReduction_118 (HappyAbsSyn28  happy_var_1)-	 =  HappyAbsSyn40-		 (let (f : args) = reverse happy_var_1 in-                if null args then f else C.App f args-	)-happyReduction_118 _  = notHappyAtAll --happyReduce_119 = happySpecReduce_2  45 happyReduction_119-happyReduction_119 (HappyAbsSyn40  happy_var_2)-	_-	 =  HappyAbsSyn40-		 (C.CoSet happy_var_2-	)-happyReduction_119 _ _  = notHappyAtAll --happyReduce_120 = happySpecReduce_1  45 happyReduction_120-happyReduction_120 _-	 =  HappyAbsSyn40-		 (C.Set C.Zero-	)--happyReduce_121 = happySpecReduce_2  45 happyReduction_121-happyReduction_121 (HappyAbsSyn40  happy_var_2)-	_-	 =  HappyAbsSyn40-		 (C.Set happy_var_2-	)-happyReduction_121 _ _  = notHappyAtAll --happyReduce_122 = happySpecReduce_3  45 happyReduction_122-happyReduction_122 (HappyAbsSyn40  happy_var_3)-	_-	(HappyTerminal (T.Number happy_var_1 _))-	 =  HappyAbsSyn40-		 (let n = read happy_var_1 in-                            if n==0 then C.Zero else-                            iterate (C.Plus happy_var_3) happy_var_3 !! (n-1)-	)-happyReduction_122 _ _ _  = notHappyAtAll --happyReduce_123 = happySpecReduce_1  46 happyReduction_123-happyReduction_123 (HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn28-		 ([happy_var_1]-	)-happyReduction_123 _  = notHappyAtAll --happyReduce_124 = happySpecReduce_2  46 happyReduction_124-happyReduction_124 (HappyAbsSyn40  happy_var_2)-	(HappyAbsSyn28  happy_var_1)-	 =  HappyAbsSyn28-		 (happy_var_2 : happy_var_1-	)-happyReduction_124 _ _  = notHappyAtAll --happyReduce_125 = happySpecReduce_3  46 happyReduction_125-happyReduction_125 (HappyAbsSyn23  happy_var_3)-	_-	(HappyAbsSyn28  happy_var_1)-	 =  HappyAbsSyn28-		 (C.Proj happy_var_3 : happy_var_1-	)-happyReduction_125 _ _ _  = notHappyAtAll --happyReduce_126 = happySpecReduce_2  46 happyReduction_126-happyReduction_126 _-	(HappyAbsSyn28  happy_var_1)-	 =  HappyAbsSyn28-		 (C.Set C.Zero : happy_var_1-	)-happyReduction_126 _ _  = notHappyAtAll --happyReduce_127 = happySpecReduce_1  47 happyReduction_127-happyReduction_127 _-	 =  HappyAbsSyn40-		 (C.Size-	)--happyReduce_128 = happySpecReduce_1  47 happyReduction_128-happyReduction_128 _-	 =  HappyAbsSyn40-		 (C.Max-	)--happyReduce_129 = happySpecReduce_1  47 happyReduction_129-happyReduction_129 _-	 =  HappyAbsSyn40-		 (C.Infty-	)--happyReduce_130 = happySpecReduce_1  47 happyReduction_130-happyReduction_130 (HappyAbsSyn48  happy_var_1)-	 =  HappyAbsSyn40-		 (C.Ident happy_var_1-	)-happyReduction_130 _  = notHappyAtAll --happyReduce_131 = happyReduce 5 47 happyReduction_131-happyReduction_131 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn40  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn40-		 (C.Sing happy_var_2 happy_var_4-	) `HappyStk` happyRest--happyReduce_132 = happySpecReduce_3  47 happyReduction_132-happyReduction_132 _-	(HappyAbsSyn40  happy_var_2)-	_-	 =  HappyAbsSyn40-		 (happy_var_2-	)-happyReduction_132 _ _ _  = notHappyAtAll --happyReduce_133 = happySpecReduce_1  47 happyReduction_133-happyReduction_133 _-	 =  HappyAbsSyn40-		 (C.Unknown-	)--happyReduce_134 = happySpecReduce_2  47 happyReduction_134-happyReduction_134 (HappyAbsSyn40  happy_var_2)-	_-	 =  HappyAbsSyn40-		 (C.Succ happy_var_2-	)-happyReduction_134 _ _  = notHappyAtAll --happyReduce_135 = happySpecReduce_1  47 happyReduction_135-happyReduction_135 (HappyTerminal (T.Number happy_var_1 _))-	 =  HappyAbsSyn40-		 (iterate C.Succ C.Zero !! (read happy_var_1)-	)-happyReduction_135 _  = notHappyAtAll --happyReduce_136 = happyReduce 4 47 happyReduction_136-happyReduction_136 (_ `HappyStk`-	(HappyAbsSyn49  happy_var_3) `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn40-		 (C.Record happy_var_3-	) `HappyStk` happyRest--happyReduce_137 = happySpecReduce_1  48 happyReduction_137-happyReduction_137 (HappyTerminal (T.QualId happy_var_1 _))-	 =  HappyAbsSyn48-		 (let (m,n) = happy_var_1 in C.Qual (C.Name m) (C.Name n)-	)-happyReduction_137 _  = notHappyAtAll --happyReduce_138 = happySpecReduce_1  48 happyReduction_138-happyReduction_138 (HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn48-		 (C.QName happy_var_1-	)-happyReduction_138 _  = notHappyAtAll --happyReduce_139 = happySpecReduce_3  49 happyReduction_139-happyReduction_139 (HappyAbsSyn49  happy_var_3)-	_-	(HappyAbsSyn50  happy_var_1)-	 =  HappyAbsSyn49-		 (happy_var_1 : happy_var_3-	)-happyReduction_139 _ _ _  = notHappyAtAll --happyReduce_140 = happySpecReduce_1  49 happyReduction_140-happyReduction_140 (HappyAbsSyn50  happy_var_1)-	 =  HappyAbsSyn49-		 ([happy_var_1]-	)-happyReduction_140 _  = notHappyAtAll --happyReduce_141 = happySpecReduce_0  49 happyReduction_141-happyReduction_141  =  HappyAbsSyn49-		 ([]-	)--happyReduce_142 = happySpecReduce_3  50 happyReduction_142-happyReduction_142 (HappyAbsSyn40  happy_var_3)-	_-	(HappyAbsSyn22  happy_var_1)-	 =  HappyAbsSyn50-		 ((happy_var_1,happy_var_3)-	)-happyReduction_142 _ _ _  = notHappyAtAll --happyReduce_143 = happySpecReduce_3  51 happyReduction_143-happyReduction_143 (HappyAbsSyn40  happy_var_3)-	_-	(HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn51-		 (C.TypeSig happy_var_1 happy_var_3-	)-happyReduction_143 _ _ _  = notHappyAtAll --happyReduce_144 = happyReduce 4 52 happyReduction_144-happyReduction_144 ((HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn31  happy_var_2) `HappyStk`-	(HappyAbsSyn23  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn52-		 (C.Constructor happy_var_1 happy_var_2 (Just happy_var_4)-	) `HappyStk` happyRest--happyReduce_145 = happySpecReduce_2  52 happyReduction_145-happyReduction_145 (HappyAbsSyn31  happy_var_2)-	(HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn52-		 (C.Constructor happy_var_1 happy_var_2 Nothing-	)-happyReduction_145 _ _  = notHappyAtAll --happyReduce_146 = happySpecReduce_3  53 happyReduction_146-happyReduction_146 (HappyAbsSyn52  happy_var_3)-	_-	(HappyAbsSyn53  happy_var_1)-	 =  HappyAbsSyn53-		 (happy_var_3 : happy_var_1-	)-happyReduction_146 _ _ _  = notHappyAtAll --happyReduce_147 = happySpecReduce_2  53 happyReduction_147-happyReduction_147 _-	(HappyAbsSyn53  happy_var_1)-	 =  HappyAbsSyn53-		 (happy_var_1-	)-happyReduction_147 _ _  = notHappyAtAll --happyReduce_148 = happySpecReduce_1  53 happyReduction_148-happyReduction_148 (HappyAbsSyn52  happy_var_1)-	 =  HappyAbsSyn53-		 ([happy_var_1]-	)-happyReduction_148 _  = notHappyAtAll --happyReduce_149 = happySpecReduce_0  53 happyReduction_149-happyReduction_149  =  HappyAbsSyn53-		 ([]-	)--happyReduce_150 = happyReduce 5 54 happyReduction_150-happyReduction_150 ((HappyAbsSyn54  happy_var_5) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn40  happy_var_3) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn58  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn54-		 ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : happy_var_5-	) `HappyStk` happyRest--happyReduce_151 = happySpecReduce_3  54 happyReduction_151-happyReduction_151 (HappyAbsSyn40  happy_var_3)-	_-	(HappyAbsSyn58  happy_var_1)-	 =  HappyAbsSyn54-		 ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : []-	)-happyReduction_151 _ _ _  = notHappyAtAll --happyReduce_152 = happySpecReduce_3  54 happyReduction_152-happyReduction_152 (HappyAbsSyn54  happy_var_3)-	_-	(HappyAbsSyn58  happy_var_1)-	 =  HappyAbsSyn54-		 ((C.Clause Nothing [happy_var_1] Nothing) : happy_var_3-	)-happyReduction_152 _ _ _  = notHappyAtAll --happyReduce_153 = happySpecReduce_1  54 happyReduction_153-happyReduction_153 (HappyAbsSyn58  happy_var_1)-	 =  HappyAbsSyn54-		 ((C.Clause Nothing [happy_var_1] Nothing) : []-	)-happyReduction_153 _  = notHappyAtAll --happyReduce_154 = happySpecReduce_0  54 happyReduction_154-happyReduction_154  =  HappyAbsSyn54-		 ([]-	)--happyReduce_155 = happyReduce 4 55 happyReduction_155-happyReduction_155 ((HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn56  happy_var_2) `HappyStk`-	(HappyAbsSyn23  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn55-		 (C.Clause (Just happy_var_1) happy_var_2 (Just happy_var_4)-	) `HappyStk` happyRest--happyReduce_156 = happySpecReduce_2  55 happyReduction_156-happyReduction_156 (HappyAbsSyn56  happy_var_2)-	(HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn55-		 (C.Clause (Just happy_var_1) happy_var_2 Nothing-	)-happyReduction_156 _ _  = notHappyAtAll --happyReduce_157 = happySpecReduce_1  56 happyReduction_157-happyReduction_157 (HappyAbsSyn56  happy_var_1)-	 =  HappyAbsSyn56-		 (reverse happy_var_1-	)-happyReduction_157 _  = notHappyAtAll --happyReduce_158 = happySpecReduce_0  57 happyReduction_158-happyReduction_158  =  HappyAbsSyn56-		 ([]-	)--happyReduce_159 = happySpecReduce_2  57 happyReduction_159-happyReduction_159 (HappyAbsSyn58  happy_var_2)-	(HappyAbsSyn56  happy_var_1)-	 =  HappyAbsSyn56-		 (happy_var_2 : happy_var_1-	)-happyReduction_159 _ _  = notHappyAtAll --happyReduce_160 = happySpecReduce_3  57 happyReduction_160-happyReduction_160 (HappyAbsSyn58  happy_var_3)-	_-	(HappyAbsSyn56  happy_var_1)-	 =  HappyAbsSyn56-		 (happy_var_3 : happy_var_1-	)-happyReduction_160 _ _ _  = notHappyAtAll --happyReduce_161 = happySpecReduce_2  58 happyReduction_161-happyReduction_161 _-	_-	 =  HappyAbsSyn58-		 (C.AbsurdP-	)--happyReduce_162 = happySpecReduce_3  58 happyReduction_162-happyReduction_162 _-	(HappyAbsSyn58  happy_var_2)-	_-	 =  HappyAbsSyn58-		 (happy_var_2-	)-happyReduction_162 _ _ _  = notHappyAtAll --happyReduce_163 = happySpecReduce_1  58 happyReduction_163-happyReduction_163 (HappyAbsSyn58  happy_var_1)-	 =  HappyAbsSyn58-		 (happy_var_1-	)-happyReduction_163 _  = notHappyAtAll --happyReduce_164 = happySpecReduce_2  58 happyReduction_164-happyReduction_164 (HappyAbsSyn58  happy_var_2)-	_-	 =  HappyAbsSyn58-		 (C.SuccP happy_var_2-	)-happyReduction_164 _ _  = notHappyAtAll --happyReduce_165 = happySpecReduce_2  58 happyReduction_165-happyReduction_165 _-	_-	 =  HappyAbsSyn58-		 (C.DotP (C.Set C.Zero)-	)--happyReduce_166 = happySpecReduce_2  58 happyReduction_166-happyReduction_166 (HappyAbsSyn40  happy_var_2)-	_-	 =  HappyAbsSyn58-		 (C.DotP happy_var_2-	)-happyReduction_166 _ _  = notHappyAtAll --happyReduce_167 = happySpecReduce_3  59 happyReduction_167-happyReduction_167 (HappyAbsSyn58  happy_var_3)-	_-	(HappyAbsSyn58  happy_var_1)-	 =  HappyAbsSyn58-		 (C.PairP happy_var_1 happy_var_3-	)-happyReduction_167 _ _ _  = notHappyAtAll --happyReduce_168 = happySpecReduce_1  59 happyReduction_168-happyReduction_168 (HappyAbsSyn58  happy_var_1)-	 =  HappyAbsSyn58-		 (happy_var_1-	)-happyReduction_168 _  = notHappyAtAll --happyReduce_169 = happySpecReduce_1  60 happyReduction_169-happyReduction_169 (HappyAbsSyn58  happy_var_1)-	 =  HappyAbsSyn58-		 (happy_var_1-	)-happyReduction_169 _  = notHappyAtAll --happyReduce_170 = happySpecReduce_3  60 happyReduction_170-happyReduction_170 (HappyAbsSyn23  happy_var_3)-	_-	(HappyAbsSyn40  happy_var_1)-	 =  HappyAbsSyn58-		 (C.SizeP happy_var_1 happy_var_3-	)-happyReduction_170 _ _ _  = notHappyAtAll --happyReduce_171 = happySpecReduce_3  60 happyReduction_171-happyReduction_171 (HappyAbsSyn40  happy_var_3)-	_-	(HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn58-		 (C.SizeP happy_var_3 happy_var_1-	)-happyReduction_171 _ _ _  = notHappyAtAll --happyReduce_172 = happySpecReduce_1  60 happyReduction_172-happyReduction_172 (HappyAbsSyn58  happy_var_1)-	 =  HappyAbsSyn58-		 (happy_var_1-	)-happyReduction_172 _  = notHappyAtAll --happyReduce_173 = happySpecReduce_3  60 happyReduction_173-happyReduction_173 (HappyAbsSyn58  happy_var_3)-	_-	(HappyAbsSyn58  happy_var_1)-	 =  HappyAbsSyn58-		 (patApp happy_var_1 [happy_var_3]-	)-happyReduction_173 _ _ _  = notHappyAtAll --happyReduce_174 = happySpecReduce_2  61 happyReduction_174-happyReduction_174 (HappyAbsSyn58  happy_var_2)-	(HappyAbsSyn58  happy_var_1)-	 =  HappyAbsSyn58-		 (patApp happy_var_1 [happy_var_2]-	)-happyReduction_174 _ _  = notHappyAtAll --happyReduce_175 = happySpecReduce_2  61 happyReduction_175-happyReduction_175 (HappyAbsSyn58  happy_var_2)-	(HappyAbsSyn58  happy_var_1)-	 =  HappyAbsSyn58-		 (patApp happy_var_1 [happy_var_2]-	)-happyReduction_175 _ _  = notHappyAtAll --happyReduce_176 = happySpecReduce_1  62 happyReduction_176-happyReduction_176 (HappyAbsSyn23  happy_var_1)-	 =  HappyAbsSyn58-		 (C.IdentP (C.QName happy_var_1)-	)-happyReduction_176 _  = notHappyAtAll --happyReduce_177 = happySpecReduce_2  62 happyReduction_177-happyReduction_177 (HappyAbsSyn23  happy_var_2)-	_-	 =  HappyAbsSyn58-		 (C.ConP True (C.QName happy_var_2) []-	)-happyReduction_177 _ _  = notHappyAtAll --happyReduce_178 = happySpecReduce_1  63 happyReduction_178-happyReduction_178 (HappyAbsSyn64  happy_var_1)-	 =  HappyAbsSyn54-		 (reverse happy_var_1-	)-happyReduction_178 _  = notHappyAtAll --happyReduce_179 = happySpecReduce_3  64 happyReduction_179-happyReduction_179 (HappyAbsSyn55  happy_var_3)-	_-	(HappyAbsSyn64  happy_var_1)-	 =  HappyAbsSyn64-		 (happy_var_3 : happy_var_1-	)-happyReduction_179 _ _ _  = notHappyAtAll --happyReduce_180 = happySpecReduce_2  64 happyReduction_180-happyReduction_180 _-	(HappyAbsSyn64  happy_var_1)-	 =  HappyAbsSyn64-		 (happy_var_1-	)-happyReduction_180 _ _  = notHappyAtAll --happyReduce_181 = happySpecReduce_1  64 happyReduction_181-happyReduction_181 (HappyAbsSyn55  happy_var_1)-	 =  HappyAbsSyn64-		 ([happy_var_1]-	)-happyReduction_181 _  = notHappyAtAll --happyReduce_182 = happySpecReduce_0  64 happyReduction_182-happyReduction_182  =  HappyAbsSyn64-		 ([]-	)--happyReduce_183 = happyReduce 5 65 happyReduction_183-happyReduction_183 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn22  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBind (Dec Default) happy_var_2 happy_var_4-	) `HappyStk` happyRest--happyReduce_184 = happyReduce 5 65 happyReduction_184-happyReduction_184 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn22  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBind A.irrelevantDec happy_var_2 happy_var_4-	) `HappyStk` happyRest--happyReduce_185 = happyReduce 6 65 happyReduction_185-happyReduction_185 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_5) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn22  happy_var_3) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn26  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBind (Dec happy_var_1) happy_var_3 happy_var_5-	) `HappyStk` happyRest--happyReduce_186 = happyReduce 6 65 happyReduction_186-happyReduction_186 (_ `HappyStk`-	(HappyAbsSyn40  happy_var_5) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn22  happy_var_3) `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn32-		 (C.TBind (Dec SPos) happy_var_3 happy_var_5-	) `HappyStk` happyRest--happyReduce_187 = happySpecReduce_0  66 happyReduction_187-happyReduction_187  =  HappyAbsSyn31-		 ([]-	)--happyReduce_188 = happySpecReduce_2  66 happyReduction_188-happyReduction_188 (HappyAbsSyn31  happy_var_2)-	(HappyAbsSyn32  happy_var_1)-	 =  HappyAbsSyn31-		 (happy_var_1 : happy_var_2-	)-happyReduction_188 _ _  = notHappyAtAll --happyNewToken action sts stk [] =-	action 122 122 notHappyAtAll (HappyState action) sts stk []--happyNewToken action sts stk (tk:tks) =-	let cont i = action i i tk (HappyState action) sts stk tks in-	case tk of {-	T.Id happy_dollar_dollar _ -> cont 67;-	T.QualId happy_dollar_dollar _ -> cont 68;-	T.Number happy_dollar_dollar _ -> cont 69;-	T.Data _ -> cont 70;-	T.CoData _ -> cont 71;-	T.Record _ -> cont 72;-	T.Sized _ -> cont 73;-	T.Fields _ -> cont 74;-	T.Mutual _ -> cont 75;-	T.Fun _ -> cont 76;-	T.CoFun _ -> cont 77;-	T.Pattern _ -> cont 78;-	T.Case _ -> cont 79;-	T.Def _ -> cont 80;-	T.Let _ -> cont 81;-	T.In _ -> cont 82;-	T.Eval _ -> cont 83;-	T.Fail _ -> cont 84;-	T.Check _ -> cont 85;-	T.TrustMe _ -> cont 86;-	T.Impredicative _ -> cont 87;-	T.Type _ -> cont 88;-	T.Set _ -> cont 89;-	T.CoSet _ -> cont 90;-	T.Size _ -> cont 91;-	T.Infty _ -> cont 92;-	T.Succ _ -> cont 93;-	T.Max _ -> cont 94;-	T.LTri _ -> cont 95;-	T.RTri _ -> cont 96;-	T.AngleOpen _ -> cont 97;-	T.AngleClose _ -> cont 98;-	T.BrOpen _ -> cont 99;-	T.BrClose _ -> cont 100;-	T.BracketOpen _ -> cont 101;-	T.BracketClose _ -> cont 102;-	T.PrOpen _ -> cont 103;-	T.PrClose _ -> cont 104;-	T.Bar _ -> cont 105;-	T.Comma _ -> cont 106;-	T.Sem _ -> cont 107;-	T.Col _ -> cont 108;-	T.Dot _ -> cont 109;-	T.Arrow _ -> cont 110;-	T.Leq _ -> cont 111;-	T.Eq _ -> cont 112;-	T.PlusPlus _ -> cont 113;-	T.Plus _ -> cont 114;-	T.Minus _ -> cont 115;-	T.Slash _ -> cont 116;-	T.Times _ -> cont 117;-	T.Hat _ -> cont 118;-	T.Amp _ -> cont 119;-	T.Lam _ -> cont 120;-	T.Underscore _ -> cont 121;-	_ -> happyError' (tk:tks)-	}--happyError_ 122 tk tks = happyError' tks-happyError_ _ tk tks = happyError' (tk:tks)--newtype HappyIdentity a = HappyIdentity a-happyIdentity = HappyIdentity-happyRunIdentity (HappyIdentity a) = a--instance Functor HappyIdentity where-    fmap f (HappyIdentity a) = HappyIdentity (f a)--instance Applicative HappyIdentity where-    pure  = return-    (<*>) = ap-instance Monad HappyIdentity where-    return = HappyIdentity-    (HappyIdentity p) >>= q = q p--happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b-happyThen = (>>=)-happyReturn :: () => a -> HappyIdentity a-happyReturn = (return)-happyThen1 m k tks = (>>=) m (\a -> k a tks)-happyReturn1 :: () => a -> b -> HappyIdentity a-happyReturn1 = \a tks -> (return) a-happyError' :: () => [(T.Token)] -> HappyIdentity a-happyError' = HappyIdentity . parseError--parse tks = happyRunIdentity happySomeParser where-  happySomeParser = happyThen (happyParse action_0 tks) (\x -> case x of {HappyAbsSyn4 z -> happyReturn z; _other -> notHappyAtAll })--happySeq = happyDontSeq---parseError :: [T.Token] -> a-parseError [] = error "Parse error at EOF"-parseError (x : xs) = error ("Parse error at token " ++ T.prettyTok x)-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "<built-in>" #-}-{-# LINE 1 "<command-line>" #-}--------# 1 "/usr/include/stdc-predef.h" 1 3 4--# 17 "/usr/include/stdc-predef.h" 3 4--------------------------------------------{-# LINE 7 "<command-line>" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp --{-# LINE 13 "templates/GenericTemplate.hs" #-}--{-# LINE 46 "templates/GenericTemplate.hs" #-}---------{-# LINE 67 "templates/GenericTemplate.hs" #-}--{-# LINE 77 "templates/GenericTemplate.hs" #-}--{-# LINE 86 "templates/GenericTemplate.hs" #-}--infixr 9 `HappyStk`-data HappyStk a = HappyStk a (HappyStk a)---------------------------------------------------------------------------------- starting the parse--happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll---------------------------------------------------------------------------------- Accepting the parse---- If the current token is (1), it means we've just accepted a partial--- parse (a %partial parser).  We must ignore the saved token on the top of--- the stack in this case.-happyAccept (1) tk st sts (_ `HappyStk` ans `HappyStk` _) =-        happyReturn1 ans-happyAccept j tk st sts (HappyStk ans _) = -         (happyReturn1 ans)---------------------------------------------------------------------------------- Arrays only: do the next action--{-# LINE 155 "templates/GenericTemplate.hs" #-}---------------------------------------------------------------------------------- HappyState data type (not arrays)----newtype HappyState b c = HappyState-        (Int ->                    -- token number-         Int ->                    -- token number (yes, again)-         b ->                           -- token semantic value-         HappyState b c ->              -- current state-         [HappyState b c] ->            -- state stack-         c)------------------------------------------------------------------------------------ Shifting a token--happyShift new_state (1) tk st sts stk@(x `HappyStk` _) =-     let i = (case x of { HappyErrorToken (i) -> i }) in---     trace "shifting the error token" $-     new_state i i tk (HappyState (new_state)) ((st):(sts)) (stk)--happyShift new_state i tk st sts stk =-     happyNewToken new_state ((st):(sts)) ((HappyTerminal (tk))`HappyStk`stk)---- happyReduce is specialised for the common cases.--happySpecReduce_0 i fn (1) tk st sts stk-     = happyFail (1) tk st sts stk-happySpecReduce_0 nt fn j tk st@((HappyState (action))) sts stk-     = action nt j tk st ((st):(sts)) (fn `HappyStk` stk)--happySpecReduce_1 i fn (1) tk st sts stk-     = happyFail (1) tk st sts stk-happySpecReduce_1 nt fn j tk _ sts@(((st@(HappyState (action))):(_))) (v1`HappyStk`stk')-     = let r = fn v1 in-       happySeq r (action nt j tk st sts (r `HappyStk` stk'))--happySpecReduce_2 i fn (1) tk st sts stk-     = happyFail (1) tk st sts stk-happySpecReduce_2 nt fn j tk _ ((_):(sts@(((st@(HappyState (action))):(_))))) (v1`HappyStk`v2`HappyStk`stk')-     = let r = fn v1 v2 in-       happySeq r (action nt j tk st sts (r `HappyStk` stk'))--happySpecReduce_3 i fn (1) tk st sts stk-     = happyFail (1) tk st sts stk-happySpecReduce_3 nt fn j tk _ ((_):(((_):(sts@(((st@(HappyState (action))):(_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')-     = let r = fn v1 v2 v3 in-       happySeq r (action nt j tk st sts (r `HappyStk` stk'))--happyReduce k i fn (1) tk st sts stk-     = happyFail (1) tk st sts stk-happyReduce k nt fn j tk st sts stk-     = case happyDrop (k - ((1) :: Int)) sts of-         sts1@(((st1@(HappyState (action))):(_))) ->-                let r = fn stk in  -- it doesn't hurt to always seq here...-                happyDoSeq r (action nt j tk st1 sts1 r)--happyMonadReduce k nt fn (1) tk st sts stk-     = happyFail (1) tk st sts stk-happyMonadReduce k nt fn j tk st sts stk =-      case happyDrop k ((st):(sts)) of-        sts1@(((st1@(HappyState (action))):(_))) ->-          let drop_stk = happyDropStk k stk in-          happyThen1 (fn stk tk) (\r -> action nt j tk st1 sts1 (r `HappyStk` drop_stk))--happyMonad2Reduce k nt fn (1) tk st sts stk-     = happyFail (1) tk st sts stk-happyMonad2Reduce k nt fn j tk st sts stk =-      case happyDrop k ((st):(sts)) of-        sts1@(((st1@(HappyState (action))):(_))) ->-         let drop_stk = happyDropStk k stk------             new_state = action--          in-          happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))--happyDrop (0) l = l-happyDrop n ((_):(t)) = happyDrop (n - ((1) :: Int)) t--happyDropStk (0) l = l-happyDropStk n (x `HappyStk` xs) = happyDropStk (n - ((1)::Int)) xs---------------------------------------------------------------------------------- Moving to a new state after a reduction--{-# LINE 256 "templates/GenericTemplate.hs" #-}-happyGoto action j tk st = action j j tk (HappyState action)----------------------------------------------------------------------------------- Error recovery ((1) is the error token)---- parse error if we are in recovery and we fail again-happyFail (1) tk old_st _ stk@(x `HappyStk` _) =-     let i = (case x of { HappyErrorToken (i) -> i }) in---      trace "failing" $ -        happyError_ i tk--{-  We don't need state discarding for our restricted implementation of-    "error".  In fact, it can cause some bogus parses, so I've disabled it-    for now --SDM---- discard a state-happyFail  (1) tk old_st (((HappyState (action))):(sts)) -                                                (saved_tok `HappyStk` _ `HappyStk` stk) =---      trace ("discarding state, depth " ++ show (length stk))  $-        action (1) (1) tk (HappyState (action)) sts ((saved_tok`HappyStk`stk))--}---- Enter error recovery: generate an error token,---                       save the old token and carry on.-happyFail  i tk (HappyState (action)) sts stk =---      trace "entering error recovery" $-        action (1) (1) tk (HappyState (action)) sts ( (HappyErrorToken (i)) `HappyStk` stk)---- Internal happy errors:--notHappyAtAll :: a-notHappyAtAll = error "Internal Happy error\n"---------------------------------------------------------------------------------- Hack to get the typechecker to accept our action functions---------------------------------------------------------------------------------------- Seq-ing.  If the --strict flag is given, then Happy emits ---      happySeq = happyDoSeq--- otherwise it emits---      happySeq = happyDontSeq--happyDoSeq, happyDontSeq :: a -> b -> b-happyDoSeq   a b = a `seq` b-happyDontSeq a b = b---------------------------------------------------------------------------------- Don't inline any functions from the template.  GHC has a nasty habit--- of deciding to inline happyGoto everywhere, which increases the size of--- the generated parser quite a bit.--{-# LINE 322 "templates/GenericTemplate.hs" #-}+import qualified Data.Array as Happy_Data_Array+import qualified Data.Bits as Bits+import Control.Applicative(Applicative(..))+import Control.Monad (ap)++-- parser produced by Happy Version 1.20.0++data HappyAbsSyn+        = HappyTerminal (T.Token)+        | HappyErrorToken Prelude.Int+        | HappyAbsSyn4 ([C.Declaration])+        | HappyAbsSyn6 (C.Declaration)+        | HappyAbsSyn12 ((C.Name, C.Telescope, C.Type, [C.Constructor], [C.Name]))+        | HappyAbsSyn13 ((C.Name, C.Telescope, C.Type, C.Constructor, [C.Name]))+        | HappyAbsSyn18 (C.LetDef)+        | HappyAbsSyn19 (Bool)+        | HappyAbsSyn20 (Maybe C.Type)+        | HappyAbsSyn22 ([Name])+        | HappyAbsSyn23 (Name)+        | HappyAbsSyn26 (Pol)+        | HappyAbsSyn27 (A.Measure C.Expr)+        | HappyAbsSyn28 ([C.Expr])+        | HappyAbsSyn29 (A.Bound C.Expr)+        | HappyAbsSyn31 (C.Telescope)+        | HappyAbsSyn32 (C.TBind)+        | HappyAbsSyn35 ((Dec, C.Name))+        | HappyAbsSyn38 (C.Expr)+        | HappyAbsSyn46 (C.QName)+        | HappyAbsSyn47 ([([Name],C.Expr)])+        | HappyAbsSyn48 (([Name],C.Expr))+        | HappyAbsSyn49 (C.TypeSig)+        | HappyAbsSyn50 (C.Constructor)+        | HappyAbsSyn51 ([C.Constructor ])+        | HappyAbsSyn52 ([C.Clause])+        | HappyAbsSyn53 (C.Clause)+        | HappyAbsSyn54 ([C.Pattern])+        | HappyAbsSyn56 (C.Pattern)+        | HappyAbsSyn62 ([C.Clause ])++{- to allow type-synonyms as our monads (likely+ - with explicitly-specified bind and return)+ - in Haskell98, it seems that with+ - /type M a = .../, then /(HappyReduction M)/+ - is not allowed.  But Happy is a+ - code-generator that can just substitute it.+type HappyReduction m =+           Prelude.Int+        -> (T.Token)+        -> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> m HappyAbsSyn)+        -> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> m HappyAbsSyn)]+        -> HappyStk HappyAbsSyn+        -> [(T.Token)] -> m HappyAbsSyn+-}++action_0,+ action_1,+ action_2,+ action_3,+ action_4,+ action_5,+ action_6,+ action_7,+ action_8,+ action_9,+ action_10,+ action_11,+ action_12,+ action_13,+ action_14,+ action_15,+ action_16,+ action_17,+ action_18,+ action_19,+ action_20,+ action_21,+ action_22,+ action_23,+ action_24,+ action_25,+ action_26,+ action_27,+ action_28,+ action_29,+ action_30,+ action_31,+ action_32,+ action_33,+ action_34,+ action_35,+ action_36,+ action_37,+ action_38,+ action_39,+ action_40,+ action_41,+ action_42,+ action_43,+ action_44,+ action_45,+ action_46,+ action_47,+ action_48,+ action_49,+ action_50,+ action_51,+ action_52,+ action_53,+ action_54,+ action_55,+ action_56,+ action_57,+ action_58,+ action_59,+ action_60,+ action_61,+ action_62,+ action_63,+ action_64,+ action_65,+ action_66,+ action_67,+ action_68,+ action_69,+ action_70,+ action_71,+ action_72,+ action_73,+ action_74,+ action_75,+ action_76,+ action_77,+ action_78,+ action_79,+ action_80,+ action_81,+ action_82,+ action_83,+ action_84,+ action_85,+ action_86,+ action_87,+ action_88,+ action_89,+ action_90,+ action_91,+ action_92,+ action_93,+ action_94,+ action_95,+ action_96,+ action_97,+ action_98,+ action_99,+ action_100,+ action_101,+ action_102,+ action_103,+ action_104,+ action_105,+ action_106,+ action_107,+ action_108,+ action_109,+ action_110,+ action_111,+ action_112,+ action_113,+ action_114,+ action_115,+ action_116,+ action_117,+ action_118,+ action_119,+ action_120,+ action_121,+ action_122,+ action_123,+ action_124,+ action_125,+ action_126,+ action_127,+ action_128,+ action_129,+ action_130,+ action_131,+ action_132,+ action_133,+ action_134,+ action_135,+ action_136,+ action_137,+ action_138,+ action_139,+ action_140,+ action_141,+ action_142,+ action_143,+ action_144,+ action_145,+ action_146,+ action_147,+ action_148,+ action_149,+ action_150,+ action_151,+ action_152,+ action_153,+ action_154,+ action_155,+ action_156,+ action_157,+ action_158,+ action_159,+ action_160,+ action_161,+ action_162,+ action_163,+ action_164,+ action_165,+ action_166,+ action_167,+ action_168,+ action_169,+ action_170,+ action_171,+ action_172,+ action_173,+ action_174,+ action_175,+ action_176,+ action_177,+ action_178,+ action_179,+ action_180,+ action_181,+ action_182,+ action_183,+ action_184,+ action_185,+ action_186,+ action_187,+ action_188,+ action_189,+ action_190,+ action_191,+ action_192,+ action_193,+ action_194,+ action_195,+ action_196,+ action_197,+ action_198,+ action_199,+ action_200,+ action_201,+ action_202,+ action_203,+ action_204,+ action_205,+ action_206,+ action_207,+ action_208,+ action_209,+ action_210,+ action_211,+ action_212,+ action_213,+ action_214,+ action_215,+ action_216,+ action_217,+ action_218,+ action_219,+ action_220,+ action_221,+ action_222,+ action_223,+ action_224,+ action_225,+ action_226,+ action_227,+ action_228,+ action_229,+ action_230,+ action_231,+ action_232,+ action_233,+ action_234,+ action_235,+ action_236,+ action_237,+ action_238,+ action_239,+ action_240,+ action_241,+ action_242,+ action_243,+ action_244,+ action_245,+ action_246,+ action_247,+ action_248,+ action_249,+ action_250,+ action_251,+ action_252,+ action_253,+ action_254,+ action_255,+ action_256,+ action_257,+ action_258,+ action_259,+ action_260,+ action_261,+ action_262,+ action_263,+ action_264,+ action_265,+ action_266,+ action_267,+ action_268,+ action_269,+ action_270,+ action_271,+ action_272,+ action_273,+ action_274,+ action_275,+ action_276,+ action_277,+ action_278,+ action_279,+ action_280,+ action_281,+ action_282,+ action_283,+ action_284,+ action_285,+ action_286,+ action_287,+ action_288,+ action_289,+ action_290,+ action_291,+ action_292,+ action_293,+ action_294,+ action_295,+ action_296,+ action_297,+ action_298,+ action_299,+ action_300,+ action_301,+ action_302,+ action_303,+ action_304,+ action_305,+ action_306,+ action_307,+ action_308,+ action_309,+ action_310,+ action_311,+ action_312,+ action_313,+ action_314,+ action_315,+ action_316,+ action_317,+ action_318,+ action_319,+ action_320,+ action_321,+ action_322,+ action_323,+ action_324,+ action_325,+ action_326,+ action_327,+ action_328,+ action_329,+ action_330,+ action_331,+ action_332,+ action_333,+ action_334,+ action_335,+ action_336,+ action_337,+ action_338,+ action_339,+ action_340,+ action_341,+ action_342,+ action_343,+ action_344,+ action_345,+ action_346,+ action_347,+ action_348,+ action_349,+ action_350,+ action_351,+ action_352,+ action_353,+ action_354,+ action_355,+ action_356,+ action_357,+ action_358,+ action_359,+ action_360,+ action_361,+ action_362,+ action_363,+ action_364,+ action_365,+ action_366,+ action_367,+ action_368,+ action_369,+ action_370,+ action_371,+ action_372,+ action_373,+ action_374,+ action_375,+ action_376,+ action_377,+ action_378,+ action_379,+ action_380,+ action_381,+ action_382,+ action_383,+ action_384,+ action_385,+ action_386,+ action_387,+ action_388,+ action_389,+ action_390,+ action_391,+ action_392,+ action_393,+ action_394,+ action_395,+ action_396,+ action_397 :: () => Prelude.Int -> ({-HappyReduction (HappyIdentity) = -}+           Prelude.Int+        -> (T.Token)+        -> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)+        -> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)]+        -> HappyStk HappyAbsSyn+        -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)++happyReduce_1,+ happyReduce_2,+ happyReduce_3,+ happyReduce_4,+ happyReduce_5,+ happyReduce_6,+ happyReduce_7,+ happyReduce_8,+ happyReduce_9,+ happyReduce_10,+ happyReduce_11,+ happyReduce_12,+ happyReduce_13,+ happyReduce_14,+ happyReduce_15,+ happyReduce_16,+ happyReduce_17,+ happyReduce_18,+ happyReduce_19,+ happyReduce_20,+ happyReduce_21,+ happyReduce_22,+ happyReduce_23,+ happyReduce_24,+ happyReduce_25,+ happyReduce_26,+ happyReduce_27,+ happyReduce_28,+ happyReduce_29,+ happyReduce_30,+ happyReduce_31,+ happyReduce_32,+ happyReduce_33,+ happyReduce_34,+ happyReduce_35,+ happyReduce_36,+ happyReduce_37,+ happyReduce_38,+ happyReduce_39,+ happyReduce_40,+ happyReduce_41,+ happyReduce_42,+ happyReduce_43,+ happyReduce_44,+ happyReduce_45,+ happyReduce_46,+ happyReduce_47,+ happyReduce_48,+ happyReduce_49,+ happyReduce_50,+ happyReduce_51,+ happyReduce_52,+ happyReduce_53,+ happyReduce_54,+ happyReduce_55,+ happyReduce_56,+ happyReduce_57,+ happyReduce_58,+ happyReduce_59,+ happyReduce_60,+ happyReduce_61,+ happyReduce_62,+ happyReduce_63,+ happyReduce_64,+ happyReduce_65,+ happyReduce_66,+ happyReduce_67,+ happyReduce_68,+ happyReduce_69,+ happyReduce_70,+ happyReduce_71,+ happyReduce_72,+ happyReduce_73,+ happyReduce_74,+ happyReduce_75,+ happyReduce_76,+ happyReduce_77,+ happyReduce_78,+ happyReduce_79,+ happyReduce_80,+ happyReduce_81,+ happyReduce_82,+ happyReduce_83,+ happyReduce_84,+ happyReduce_85,+ happyReduce_86,+ happyReduce_87,+ happyReduce_88,+ happyReduce_89,+ happyReduce_90,+ happyReduce_91,+ happyReduce_92,+ happyReduce_93,+ happyReduce_94,+ happyReduce_95,+ happyReduce_96,+ happyReduce_97,+ happyReduce_98,+ happyReduce_99,+ happyReduce_100,+ happyReduce_101,+ happyReduce_102,+ happyReduce_103,+ happyReduce_104,+ happyReduce_105,+ happyReduce_106,+ happyReduce_107,+ happyReduce_108,+ happyReduce_109,+ happyReduce_110,+ happyReduce_111,+ happyReduce_112,+ happyReduce_113,+ happyReduce_114,+ happyReduce_115,+ happyReduce_116,+ happyReduce_117,+ happyReduce_118,+ happyReduce_119,+ happyReduce_120,+ happyReduce_121,+ happyReduce_122,+ happyReduce_123,+ happyReduce_124,+ happyReduce_125,+ happyReduce_126,+ happyReduce_127,+ happyReduce_128,+ happyReduce_129,+ happyReduce_130,+ happyReduce_131,+ happyReduce_132,+ happyReduce_133,+ happyReduce_134,+ happyReduce_135,+ happyReduce_136,+ happyReduce_137,+ happyReduce_138,+ happyReduce_139,+ happyReduce_140,+ happyReduce_141,+ happyReduce_142,+ happyReduce_143,+ happyReduce_144,+ happyReduce_145,+ happyReduce_146,+ happyReduce_147,+ happyReduce_148,+ happyReduce_149,+ happyReduce_150,+ happyReduce_151,+ happyReduce_152,+ happyReduce_153,+ happyReduce_154,+ happyReduce_155,+ happyReduce_156,+ happyReduce_157,+ happyReduce_158,+ happyReduce_159,+ happyReduce_160,+ happyReduce_161,+ happyReduce_162,+ happyReduce_163,+ happyReduce_164,+ happyReduce_165,+ happyReduce_166,+ happyReduce_167,+ happyReduce_168,+ happyReduce_169,+ happyReduce_170,+ happyReduce_171,+ happyReduce_172,+ happyReduce_173,+ happyReduce_174,+ happyReduce_175,+ happyReduce_176,+ happyReduce_177,+ happyReduce_178,+ happyReduce_179 :: () => ({-HappyReduction (HappyIdentity) = -}+           Prelude.Int+        -> (T.Token)+        -> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)+        -> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)]+        -> HappyStk HappyAbsSyn+        -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)++happyExpList :: Happy_Data_Array.Array Prelude.Int Prelude.Int+happyExpList = Happy_Data_Array.listArray (0,2376) ([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3960,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,256,0,0,0,0,0,0,0,1,0,0,0,0,0,0,6144,0,0,0,0,0,0,0,0,0,1,0,0,0,0,256,0,0,0,0,0,0,0,1,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30720,7951,256,0,0,0,0,0,3960,31,1,0,0,0,0,30720,7951,256,0,0,0,0,0,3960,31,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,256,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5120,3524,0,0,0,0,0,0,0,0,0,0,0,0,0,5120,3524,0,0,0,0,0,0,0,0,0,0,0,256,0,1024,3524,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,21760,3524,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,50196,13,0,0,0,0,0,256,2,0,0,0,0,1,0,0,0,0,0,0,256,0,0,128,0,0,0,0,0,0,513,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30720,7951,512,0,0,0,0,0,1,0,0,0,0,0,0,256,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,9984,0,4175,16388,0,0,0,0,0,0,0,0,0,0,0,30720,7951,512,0,0,0,0,0,3960,31,2,0,0,0,0,30720,7951,512,0,0,0,0,0,3960,31,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,20224,1040,64,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,30031,28100,0,0,0,0,39,20288,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9984,49152,21839,19908,0,0,0,0,0,16384,54357,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21760,3524,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,12288,32768,0,0,0,0,1792,16384,4175,16388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,20519,20416,50261,109,0,0,0,256,0,1024,3524,0,0,0,0,7,20224,16,64,0,0,0,9984,0,4175,16384,0,0,0,0,39,20224,16,64,0,0,0,256,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,128,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,50261,13,0,0,0,0,0,0,2,0,0,0,0,0,0,50261,13,0,0,0,256,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,4224,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,256,0,0,0,0,0,0,0,50261,13,0,0,0,0,0,0,0,0,0,0,0,0,0,258,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,512,0,0,0,0,9984,49232,21839,28100,0,0,0,0,1,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,256,0,4116,4,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,16,0,0,0,0,0,0,8,0,0,0,0,0,0,32832,16,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,16,0,0,0,0,0,128,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,9984,49152,4175,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,39,20416,50261,77,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,64,0,0,0,0,0,0,16384,0,0,0,0,0,39,20416,16,64,0,0,0,0,0,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,32,0,0,0,0,9984,49232,30031,28100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,4100,4,0,0,0,0,39,20224,1072,64,0,0,0,0,0,0,0,0,0,0,0,39,20224,1040,64,0,0,0,9984,0,4175,16388,0,0,0,0,1,0,0,0,0,0,0,9984,0,4175,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,512,0,0,0,0,0,0,0,256,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,2,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,520,0,0,0,0,9984,49232,21839,28100,0,0,0,0,1,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,39,20224,1040,64,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,8,0,0,0,0,32768,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,8192,0,0,0,0,0,0,0,32,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,32,0,0,0,0,0,0,512,1,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,8,0,0,0,0,0,0,512,0,0,0,0,0,0,0,2,0,0,0,0,0,0,512,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,256,0,4100,4,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,128,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,32,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,0,0,0,0,0,0,8,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,32,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,8192,0,0,0,0,256,0,4100,4,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,8192,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,256,0,4100,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0+        ])++{-# NOINLINE happyExpListPerState #-}+happyExpListPerState st =+    token_strs_expected+  where token_strs = ["error","%dummy","%start_parse","TopLevel","Declarations","Declaration","Data","SizedData","CoData","SizedCoData","RecordDecl","DataDef","DataDef1","Fun","CoFun","Mutual","Let","LetDef","Eval","TypeOpt","PatternDecl","OptFields","Id","SpcIds","Ids","Pol","Measure","Meas","Bound","EIds","Telescope","TBind","EBind","HBind","PolId","LLetDef","Domain","ExprT","ExprList","Expr","Expr0","SigDom","Expr1","Expr2","Expr3","QName","RecordDefs","RecordDef","TypeSig","Constructor","Constructors","Cases","Clause","LHS","Patterns","Pattern","PairP","ElemP","ConP","DotId","Clauses","RClauses","TBindSP","DataTelescope","id","qualid","number","data","codata","record","sized","fields","mutual","fun","cofun","pattern","case","def","let","in","eval","fail","check","trustme","impredicative","type","set","coset","size","infty","succ","max","'<|'","'|>'","'<'","'>'","'{'","'}'","'['","']'","'('","')'","'|'","','","';'","':'","'.'","'->'","'<='","'='","'++'","'+'","'-'","'/'","'*'","'^'","'&'","'\\\\'","'_'","%eof"]+        bit_start = st Prelude.* 120+        bit_end = (st Prelude.+ 1) Prelude.* 120+        read_bit = readArrayBit happyExpList+        bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]+        bits_indexed = Prelude.zip bits [0..119]+        token_strs_expected = Prelude.concatMap f bits_indexed+        f (Prelude.False, _) = []+        f (Prelude.True, nr) = [token_strs Prelude.!! nr]++action_0 (4) = happyGoto action_3+action_0 (5) = happyGoto action_2+action_0 _ = happyReduce_2++action_1 (5) = happyGoto action_2+action_1 _ = happyFail (happyExpListPerState 1)++action_2 (68) = happyShift action_16+action_2 (69) = happyShift action_17+action_2 (70) = happyShift action_18+action_2 (71) = happyShift action_19+action_2 (73) = happyShift action_20+action_2 (74) = happyShift action_21+action_2 (75) = happyShift action_22+action_2 (76) = happyShift action_23+action_2 (81) = happyShift action_24+action_2 (82) = happyShift action_25+action_2 (83) = happyShift action_26+action_2 (84) = happyShift action_27+action_2 (85) = happyShift action_28+action_2 (120) = happyReduce_1+action_2 (6) = happyGoto action_4+action_2 (7) = happyGoto action_5+action_2 (8) = happyGoto action_6+action_2 (9) = happyGoto action_7+action_2 (10) = happyGoto action_8+action_2 (11) = happyGoto action_9+action_2 (14) = happyGoto action_10+action_2 (15) = happyGoto action_11+action_2 (16) = happyGoto action_12+action_2 (17) = happyGoto action_13+action_2 (19) = happyGoto action_14+action_2 (21) = happyGoto action_15+action_2 _ = happyReduce_36++action_3 (120) = happyAccept+action_3 _ = happyFail (happyExpListPerState 3)++action_4 _ = happyReduce_3++action_5 _ = happyReduce_4++action_6 _ = happyReduce_6++action_7 _ = happyReduce_5++action_8 _ = happyReduce_7++action_9 _ = happyReduce_8++action_10 _ = happyReduce_9++action_11 _ = happyReduce_10++action_12 _ = happyReduce_11++action_13 _ = happyReduce_12++action_14 (79) = happyShift action_51+action_14 _ = happyFail (happyExpListPerState 14)++action_15 _ = happyReduce_13++action_16 (65) = happyShift action_39+action_16 (12) = happyGoto action_50+action_16 (23) = happyGoto action_49+action_16 _ = happyFail (happyExpListPerState 16)++action_17 (65) = happyShift action_39+action_17 (12) = happyGoto action_48+action_17 (23) = happyGoto action_49+action_17 _ = happyFail (happyExpListPerState 17)++action_18 (65) = happyShift action_39+action_18 (13) = happyGoto action_46+action_18 (23) = happyGoto action_47+action_18 _ = happyFail (happyExpListPerState 18)++action_19 (68) = happyShift action_44+action_19 (69) = happyShift action_45+action_19 _ = happyFail (happyExpListPerState 19)++action_20 (97) = happyShift action_43+action_20 _ = happyFail (happyExpListPerState 20)++action_21 (65) = happyShift action_39+action_21 (23) = happyGoto action_40+action_21 (49) = happyGoto action_42+action_21 _ = happyFail (happyExpListPerState 21)++action_22 (65) = happyShift action_39+action_22 (23) = happyGoto action_40+action_22 (49) = happyGoto action_41+action_22 _ = happyFail (happyExpListPerState 22)++action_23 (65) = happyShift action_39+action_23 (23) = happyGoto action_37+action_23 (24) = happyGoto action_38+action_23 _ = happyFail (happyExpListPerState 23)++action_24 _ = happyReduce_37++action_25 (68) = happyShift action_16+action_25 (69) = happyShift action_17+action_25 (70) = happyShift action_18+action_25 (71) = happyShift action_19+action_25 (73) = happyShift action_20+action_25 (74) = happyShift action_21+action_25 (75) = happyShift action_22+action_25 (76) = happyShift action_23+action_25 (81) = happyShift action_24+action_25 (82) = happyShift action_25+action_25 (83) = happyShift action_26+action_25 (84) = happyShift action_27+action_25 (85) = happyShift action_28+action_25 (97) = happyShift action_36+action_25 (6) = happyGoto action_35+action_25 (7) = happyGoto action_5+action_25 (8) = happyGoto action_6+action_25 (9) = happyGoto action_7+action_25 (10) = happyGoto action_8+action_25 (11) = happyGoto action_9+action_25 (14) = happyGoto action_10+action_25 (15) = happyGoto action_11+action_25 (16) = happyGoto action_12+action_25 (17) = happyGoto action_13+action_25 (19) = happyGoto action_14+action_25 (21) = happyGoto action_15+action_25 _ = happyReduce_36++action_26 (68) = happyShift action_16+action_26 (69) = happyShift action_17+action_26 (70) = happyShift action_18+action_26 (71) = happyShift action_19+action_26 (73) = happyShift action_20+action_26 (74) = happyShift action_21+action_26 (75) = happyShift action_22+action_26 (76) = happyShift action_23+action_26 (81) = happyShift action_24+action_26 (82) = happyShift action_25+action_26 (83) = happyShift action_26+action_26 (84) = happyShift action_27+action_26 (85) = happyShift action_28+action_26 (97) = happyShift action_34+action_26 (6) = happyGoto action_33+action_26 (7) = happyGoto action_5+action_26 (8) = happyGoto action_6+action_26 (9) = happyGoto action_7+action_26 (10) = happyGoto action_8+action_26 (11) = happyGoto action_9+action_26 (14) = happyGoto action_10+action_26 (15) = happyGoto action_11+action_26 (16) = happyGoto action_12+action_26 (17) = happyGoto action_13+action_26 (19) = happyGoto action_14+action_26 (21) = happyGoto action_15+action_26 _ = happyReduce_36++action_27 (68) = happyShift action_16+action_27 (69) = happyShift action_17+action_27 (70) = happyShift action_18+action_27 (71) = happyShift action_19+action_27 (73) = happyShift action_20+action_27 (74) = happyShift action_21+action_27 (75) = happyShift action_22+action_27 (76) = happyShift action_23+action_27 (81) = happyShift action_24+action_27 (82) = happyShift action_25+action_27 (83) = happyShift action_26+action_27 (84) = happyShift action_27+action_27 (85) = happyShift action_28+action_27 (97) = happyShift action_32+action_27 (6) = happyGoto action_31+action_27 (7) = happyGoto action_5+action_27 (8) = happyGoto action_6+action_27 (9) = happyGoto action_7+action_27 (10) = happyGoto action_8+action_27 (11) = happyGoto action_9+action_27 (14) = happyGoto action_10+action_27 (15) = happyGoto action_11+action_27 (16) = happyGoto action_12+action_27 (17) = happyGoto action_13+action_27 (19) = happyGoto action_14+action_27 (21) = happyGoto action_15+action_27 _ = happyReduce_36++action_28 (68) = happyShift action_16+action_28 (69) = happyShift action_17+action_28 (70) = happyShift action_18+action_28 (71) = happyShift action_19+action_28 (73) = happyShift action_20+action_28 (74) = happyShift action_21+action_28 (75) = happyShift action_22+action_28 (76) = happyShift action_23+action_28 (81) = happyShift action_24+action_28 (82) = happyShift action_25+action_28 (83) = happyShift action_26+action_28 (84) = happyShift action_27+action_28 (85) = happyShift action_28+action_28 (97) = happyShift action_30+action_28 (6) = happyGoto action_29+action_28 (7) = happyGoto action_5+action_28 (8) = happyGoto action_6+action_28 (9) = happyGoto action_7+action_28 (10) = happyGoto action_8+action_28 (11) = happyGoto action_9+action_28 (14) = happyGoto action_10+action_28 (15) = happyGoto action_11+action_28 (16) = happyGoto action_12+action_28 (17) = happyGoto action_13+action_28 (19) = happyGoto action_14+action_28 (21) = happyGoto action_15+action_28 _ = happyReduce_36++action_29 _ = happyReduce_14++action_30 (5) = happyGoto action_80+action_30 _ = happyReduce_2++action_31 _ = happyReduce_20++action_32 (5) = happyGoto action_79+action_32 _ = happyReduce_2++action_33 _ = happyReduce_18++action_34 (5) = happyGoto action_78+action_34 _ = happyReduce_2++action_35 _ = happyReduce_16++action_36 (5) = happyGoto action_77+action_36 _ = happyReduce_2++action_37 (65) = happyShift action_39+action_37 (23) = happyGoto action_37+action_37 (24) = happyGoto action_76+action_37 _ = happyReduce_44++action_38 (110) = happyShift action_75+action_38 _ = happyFail (happyExpListPerState 38)++action_39 _ = happyReduce_43++action_40 (106) = happyShift action_74+action_40 _ = happyFail (happyExpListPerState 40)++action_41 (97) = happyShift action_73+action_41 _ = happyFail (happyExpListPerState 41)++action_42 (97) = happyShift action_72+action_42 _ = happyFail (happyExpListPerState 42)++action_43 (5) = happyGoto action_71+action_43 _ = happyReduce_2++action_44 (65) = happyShift action_39+action_44 (12) = happyGoto action_70+action_44 (23) = happyGoto action_49+action_44 _ = happyFail (happyExpListPerState 44)++action_45 (65) = happyShift action_39+action_45 (12) = happyGoto action_69+action_45 (23) = happyGoto action_49+action_45 _ = happyFail (happyExpListPerState 45)++action_46 _ = happyReduce_26++action_47 (99) = happyShift action_66+action_47 (101) = happyShift action_67+action_47 (107) = happyShift action_57+action_47 (111) = happyShift action_58+action_47 (112) = happyShift action_59+action_47 (113) = happyShift action_60+action_47 (115) = happyShift action_61+action_47 (116) = happyShift action_62+action_47 (26) = happyGoto action_63+action_47 (63) = happyGoto action_64+action_47 (64) = happyGoto action_68+action_47 _ = happyReduce_178++action_48 _ = happyReduce_24++action_49 (99) = happyShift action_66+action_49 (101) = happyShift action_67+action_49 (107) = happyShift action_57+action_49 (111) = happyShift action_58+action_49 (112) = happyShift action_59+action_49 (113) = happyShift action_60+action_49 (115) = happyShift action_61+action_49 (116) = happyShift action_62+action_49 (26) = happyGoto action_63+action_49 (63) = happyGoto action_64+action_49 (64) = happyGoto action_65+action_49 _ = happyReduce_178++action_50 _ = happyReduce_22++action_51 (65) = happyShift action_39+action_51 (99) = happyShift action_56+action_51 (107) = happyShift action_57+action_51 (111) = happyShift action_58+action_51 (112) = happyShift action_59+action_51 (113) = happyShift action_60+action_51 (115) = happyShift action_61+action_51 (116) = happyShift action_62+action_51 (18) = happyGoto action_52+action_51 (23) = happyGoto action_53+action_51 (26) = happyGoto action_54+action_51 (35) = happyGoto action_55+action_51 _ = happyFail (happyExpListPerState 51)++action_52 _ = happyReduce_34++action_53 _ = happyReduce_77++action_54 (65) = happyShift action_39+action_54 (23) = happyGoto action_153+action_54 _ = happyFail (happyExpListPerState 54)++action_55 (97) = happyShift action_125+action_55 (99) = happyShift action_151+action_55 (101) = happyShift action_152+action_55 (103) = happyShift action_128+action_55 (107) = happyShift action_57+action_55 (111) = happyShift action_58+action_55 (112) = happyShift action_59+action_55 (113) = happyShift action_60+action_55 (115) = happyShift action_61+action_55 (116) = happyShift action_62+action_55 (26) = happyGoto action_147+action_55 (27) = happyGoto action_148+action_55 (31) = happyGoto action_149+action_55 (32) = happyGoto action_150+action_55 (33) = happyGoto action_110+action_55 (34) = happyGoto action_111+action_55 _ = happyReduce_60++action_56 (65) = happyShift action_39+action_56 (23) = happyGoto action_146+action_56 _ = happyFail (happyExpListPerState 56)++action_57 _ = happyReduce_51++action_58 _ = happyReduce_48++action_59 _ = happyReduce_49++action_60 _ = happyReduce_50++action_61 _ = happyReduce_53++action_62 _ = happyReduce_52++action_63 (101) = happyShift action_145+action_63 _ = happyFail (happyExpListPerState 63)++action_64 (99) = happyShift action_66+action_64 (101) = happyShift action_67+action_64 (107) = happyShift action_57+action_64 (111) = happyShift action_58+action_64 (112) = happyShift action_59+action_64 (113) = happyShift action_60+action_64 (115) = happyShift action_61+action_64 (116) = happyShift action_62+action_64 (26) = happyGoto action_63+action_64 (63) = happyGoto action_64+action_64 (64) = happyGoto action_144+action_64 _ = happyReduce_178++action_65 (97) = happyShift action_142+action_65 (106) = happyShift action_143+action_65 _ = happyFail (happyExpListPerState 65)++action_66 (65) = happyShift action_39+action_66 (23) = happyGoto action_138+action_66 (25) = happyGoto action_141+action_66 _ = happyFail (happyExpListPerState 66)++action_67 (65) = happyShift action_39+action_67 (112) = happyShift action_140+action_67 (23) = happyGoto action_138+action_67 (25) = happyGoto action_139+action_67 _ = happyFail (happyExpListPerState 67)++action_68 (97) = happyShift action_136+action_68 (106) = happyShift action_137+action_68 _ = happyFail (happyExpListPerState 68)++action_69 _ = happyReduce_25++action_70 _ = happyReduce_23++action_71 (68) = happyShift action_16+action_71 (69) = happyShift action_17+action_71 (70) = happyShift action_18+action_71 (71) = happyShift action_19+action_71 (73) = happyShift action_20+action_71 (74) = happyShift action_21+action_71 (75) = happyShift action_22+action_71 (76) = happyShift action_23+action_71 (81) = happyShift action_24+action_71 (82) = happyShift action_25+action_71 (83) = happyShift action_26+action_71 (84) = happyShift action_27+action_71 (85) = happyShift action_28+action_71 (98) = happyShift action_135+action_71 (6) = happyGoto action_4+action_71 (7) = happyGoto action_5+action_71 (8) = happyGoto action_6+action_71 (9) = happyGoto action_7+action_71 (10) = happyGoto action_8+action_71 (11) = happyGoto action_9+action_71 (14) = happyGoto action_10+action_71 (15) = happyGoto action_11+action_71 (16) = happyGoto action_12+action_71 (17) = happyGoto action_13+action_71 (19) = happyGoto action_14+action_71 (21) = happyGoto action_15+action_71 _ = happyReduce_36++action_72 (65) = happyShift action_39+action_72 (23) = happyGoto action_130+action_72 (53) = happyGoto action_131+action_72 (61) = happyGoto action_134+action_72 (62) = happyGoto action_133+action_72 _ = happyReduce_173++action_73 (65) = happyShift action_39+action_73 (23) = happyGoto action_130+action_73 (53) = happyGoto action_131+action_73 (61) = happyGoto action_132+action_73 (62) = happyGoto action_133+action_73 _ = happyReduce_173++action_74 (65) = happyShift action_39+action_74 (66) = happyShift action_93+action_74 (67) = happyShift action_119+action_74 (70) = happyShift action_95+action_74 (77) = happyShift action_120+action_74 (79) = happyShift action_121+action_74 (87) = happyShift action_122+action_74 (88) = happyShift action_123+action_74 (89) = happyShift action_96+action_74 (90) = happyShift action_97+action_74 (91) = happyShift action_124+action_74 (92) = happyShift action_99+action_74 (95) = happyShift action_100+action_74 (97) = happyShift action_125+action_74 (99) = happyShift action_126+action_74 (101) = happyShift action_127+action_74 (103) = happyShift action_128+action_74 (107) = happyShift action_57+action_74 (111) = happyShift action_58+action_74 (112) = happyShift action_59+action_74 (113) = happyShift action_60+action_74 (115) = happyShift action_61+action_74 (116) = happyShift action_62+action_74 (118) = happyShift action_129+action_74 (119) = happyShift action_103+action_74 (23) = happyGoto action_104+action_74 (26) = happyGoto action_105+action_74 (27) = happyGoto action_106+action_74 (29) = happyGoto action_107+action_74 (31) = happyGoto action_108+action_74 (32) = happyGoto action_109+action_74 (33) = happyGoto action_110+action_74 (34) = happyGoto action_111+action_74 (37) = happyGoto action_112+action_74 (40) = happyGoto action_113+action_74 (41) = happyGoto action_114+action_74 (42) = happyGoto action_115+action_74 (43) = happyGoto action_116+action_74 (44) = happyGoto action_117+action_74 (45) = happyGoto action_118+action_74 (46) = happyGoto action_87+action_74 _ = happyReduce_60++action_75 (65) = happyShift action_39+action_75 (66) = happyShift action_93+action_75 (67) = happyShift action_94+action_75 (70) = happyShift action_95+action_75 (89) = happyShift action_96+action_75 (90) = happyShift action_97+action_75 (91) = happyShift action_98+action_75 (92) = happyShift action_99+action_75 (95) = happyShift action_100+action_75 (101) = happyShift action_101+action_75 (107) = happyShift action_102+action_75 (119) = happyShift action_103+action_75 (23) = happyGoto action_85+action_75 (45) = happyGoto action_86+action_75 (46) = happyGoto action_87+action_75 (56) = happyGoto action_88+action_75 (57) = happyGoto action_89+action_75 (58) = happyGoto action_90+action_75 (59) = happyGoto action_91+action_75 (60) = happyGoto action_92+action_75 _ = happyFail (happyExpListPerState 75)++action_76 _ = happyReduce_45++action_77 (68) = happyShift action_16+action_77 (69) = happyShift action_17+action_77 (70) = happyShift action_18+action_77 (71) = happyShift action_19+action_77 (73) = happyShift action_20+action_77 (74) = happyShift action_21+action_77 (75) = happyShift action_22+action_77 (76) = happyShift action_23+action_77 (81) = happyShift action_24+action_77 (82) = happyShift action_25+action_77 (83) = happyShift action_26+action_77 (84) = happyShift action_27+action_77 (85) = happyShift action_28+action_77 (98) = happyShift action_84+action_77 (6) = happyGoto action_4+action_77 (7) = happyGoto action_5+action_77 (8) = happyGoto action_6+action_77 (9) = happyGoto action_7+action_77 (10) = happyGoto action_8+action_77 (11) = happyGoto action_9+action_77 (14) = happyGoto action_10+action_77 (15) = happyGoto action_11+action_77 (16) = happyGoto action_12+action_77 (17) = happyGoto action_13+action_77 (19) = happyGoto action_14+action_77 (21) = happyGoto action_15+action_77 _ = happyReduce_36++action_78 (68) = happyShift action_16+action_78 (69) = happyShift action_17+action_78 (70) = happyShift action_18+action_78 (71) = happyShift action_19+action_78 (73) = happyShift action_20+action_78 (74) = happyShift action_21+action_78 (75) = happyShift action_22+action_78 (76) = happyShift action_23+action_78 (81) = happyShift action_24+action_78 (82) = happyShift action_25+action_78 (83) = happyShift action_26+action_78 (84) = happyShift action_27+action_78 (85) = happyShift action_28+action_78 (98) = happyShift action_83+action_78 (6) = happyGoto action_4+action_78 (7) = happyGoto action_5+action_78 (8) = happyGoto action_6+action_78 (9) = happyGoto action_7+action_78 (10) = happyGoto action_8+action_78 (11) = happyGoto action_9+action_78 (14) = happyGoto action_10+action_78 (15) = happyGoto action_11+action_78 (16) = happyGoto action_12+action_78 (17) = happyGoto action_13+action_78 (19) = happyGoto action_14+action_78 (21) = happyGoto action_15+action_78 _ = happyReduce_36++action_79 (68) = happyShift action_16+action_79 (69) = happyShift action_17+action_79 (70) = happyShift action_18+action_79 (71) = happyShift action_19+action_79 (73) = happyShift action_20+action_79 (74) = happyShift action_21+action_79 (75) = happyShift action_22+action_79 (76) = happyShift action_23+action_79 (81) = happyShift action_24+action_79 (82) = happyShift action_25+action_79 (83) = happyShift action_26+action_79 (84) = happyShift action_27+action_79 (85) = happyShift action_28+action_79 (98) = happyShift action_82+action_79 (6) = happyGoto action_4+action_79 (7) = happyGoto action_5+action_79 (8) = happyGoto action_6+action_79 (9) = happyGoto action_7+action_79 (10) = happyGoto action_8+action_79 (11) = happyGoto action_9+action_79 (14) = happyGoto action_10+action_79 (15) = happyGoto action_11+action_79 (16) = happyGoto action_12+action_79 (17) = happyGoto action_13+action_79 (19) = happyGoto action_14+action_79 (21) = happyGoto action_15+action_79 _ = happyReduce_36++action_80 (68) = happyShift action_16+action_80 (69) = happyShift action_17+action_80 (70) = happyShift action_18+action_80 (71) = happyShift action_19+action_80 (73) = happyShift action_20+action_80 (74) = happyShift action_21+action_80 (75) = happyShift action_22+action_80 (76) = happyShift action_23+action_80 (81) = happyShift action_24+action_80 (82) = happyShift action_25+action_80 (83) = happyShift action_26+action_80 (84) = happyShift action_27+action_80 (85) = happyShift action_28+action_80 (98) = happyShift action_81+action_80 (6) = happyGoto action_4+action_80 (7) = happyGoto action_5+action_80 (8) = happyGoto action_6+action_80 (9) = happyGoto action_7+action_80 (10) = happyGoto action_8+action_80 (11) = happyGoto action_9+action_80 (14) = happyGoto action_10+action_80 (15) = happyGoto action_11+action_80 (16) = happyGoto action_12+action_80 (17) = happyGoto action_13+action_80 (19) = happyGoto action_14+action_80 (21) = happyGoto action_15+action_80 _ = happyReduce_36++action_81 _ = happyReduce_15++action_82 _ = happyReduce_21++action_83 _ = happyReduce_19++action_84 _ = happyReduce_17++action_85 (65) = happyReduce_167+action_85 (68) = happyReduce_167+action_85 (69) = happyReduce_167+action_85 (70) = happyReduce_167+action_85 (71) = happyReduce_167+action_85 (73) = happyReduce_167+action_85 (74) = happyReduce_167+action_85 (75) = happyReduce_167+action_85 (76) = happyReduce_167+action_85 (79) = happyReduce_167+action_85 (81) = happyReduce_167+action_85 (82) = happyReduce_167+action_85 (83) = happyReduce_167+action_85 (84) = happyReduce_167+action_85 (85) = happyReduce_167+action_85 (91) = happyReduce_167+action_85 (93) = happyReduce_167+action_85 (95) = happyShift action_241+action_85 (98) = happyReduce_167+action_85 (101) = happyReduce_167+action_85 (102) = happyReduce_167+action_85 (104) = happyReduce_167+action_85 (105) = happyReduce_167+action_85 (107) = happyReduce_167+action_85 (110) = happyReduce_167+action_85 (120) = happyReduce_167+action_85 _ = happyReduce_129++action_86 (96) = happyShift action_240+action_86 _ = happyFail (happyExpListPerState 86)++action_87 _ = happyReduce_121++action_88 _ = happyReduce_163++action_89 _ = happyReduce_40++action_90 (104) = happyShift action_239+action_90 _ = happyReduce_159++action_91 (65) = happyShift action_39+action_91 (91) = happyShift action_235+action_91 (93) = happyShift action_238+action_91 (101) = happyShift action_236+action_91 (107) = happyShift action_102+action_91 (23) = happyGoto action_233+action_91 (56) = happyGoto action_237+action_91 (60) = happyGoto action_231+action_91 _ = happyReduce_160++action_92 (65) = happyShift action_39+action_92 (91) = happyShift action_235+action_92 (101) = happyShift action_236+action_92 (107) = happyShift action_102+action_92 (23) = happyGoto action_233+action_92 (56) = happyGoto action_234+action_92 (60) = happyGoto action_231+action_92 _ = happyReduce_154++action_93 _ = happyReduce_128++action_94 _ = happyReduce_126++action_95 (97) = happyShift action_232+action_95 _ = happyFail (happyExpListPerState 95)++action_96 _ = happyReduce_118++action_97 _ = happyReduce_120++action_98 (65) = happyShift action_39+action_98 (66) = happyShift action_93+action_98 (67) = happyShift action_94+action_98 (70) = happyShift action_95+action_98 (89) = happyShift action_96+action_98 (90) = happyShift action_97+action_98 (91) = happyShift action_98+action_98 (92) = happyShift action_99+action_98 (95) = happyShift action_100+action_98 (101) = happyShift action_101+action_98 (107) = happyShift action_102+action_98 (119) = happyShift action_103+action_98 (23) = happyGoto action_229+action_98 (45) = happyGoto action_191+action_98 (46) = happyGoto action_87+action_98 (56) = happyGoto action_230+action_98 (60) = happyGoto action_231+action_98 _ = happyFail (happyExpListPerState 98)++action_99 _ = happyReduce_119++action_100 (65) = happyShift action_39+action_100 (66) = happyShift action_93+action_100 (67) = happyShift action_119+action_100 (70) = happyShift action_95+action_100 (77) = happyShift action_120+action_100 (79) = happyShift action_121+action_100 (87) = happyShift action_122+action_100 (88) = happyShift action_123+action_100 (89) = happyShift action_96+action_100 (90) = happyShift action_97+action_100 (91) = happyShift action_124+action_100 (92) = happyShift action_99+action_100 (95) = happyShift action_100+action_100 (97) = happyShift action_125+action_100 (99) = happyShift action_126+action_100 (101) = happyShift action_127+action_100 (103) = happyShift action_128+action_100 (107) = happyShift action_57+action_100 (111) = happyShift action_58+action_100 (112) = happyShift action_59+action_100 (113) = happyShift action_60+action_100 (115) = happyShift action_61+action_100 (116) = happyShift action_62+action_100 (118) = happyShift action_129+action_100 (119) = happyShift action_103+action_100 (23) = happyGoto action_104+action_100 (26) = happyGoto action_105+action_100 (27) = happyGoto action_106+action_100 (29) = happyGoto action_107+action_100 (31) = happyGoto action_108+action_100 (32) = happyGoto action_109+action_100 (33) = happyGoto action_110+action_100 (34) = happyGoto action_111+action_100 (37) = happyGoto action_112+action_100 (38) = happyGoto action_228+action_100 (39) = happyGoto action_200+action_100 (40) = happyGoto action_157+action_100 (41) = happyGoto action_114+action_100 (42) = happyGoto action_115+action_100 (43) = happyGoto action_116+action_100 (44) = happyGoto action_117+action_100 (45) = happyGoto action_118+action_100 (46) = happyGoto action_87+action_100 _ = happyReduce_60++action_101 (65) = happyShift action_39+action_101 (66) = happyShift action_93+action_101 (67) = happyShift action_119+action_101 (70) = happyShift action_95+action_101 (77) = happyShift action_120+action_101 (79) = happyShift action_121+action_101 (87) = happyShift action_122+action_101 (88) = happyShift action_123+action_101 (89) = happyShift action_96+action_101 (90) = happyShift action_97+action_101 (91) = happyShift action_98+action_101 (92) = happyShift action_99+action_101 (95) = happyShift action_100+action_101 (97) = happyShift action_125+action_101 (99) = happyShift action_126+action_101 (101) = happyShift action_225+action_101 (102) = happyShift action_226+action_101 (103) = happyShift action_128+action_101 (107) = happyShift action_227+action_101 (111) = happyShift action_58+action_101 (112) = happyShift action_59+action_101 (113) = happyShift action_60+action_101 (115) = happyShift action_61+action_101 (116) = happyShift action_62+action_101 (118) = happyShift action_129+action_101 (119) = happyShift action_103+action_101 (23) = happyGoto action_85+action_101 (26) = happyGoto action_105+action_101 (27) = happyGoto action_106+action_101 (29) = happyGoto action_107+action_101 (31) = happyGoto action_108+action_101 (32) = happyGoto action_109+action_101 (33) = happyGoto action_110+action_101 (34) = happyGoto action_111+action_101 (37) = happyGoto action_112+action_101 (38) = happyGoto action_185+action_101 (39) = happyGoto action_200+action_101 (40) = happyGoto action_157+action_101 (41) = happyGoto action_114+action_101 (42) = happyGoto action_115+action_101 (43) = happyGoto action_116+action_101 (44) = happyGoto action_117+action_101 (45) = happyGoto action_223+action_101 (46) = happyGoto action_87+action_101 (56) = happyGoto action_88+action_101 (57) = happyGoto action_224+action_101 (58) = happyGoto action_90+action_101 (59) = happyGoto action_91+action_101 (60) = happyGoto action_92+action_101 _ = happyReduce_60++action_102 (65) = happyShift action_39+action_102 (66) = happyShift action_93+action_102 (67) = happyShift action_94+action_102 (70) = happyShift action_95+action_102 (87) = happyShift action_222+action_102 (89) = happyShift action_96+action_102 (90) = happyShift action_97+action_102 (91) = happyShift action_124+action_102 (92) = happyShift action_99+action_102 (95) = happyShift action_100+action_102 (101) = happyShift action_192+action_102 (119) = happyShift action_103+action_102 (23) = happyGoto action_220+action_102 (45) = happyGoto action_221+action_102 (46) = happyGoto action_87+action_102 _ = happyFail (happyExpListPerState 102)++action_103 _ = happyReduce_124++action_104 _ = happyReduce_129++action_105 (65) = happyShift action_39+action_105 (66) = happyShift action_93+action_105 (67) = happyShift action_119+action_105 (70) = happyShift action_95+action_105 (87) = happyShift action_122+action_105 (88) = happyShift action_123+action_105 (89) = happyShift action_96+action_105 (90) = happyShift action_97+action_105 (91) = happyShift action_124+action_105 (92) = happyShift action_99+action_105 (95) = happyShift action_100+action_105 (97) = happyShift action_125+action_105 (99) = happyShift action_218+action_105 (101) = happyShift action_219+action_105 (103) = happyShift action_128+action_105 (107) = happyShift action_57+action_105 (111) = happyShift action_58+action_105 (112) = happyShift action_59+action_105 (113) = happyShift action_60+action_105 (115) = happyShift action_61+action_105 (116) = happyShift action_62+action_105 (119) = happyShift action_103+action_105 (23) = happyGoto action_104+action_105 (26) = happyGoto action_212+action_105 (27) = happyGoto action_213+action_105 (29) = happyGoto action_214+action_105 (32) = happyGoto action_215+action_105 (33) = happyGoto action_110+action_105 (34) = happyGoto action_111+action_105 (41) = happyGoto action_216+action_105 (42) = happyGoto action_115+action_105 (43) = happyGoto action_217+action_105 (44) = happyGoto action_117+action_105 (45) = happyGoto action_118+action_105 (46) = happyGoto action_87+action_105 _ = happyFail (happyExpListPerState 105)++action_106 (95) = happyShift action_210+action_106 (97) = happyShift action_125+action_106 (99) = happyShift action_151+action_106 (101) = happyShift action_152+action_106 (103) = happyShift action_128+action_106 (107) = happyShift action_57+action_106 (108) = happyReduce_87+action_106 (109) = happyShift action_211+action_106 (111) = happyShift action_58+action_106 (112) = happyShift action_59+action_106 (113) = happyShift action_60+action_106 (115) = happyShift action_61+action_106 (116) = happyShift action_62+action_106 (26) = happyGoto action_147+action_106 (27) = happyGoto action_148+action_106 (31) = happyGoto action_163+action_106 (32) = happyGoto action_150+action_106 (33) = happyGoto action_110+action_106 (34) = happyGoto action_111+action_106 _ = happyReduce_107++action_107 (117) = happyReduce_108+action_107 _ = happyReduce_88++action_108 _ = happyReduce_89++action_109 (97) = happyShift action_125+action_109 (99) = happyShift action_151+action_109 (101) = happyShift action_152+action_109 (103) = happyShift action_128+action_109 (107) = happyShift action_57+action_109 (108) = happyReduce_86+action_109 (111) = happyShift action_58+action_109 (112) = happyShift action_59+action_109 (113) = happyShift action_60+action_109 (115) = happyShift action_61+action_109 (116) = happyShift action_62+action_109 (26) = happyGoto action_147+action_109 (27) = happyGoto action_148+action_109 (31) = happyGoto action_160+action_109 (32) = happyGoto action_150+action_109 (33) = happyGoto action_110+action_109 (34) = happyGoto action_111+action_109 _ = happyReduce_106++action_110 _ = happyReduce_69++action_111 _ = happyReduce_70++action_112 (108) = happyShift action_209+action_112 _ = happyFail (happyExpListPerState 112)++action_113 _ = happyReduce_134++action_114 (108) = happyReduce_83+action_114 _ = happyReduce_97++action_115 (117) = happyShift action_208+action_115 _ = happyFail (happyExpListPerState 115)++action_116 (93) = happyShift action_205+action_116 (94) = happyShift action_206+action_116 (112) = happyShift action_207+action_116 (117) = happyReduce_103+action_116 _ = happyReduce_101++action_117 (65) = happyShift action_39+action_117 (66) = happyShift action_93+action_117 (67) = happyShift action_94+action_117 (70) = happyShift action_95+action_117 (87) = happyShift action_203+action_117 (89) = happyShift action_96+action_117 (90) = happyShift action_97+action_117 (91) = happyShift action_124+action_117 (92) = happyShift action_99+action_117 (95) = happyShift action_100+action_117 (101) = happyShift action_192+action_117 (107) = happyShift action_204+action_117 (119) = happyShift action_103+action_117 (23) = happyGoto action_104+action_117 (45) = happyGoto action_202+action_117 (46) = happyGoto action_87+action_117 _ = happyReduce_109++action_118 _ = happyReduce_114++action_119 (115) = happyShift action_201+action_119 _ = happyReduce_126++action_120 (65) = happyShift action_39+action_120 (66) = happyShift action_93+action_120 (67) = happyShift action_119+action_120 (70) = happyShift action_95+action_120 (77) = happyShift action_120+action_120 (79) = happyShift action_121+action_120 (87) = happyShift action_122+action_120 (88) = happyShift action_123+action_120 (89) = happyShift action_96+action_120 (90) = happyShift action_97+action_120 (91) = happyShift action_124+action_120 (92) = happyShift action_99+action_120 (95) = happyShift action_100+action_120 (97) = happyShift action_125+action_120 (99) = happyShift action_126+action_120 (101) = happyShift action_127+action_120 (103) = happyShift action_128+action_120 (107) = happyShift action_57+action_120 (111) = happyShift action_58+action_120 (112) = happyShift action_59+action_120 (113) = happyShift action_60+action_120 (115) = happyShift action_61+action_120 (116) = happyShift action_62+action_120 (118) = happyShift action_129+action_120 (119) = happyShift action_103+action_120 (23) = happyGoto action_104+action_120 (26) = happyGoto action_105+action_120 (27) = happyGoto action_106+action_120 (29) = happyGoto action_107+action_120 (31) = happyGoto action_108+action_120 (32) = happyGoto action_109+action_120 (33) = happyGoto action_110+action_120 (34) = happyGoto action_111+action_120 (37) = happyGoto action_112+action_120 (38) = happyGoto action_199+action_120 (39) = happyGoto action_200+action_120 (40) = happyGoto action_157+action_120 (41) = happyGoto action_114+action_120 (42) = happyGoto action_115+action_120 (43) = happyGoto action_116+action_120 (44) = happyGoto action_117+action_120 (45) = happyGoto action_118+action_120 (46) = happyGoto action_87+action_120 _ = happyReduce_60++action_121 (65) = happyShift action_39+action_121 (99) = happyShift action_198+action_121 (107) = happyShift action_57+action_121 (111) = happyShift action_58+action_121 (112) = happyShift action_59+action_121 (113) = happyShift action_60+action_121 (115) = happyShift action_61+action_121 (116) = happyShift action_62+action_121 (18) = happyGoto action_195+action_121 (23) = happyGoto action_53+action_121 (26) = happyGoto action_196+action_121 (35) = happyGoto action_55+action_121 (36) = happyGoto action_197+action_121 _ = happyFail (happyExpListPerState 121)++action_122 (65) = happyShift action_39+action_122 (66) = happyShift action_93+action_122 (67) = happyShift action_94+action_122 (70) = happyShift action_95+action_122 (89) = happyShift action_96+action_122 (90) = happyShift action_97+action_122 (91) = happyShift action_124+action_122 (92) = happyShift action_99+action_122 (95) = happyShift action_100+action_122 (101) = happyShift action_192+action_122 (119) = happyShift action_103+action_122 (23) = happyGoto action_104+action_122 (45) = happyGoto action_194+action_122 (46) = happyGoto action_87+action_122 _ = happyReduce_111++action_123 (65) = happyShift action_39+action_123 (66) = happyShift action_93+action_123 (67) = happyShift action_94+action_123 (70) = happyShift action_95+action_123 (89) = happyShift action_96+action_123 (90) = happyShift action_97+action_123 (91) = happyShift action_124+action_123 (92) = happyShift action_99+action_123 (95) = happyShift action_100+action_123 (101) = happyShift action_192+action_123 (119) = happyShift action_103+action_123 (23) = happyGoto action_104+action_123 (45) = happyGoto action_193+action_123 (46) = happyGoto action_87+action_123 _ = happyFail (happyExpListPerState 123)++action_124 (65) = happyShift action_39+action_124 (66) = happyShift action_93+action_124 (67) = happyShift action_94+action_124 (70) = happyShift action_95+action_124 (89) = happyShift action_96+action_124 (90) = happyShift action_97+action_124 (91) = happyShift action_124+action_124 (92) = happyShift action_99+action_124 (95) = happyShift action_100+action_124 (101) = happyShift action_192+action_124 (119) = happyShift action_103+action_124 (23) = happyGoto action_104+action_124 (45) = happyGoto action_191+action_124 (46) = happyGoto action_87+action_124 _ = happyFail (happyExpListPerState 124)++action_125 (65) = happyShift action_39+action_125 (23) = happyGoto action_189+action_125 (25) = happyGoto action_190+action_125 _ = happyFail (happyExpListPerState 125)++action_126 (65) = happyShift action_39+action_126 (66) = happyShift action_93+action_126 (67) = happyShift action_119+action_126 (70) = happyShift action_95+action_126 (77) = happyShift action_120+action_126 (79) = happyShift action_121+action_126 (87) = happyShift action_122+action_126 (88) = happyShift action_123+action_126 (89) = happyShift action_96+action_126 (90) = happyShift action_97+action_126 (91) = happyShift action_124+action_126 (92) = happyShift action_99+action_126 (95) = happyShift action_100+action_126 (97) = happyShift action_125+action_126 (99) = happyShift action_126+action_126 (101) = happyShift action_127+action_126 (103) = happyShift action_128+action_126 (107) = happyShift action_57+action_126 (111) = happyShift action_58+action_126 (112) = happyShift action_59+action_126 (113) = happyShift action_60+action_126 (115) = happyShift action_61+action_126 (116) = happyShift action_62+action_126 (118) = happyShift action_129+action_126 (119) = happyShift action_103+action_126 (23) = happyGoto action_187+action_126 (25) = happyGoto action_159+action_126 (26) = happyGoto action_105+action_126 (27) = happyGoto action_106+action_126 (29) = happyGoto action_107+action_126 (31) = happyGoto action_108+action_126 (32) = happyGoto action_109+action_126 (33) = happyGoto action_110+action_126 (34) = happyGoto action_111+action_126 (37) = happyGoto action_112+action_126 (40) = happyGoto action_188+action_126 (41) = happyGoto action_114+action_126 (42) = happyGoto action_115+action_126 (43) = happyGoto action_116+action_126 (44) = happyGoto action_117+action_126 (45) = happyGoto action_118+action_126 (46) = happyGoto action_87+action_126 _ = happyReduce_60++action_127 (65) = happyShift action_39+action_127 (66) = happyShift action_93+action_127 (67) = happyShift action_119+action_127 (70) = happyShift action_95+action_127 (77) = happyShift action_120+action_127 (79) = happyShift action_121+action_127 (87) = happyShift action_122+action_127 (88) = happyShift action_123+action_127 (89) = happyShift action_96+action_127 (90) = happyShift action_97+action_127 (91) = happyShift action_124+action_127 (92) = happyShift action_99+action_127 (95) = happyShift action_100+action_127 (97) = happyShift action_125+action_127 (99) = happyShift action_126+action_127 (101) = happyShift action_127+action_127 (103) = happyShift action_128+action_127 (107) = happyShift action_57+action_127 (111) = happyShift action_58+action_127 (112) = happyShift action_59+action_127 (113) = happyShift action_60+action_127 (115) = happyShift action_61+action_127 (116) = happyShift action_62+action_127 (118) = happyShift action_129+action_127 (119) = happyShift action_103+action_127 (23) = happyGoto action_154+action_127 (26) = happyGoto action_105+action_127 (27) = happyGoto action_106+action_127 (29) = happyGoto action_107+action_127 (30) = happyGoto action_155+action_127 (31) = happyGoto action_108+action_127 (32) = happyGoto action_109+action_127 (33) = happyGoto action_110+action_127 (34) = happyGoto action_111+action_127 (37) = happyGoto action_112+action_127 (38) = happyGoto action_185+action_127 (39) = happyGoto action_186+action_127 (40) = happyGoto action_157+action_127 (41) = happyGoto action_114+action_127 (42) = happyGoto action_115+action_127 (43) = happyGoto action_116+action_127 (44) = happyGoto action_117+action_127 (45) = happyGoto action_118+action_127 (46) = happyGoto action_87+action_127 _ = happyReduce_60++action_128 (65) = happyShift action_39+action_128 (66) = happyShift action_93+action_128 (67) = happyShift action_119+action_128 (70) = happyShift action_95+action_128 (77) = happyShift action_120+action_128 (79) = happyShift action_121+action_128 (87) = happyShift action_122+action_128 (88) = happyShift action_123+action_128 (89) = happyShift action_96+action_128 (90) = happyShift action_97+action_128 (91) = happyShift action_124+action_128 (92) = happyShift action_99+action_128 (95) = happyShift action_100+action_128 (97) = happyShift action_125+action_128 (99) = happyShift action_126+action_128 (101) = happyShift action_127+action_128 (103) = happyShift action_128+action_128 (107) = happyShift action_57+action_128 (111) = happyShift action_58+action_128 (112) = happyShift action_59+action_128 (113) = happyShift action_60+action_128 (115) = happyShift action_61+action_128 (116) = happyShift action_62+action_128 (118) = happyShift action_129+action_128 (119) = happyShift action_103+action_128 (23) = happyGoto action_104+action_128 (26) = happyGoto action_105+action_128 (27) = happyGoto action_106+action_128 (28) = happyGoto action_183+action_128 (29) = happyGoto action_107+action_128 (31) = happyGoto action_108+action_128 (32) = happyGoto action_109+action_128 (33) = happyGoto action_110+action_128 (34) = happyGoto action_111+action_128 (37) = happyGoto action_112+action_128 (40) = happyGoto action_184+action_128 (41) = happyGoto action_114+action_128 (42) = happyGoto action_115+action_128 (43) = happyGoto action_116+action_128 (44) = happyGoto action_117+action_128 (45) = happyGoto action_118+action_128 (46) = happyGoto action_87+action_128 _ = happyReduce_60++action_129 (65) = happyShift action_39+action_129 (23) = happyGoto action_37+action_129 (24) = happyGoto action_182+action_129 _ = happyFail (happyExpListPerState 129)++action_130 (54) = happyGoto action_180+action_130 (55) = happyGoto action_181+action_130 _ = happyReduce_149++action_131 _ = happyReduce_172++action_132 (98) = happyShift action_179+action_132 _ = happyFail (happyExpListPerState 132)++action_133 (105) = happyShift action_178+action_133 _ = happyReduce_169++action_134 (98) = happyShift action_177+action_134 _ = happyFail (happyExpListPerState 134)++action_135 _ = happyReduce_33++action_136 (65) = happyShift action_39+action_136 (23) = happyGoto action_168+action_136 (50) = happyGoto action_176+action_136 _ = happyFail (happyExpListPerState 136)++action_137 (65) = happyShift action_39+action_137 (66) = happyShift action_93+action_137 (67) = happyShift action_119+action_137 (70) = happyShift action_95+action_137 (77) = happyShift action_120+action_137 (79) = happyShift action_121+action_137 (87) = happyShift action_122+action_137 (88) = happyShift action_123+action_137 (89) = happyShift action_96+action_137 (90) = happyShift action_97+action_137 (91) = happyShift action_124+action_137 (92) = happyShift action_99+action_137 (95) = happyShift action_100+action_137 (97) = happyShift action_125+action_137 (99) = happyShift action_126+action_137 (101) = happyShift action_127+action_137 (103) = happyShift action_128+action_137 (107) = happyShift action_57+action_137 (111) = happyShift action_58+action_137 (112) = happyShift action_59+action_137 (113) = happyShift action_60+action_137 (115) = happyShift action_61+action_137 (116) = happyShift action_62+action_137 (118) = happyShift action_129+action_137 (119) = happyShift action_103+action_137 (23) = happyGoto action_104+action_137 (26) = happyGoto action_105+action_137 (27) = happyGoto action_106+action_137 (29) = happyGoto action_107+action_137 (31) = happyGoto action_108+action_137 (32) = happyGoto action_109+action_137 (33) = happyGoto action_110+action_137 (34) = happyGoto action_111+action_137 (37) = happyGoto action_112+action_137 (40) = happyGoto action_175+action_137 (41) = happyGoto action_114+action_137 (42) = happyGoto action_115+action_137 (43) = happyGoto action_116+action_137 (44) = happyGoto action_117+action_137 (45) = happyGoto action_118+action_137 (46) = happyGoto action_87+action_137 _ = happyReduce_60++action_138 (104) = happyShift action_174+action_138 _ = happyReduce_46++action_139 (106) = happyShift action_173+action_139 _ = happyFail (happyExpListPerState 139)++action_140 (65) = happyShift action_39+action_140 (23) = happyGoto action_138+action_140 (25) = happyGoto action_172+action_140 _ = happyFail (happyExpListPerState 140)++action_141 (106) = happyShift action_171+action_141 _ = happyFail (happyExpListPerState 141)++action_142 (65) = happyShift action_39+action_142 (23) = happyGoto action_168+action_142 (50) = happyGoto action_169+action_142 (51) = happyGoto action_170+action_142 _ = happyReduce_140++action_143 (65) = happyShift action_39+action_143 (66) = happyShift action_93+action_143 (67) = happyShift action_119+action_143 (70) = happyShift action_95+action_143 (77) = happyShift action_120+action_143 (79) = happyShift action_121+action_143 (87) = happyShift action_122+action_143 (88) = happyShift action_123+action_143 (89) = happyShift action_96+action_143 (90) = happyShift action_97+action_143 (91) = happyShift action_124+action_143 (92) = happyShift action_99+action_143 (95) = happyShift action_100+action_143 (97) = happyShift action_125+action_143 (99) = happyShift action_126+action_143 (101) = happyShift action_127+action_143 (103) = happyShift action_128+action_143 (107) = happyShift action_57+action_143 (111) = happyShift action_58+action_143 (112) = happyShift action_59+action_143 (113) = happyShift action_60+action_143 (115) = happyShift action_61+action_143 (116) = happyShift action_62+action_143 (118) = happyShift action_129+action_143 (119) = happyShift action_103+action_143 (23) = happyGoto action_104+action_143 (26) = happyGoto action_105+action_143 (27) = happyGoto action_106+action_143 (29) = happyGoto action_107+action_143 (31) = happyGoto action_108+action_143 (32) = happyGoto action_109+action_143 (33) = happyGoto action_110+action_143 (34) = happyGoto action_111+action_143 (37) = happyGoto action_112+action_143 (40) = happyGoto action_167+action_143 (41) = happyGoto action_114+action_143 (42) = happyGoto action_115+action_143 (43) = happyGoto action_116+action_143 (44) = happyGoto action_117+action_143 (45) = happyGoto action_118+action_143 (46) = happyGoto action_87+action_143 _ = happyReduce_60++action_144 _ = happyReduce_179++action_145 (65) = happyShift action_39+action_145 (23) = happyGoto action_138+action_145 (25) = happyGoto action_166+action_145 _ = happyFail (happyExpListPerState 145)++action_146 (100) = happyShift action_165+action_146 _ = happyFail (happyExpListPerState 146)++action_147 (101) = happyShift action_164+action_147 _ = happyFail (happyExpListPerState 147)++action_148 (97) = happyShift action_125+action_148 (99) = happyShift action_151+action_148 (101) = happyShift action_152+action_148 (103) = happyShift action_128+action_148 (107) = happyShift action_57+action_148 (111) = happyShift action_58+action_148 (112) = happyShift action_59+action_148 (113) = happyShift action_60+action_148 (115) = happyShift action_61+action_148 (116) = happyShift action_62+action_148 (26) = happyGoto action_147+action_148 (27) = happyGoto action_148+action_148 (31) = happyGoto action_163+action_148 (32) = happyGoto action_150+action_148 (33) = happyGoto action_110+action_148 (34) = happyGoto action_111+action_148 _ = happyReduce_60++action_149 (106) = happyShift action_162+action_149 (20) = happyGoto action_161+action_149 _ = happyReduce_38++action_150 (97) = happyShift action_125+action_150 (99) = happyShift action_151+action_150 (101) = happyShift action_152+action_150 (103) = happyShift action_128+action_150 (107) = happyShift action_57+action_150 (111) = happyShift action_58+action_150 (112) = happyShift action_59+action_150 (113) = happyShift action_60+action_150 (115) = happyShift action_61+action_150 (116) = happyShift action_62+action_150 (26) = happyGoto action_147+action_150 (27) = happyGoto action_148+action_150 (31) = happyGoto action_160+action_150 (32) = happyGoto action_150+action_150 (33) = happyGoto action_110+action_150 (34) = happyGoto action_111+action_150 _ = happyReduce_60++action_151 (65) = happyShift action_39+action_151 (23) = happyGoto action_158+action_151 (25) = happyGoto action_159+action_151 _ = happyFail (happyExpListPerState 151)++action_152 (65) = happyShift action_39+action_152 (66) = happyShift action_93+action_152 (67) = happyShift action_119+action_152 (70) = happyShift action_95+action_152 (77) = happyShift action_120+action_152 (79) = happyShift action_121+action_152 (87) = happyShift action_122+action_152 (88) = happyShift action_123+action_152 (89) = happyShift action_96+action_152 (90) = happyShift action_97+action_152 (91) = happyShift action_124+action_152 (92) = happyShift action_99+action_152 (95) = happyShift action_100+action_152 (97) = happyShift action_125+action_152 (99) = happyShift action_126+action_152 (101) = happyShift action_127+action_152 (103) = happyShift action_128+action_152 (107) = happyShift action_57+action_152 (111) = happyShift action_58+action_152 (112) = happyShift action_59+action_152 (113) = happyShift action_60+action_152 (115) = happyShift action_61+action_152 (116) = happyShift action_62+action_152 (118) = happyShift action_129+action_152 (119) = happyShift action_103+action_152 (23) = happyGoto action_154+action_152 (26) = happyGoto action_105+action_152 (27) = happyGoto action_106+action_152 (29) = happyGoto action_107+action_152 (30) = happyGoto action_155+action_152 (31) = happyGoto action_108+action_152 (32) = happyGoto action_109+action_152 (33) = happyGoto action_110+action_152 (34) = happyGoto action_111+action_152 (37) = happyGoto action_112+action_152 (39) = happyGoto action_156+action_152 (40) = happyGoto action_157+action_152 (41) = happyGoto action_114+action_152 (42) = happyGoto action_115+action_152 (43) = happyGoto action_116+action_152 (44) = happyGoto action_117+action_152 (45) = happyGoto action_118+action_152 (46) = happyGoto action_87+action_152 _ = happyReduce_60++action_153 _ = happyReduce_79++action_154 (95) = happyShift action_303+action_154 (109) = happyShift action_304+action_154 _ = happyReduce_129++action_155 (106) = happyShift action_302+action_155 _ = happyFail (happyExpListPerState 155)++action_156 _ = happyReduce_59++action_157 (104) = happyShift action_301+action_157 _ = happyReduce_91++action_158 (95) = happyShift action_275+action_158 (104) = happyShift action_174+action_158 (109) = happyShift action_276+action_158 _ = happyReduce_46++action_159 (106) = happyShift action_300+action_159 _ = happyFail (happyExpListPerState 159)++action_160 _ = happyReduce_61++action_161 (110) = happyShift action_299+action_161 _ = happyFail (happyExpListPerState 161)++action_162 (65) = happyShift action_39+action_162 (66) = happyShift action_93+action_162 (67) = happyShift action_119+action_162 (70) = happyShift action_95+action_162 (77) = happyShift action_120+action_162 (79) = happyShift action_121+action_162 (87) = happyShift action_122+action_162 (88) = happyShift action_123+action_162 (89) = happyShift action_96+action_162 (90) = happyShift action_97+action_162 (91) = happyShift action_124+action_162 (92) = happyShift action_99+action_162 (95) = happyShift action_100+action_162 (97) = happyShift action_125+action_162 (99) = happyShift action_126+action_162 (101) = happyShift action_127+action_162 (103) = happyShift action_128+action_162 (107) = happyShift action_57+action_162 (111) = happyShift action_58+action_162 (112) = happyShift action_59+action_162 (113) = happyShift action_60+action_162 (115) = happyShift action_61+action_162 (116) = happyShift action_62+action_162 (118) = happyShift action_129+action_162 (119) = happyShift action_103+action_162 (23) = happyGoto action_104+action_162 (26) = happyGoto action_105+action_162 (27) = happyGoto action_106+action_162 (29) = happyGoto action_107+action_162 (31) = happyGoto action_108+action_162 (32) = happyGoto action_109+action_162 (33) = happyGoto action_110+action_162 (34) = happyGoto action_111+action_162 (37) = happyGoto action_112+action_162 (40) = happyGoto action_298+action_162 (41) = happyGoto action_114+action_162 (42) = happyGoto action_115+action_162 (43) = happyGoto action_116+action_162 (44) = happyGoto action_117+action_162 (45) = happyGoto action_118+action_162 (46) = happyGoto action_87+action_162 _ = happyReduce_60++action_163 _ = happyReduce_62++action_164 (65) = happyShift action_39+action_164 (66) = happyShift action_93+action_164 (67) = happyShift action_119+action_164 (70) = happyShift action_95+action_164 (77) = happyShift action_120+action_164 (79) = happyShift action_121+action_164 (87) = happyShift action_122+action_164 (88) = happyShift action_123+action_164 (89) = happyShift action_96+action_164 (90) = happyShift action_97+action_164 (91) = happyShift action_124+action_164 (92) = happyShift action_99+action_164 (95) = happyShift action_100+action_164 (97) = happyShift action_125+action_164 (99) = happyShift action_126+action_164 (101) = happyShift action_127+action_164 (103) = happyShift action_128+action_164 (107) = happyShift action_57+action_164 (111) = happyShift action_58+action_164 (112) = happyShift action_59+action_164 (113) = happyShift action_60+action_164 (115) = happyShift action_61+action_164 (116) = happyShift action_62+action_164 (118) = happyShift action_129+action_164 (119) = happyShift action_103+action_164 (23) = happyGoto action_296+action_164 (26) = happyGoto action_105+action_164 (27) = happyGoto action_106+action_164 (29) = happyGoto action_107+action_164 (30) = happyGoto action_297+action_164 (31) = happyGoto action_108+action_164 (32) = happyGoto action_109+action_164 (33) = happyGoto action_110+action_164 (34) = happyGoto action_111+action_164 (37) = happyGoto action_112+action_164 (39) = happyGoto action_156+action_164 (40) = happyGoto action_157+action_164 (41) = happyGoto action_114+action_164 (42) = happyGoto action_115+action_164 (43) = happyGoto action_116+action_164 (44) = happyGoto action_117+action_164 (45) = happyGoto action_118+action_164 (46) = happyGoto action_87+action_164 _ = happyReduce_60++action_165 _ = happyReduce_78++action_166 (106) = happyShift action_295+action_166 _ = happyFail (happyExpListPerState 166)++action_167 (97) = happyShift action_294+action_167 _ = happyFail (happyExpListPerState 167)++action_168 (97) = happyShift action_125+action_168 (99) = happyShift action_151+action_168 (101) = happyShift action_152+action_168 (103) = happyShift action_128+action_168 (107) = happyShift action_57+action_168 (111) = happyShift action_58+action_168 (112) = happyShift action_59+action_168 (113) = happyShift action_60+action_168 (115) = happyShift action_61+action_168 (116) = happyShift action_62+action_168 (26) = happyGoto action_147+action_168 (27) = happyGoto action_148+action_168 (31) = happyGoto action_293+action_168 (32) = happyGoto action_150+action_168 (33) = happyGoto action_110+action_168 (34) = happyGoto action_111+action_168 _ = happyReduce_60++action_169 _ = happyReduce_139++action_170 (98) = happyShift action_291+action_170 (105) = happyShift action_292+action_170 _ = happyFail (happyExpListPerState 170)++action_171 (65) = happyShift action_39+action_171 (66) = happyShift action_93+action_171 (67) = happyShift action_119+action_171 (70) = happyShift action_95+action_171 (77) = happyShift action_120+action_171 (79) = happyShift action_121+action_171 (87) = happyShift action_122+action_171 (88) = happyShift action_123+action_171 (89) = happyShift action_96+action_171 (90) = happyShift action_97+action_171 (91) = happyShift action_124+action_171 (92) = happyShift action_99+action_171 (95) = happyShift action_100+action_171 (97) = happyShift action_125+action_171 (99) = happyShift action_126+action_171 (101) = happyShift action_127+action_171 (103) = happyShift action_128+action_171 (107) = happyShift action_57+action_171 (111) = happyShift action_58+action_171 (112) = happyShift action_59+action_171 (113) = happyShift action_60+action_171 (115) = happyShift action_61+action_171 (116) = happyShift action_62+action_171 (118) = happyShift action_129+action_171 (119) = happyShift action_103+action_171 (23) = happyGoto action_104+action_171 (26) = happyGoto action_105+action_171 (27) = happyGoto action_106+action_171 (29) = happyGoto action_107+action_171 (31) = happyGoto action_108+action_171 (32) = happyGoto action_109+action_171 (33) = happyGoto action_110+action_171 (34) = happyGoto action_111+action_171 (37) = happyGoto action_112+action_171 (40) = happyGoto action_290+action_171 (41) = happyGoto action_114+action_171 (42) = happyGoto action_115+action_171 (43) = happyGoto action_116+action_171 (44) = happyGoto action_117+action_171 (45) = happyGoto action_118+action_171 (46) = happyGoto action_87+action_171 _ = happyReduce_60++action_172 (106) = happyShift action_289+action_172 _ = happyFail (happyExpListPerState 172)++action_173 (65) = happyShift action_39+action_173 (66) = happyShift action_93+action_173 (67) = happyShift action_119+action_173 (70) = happyShift action_95+action_173 (77) = happyShift action_120+action_173 (79) = happyShift action_121+action_173 (87) = happyShift action_122+action_173 (88) = happyShift action_123+action_173 (89) = happyShift action_96+action_173 (90) = happyShift action_97+action_173 (91) = happyShift action_124+action_173 (92) = happyShift action_99+action_173 (95) = happyShift action_100+action_173 (97) = happyShift action_125+action_173 (99) = happyShift action_126+action_173 (101) = happyShift action_127+action_173 (103) = happyShift action_128+action_173 (107) = happyShift action_57+action_173 (111) = happyShift action_58+action_173 (112) = happyShift action_59+action_173 (113) = happyShift action_60+action_173 (115) = happyShift action_61+action_173 (116) = happyShift action_62+action_173 (118) = happyShift action_129+action_173 (119) = happyShift action_103+action_173 (23) = happyGoto action_104+action_173 (26) = happyGoto action_105+action_173 (27) = happyGoto action_106+action_173 (29) = happyGoto action_107+action_173 (31) = happyGoto action_108+action_173 (32) = happyGoto action_109+action_173 (33) = happyGoto action_110+action_173 (34) = happyGoto action_111+action_173 (37) = happyGoto action_112+action_173 (40) = happyGoto action_288+action_173 (41) = happyGoto action_114+action_173 (42) = happyGoto action_115+action_173 (43) = happyGoto action_116+action_173 (44) = happyGoto action_117+action_173 (45) = happyGoto action_118+action_173 (46) = happyGoto action_87+action_173 _ = happyReduce_60++action_174 (65) = happyShift action_39+action_174 (23) = happyGoto action_138+action_174 (25) = happyGoto action_287+action_174 _ = happyFail (happyExpListPerState 174)++action_175 (97) = happyShift action_286+action_175 _ = happyFail (happyExpListPerState 175)++action_176 (98) = happyShift action_285+action_176 _ = happyFail (happyExpListPerState 176)++action_177 _ = happyReduce_31++action_178 (65) = happyShift action_39+action_178 (23) = happyGoto action_130+action_178 (53) = happyGoto action_284+action_178 _ = happyReduce_171++action_179 _ = happyReduce_32++action_180 (110) = happyShift action_283+action_180 _ = happyReduce_147++action_181 (65) = happyShift action_39+action_181 (91) = happyShift action_235+action_181 (93) = happyShift action_282+action_181 (101) = happyShift action_236+action_181 (107) = happyShift action_102+action_181 (23) = happyGoto action_233+action_181 (56) = happyGoto action_281+action_181 (60) = happyGoto action_231+action_181 _ = happyReduce_148++action_182 (108) = happyShift action_280+action_182 _ = happyFail (happyExpListPerState 182)++action_183 _ = happyReduce_54++action_184 (103) = happyShift action_278+action_184 (104) = happyShift action_279+action_184 _ = happyFail (happyExpListPerState 184)++action_185 (102) = happyShift action_277+action_185 _ = happyFail (happyExpListPerState 185)++action_186 (106) = happyReduce_59+action_186 _ = happyReduce_90++action_187 (95) = happyShift action_275+action_187 (104) = happyShift action_174+action_187 (106) = happyReduce_46+action_187 (109) = happyShift action_276+action_187 _ = happyReduce_129++action_188 (100) = happyShift action_274+action_188 _ = happyFail (happyExpListPerState 188)++action_189 (95) = happyShift action_272+action_189 (104) = happyShift action_174+action_189 (109) = happyShift action_273+action_189 _ = happyReduce_46++action_190 (106) = happyShift action_271+action_190 _ = happyFail (happyExpListPerState 190)++action_191 _ = happyReduce_125++action_192 (65) = happyShift action_39+action_192 (66) = happyShift action_93+action_192 (67) = happyShift action_119+action_192 (70) = happyShift action_95+action_192 (77) = happyShift action_120+action_192 (79) = happyShift action_121+action_192 (87) = happyShift action_122+action_192 (88) = happyShift action_123+action_192 (89) = happyShift action_96+action_192 (90) = happyShift action_97+action_192 (91) = happyShift action_124+action_192 (92) = happyShift action_99+action_192 (95) = happyShift action_100+action_192 (97) = happyShift action_125+action_192 (99) = happyShift action_126+action_192 (101) = happyShift action_127+action_192 (103) = happyShift action_128+action_192 (107) = happyShift action_57+action_192 (111) = happyShift action_58+action_192 (112) = happyShift action_59+action_192 (113) = happyShift action_60+action_192 (115) = happyShift action_61+action_192 (116) = happyShift action_62+action_192 (118) = happyShift action_129+action_192 (119) = happyShift action_103+action_192 (23) = happyGoto action_104+action_192 (26) = happyGoto action_105+action_192 (27) = happyGoto action_106+action_192 (29) = happyGoto action_107+action_192 (31) = happyGoto action_108+action_192 (32) = happyGoto action_109+action_192 (33) = happyGoto action_110+action_192 (34) = happyGoto action_111+action_192 (37) = happyGoto action_112+action_192 (38) = happyGoto action_185+action_192 (39) = happyGoto action_200+action_192 (40) = happyGoto action_157+action_192 (41) = happyGoto action_114+action_192 (42) = happyGoto action_115+action_192 (43) = happyGoto action_116+action_192 (44) = happyGoto action_117+action_192 (45) = happyGoto action_118+action_192 (46) = happyGoto action_87+action_192 _ = happyReduce_60++action_193 _ = happyReduce_110++action_194 _ = happyReduce_112++action_195 _ = happyReduce_80++action_196 (65) = happyShift action_39+action_196 (101) = happyShift action_270+action_196 (23) = happyGoto action_153+action_196 _ = happyFail (happyExpListPerState 196)++action_197 (80) = happyShift action_269+action_197 _ = happyFail (happyExpListPerState 197)++action_198 (65) = happyShift action_39+action_198 (23) = happyGoto action_268+action_198 _ = happyFail (happyExpListPerState 198)++action_199 (106) = happyShift action_162+action_199 (20) = happyGoto action_267+action_199 _ = happyReduce_38++action_200 _ = happyReduce_90++action_201 (65) = happyShift action_39+action_201 (66) = happyShift action_93+action_201 (67) = happyShift action_119+action_201 (70) = happyShift action_95+action_201 (87) = happyShift action_122+action_201 (88) = happyShift action_123+action_201 (89) = happyShift action_96+action_201 (90) = happyShift action_97+action_201 (91) = happyShift action_124+action_201 (92) = happyShift action_99+action_201 (95) = happyShift action_100+action_201 (101) = happyShift action_192+action_201 (119) = happyShift action_103+action_201 (23) = happyGoto action_104+action_201 (43) = happyGoto action_266+action_201 (44) = happyGoto action_117+action_201 (45) = happyGoto action_118+action_201 (46) = happyGoto action_87+action_201 _ = happyFail (happyExpListPerState 201)++action_202 _ = happyReduce_115++action_203 _ = happyReduce_117++action_204 (65) = happyShift action_39+action_204 (23) = happyGoto action_265+action_204 _ = happyFail (happyExpListPerState 204)++action_205 (65) = happyShift action_39+action_205 (66) = happyShift action_93+action_205 (67) = happyShift action_119+action_205 (70) = happyShift action_95+action_205 (77) = happyShift action_120+action_205 (79) = happyShift action_121+action_205 (87) = happyShift action_122+action_205 (88) = happyShift action_123+action_205 (89) = happyShift action_96+action_205 (90) = happyShift action_97+action_205 (91) = happyShift action_124+action_205 (92) = happyShift action_99+action_205 (95) = happyShift action_100+action_205 (97) = happyShift action_125+action_205 (99) = happyShift action_126+action_205 (101) = happyShift action_127+action_205 (103) = happyShift action_128+action_205 (107) = happyShift action_57+action_205 (111) = happyShift action_58+action_205 (112) = happyShift action_59+action_205 (113) = happyShift action_60+action_205 (115) = happyShift action_61+action_205 (116) = happyShift action_62+action_205 (118) = happyShift action_129+action_205 (119) = happyShift action_103+action_205 (23) = happyGoto action_104+action_205 (26) = happyGoto action_105+action_205 (27) = happyGoto action_106+action_205 (29) = happyGoto action_107+action_205 (31) = happyGoto action_108+action_205 (32) = happyGoto action_109+action_205 (33) = happyGoto action_110+action_205 (34) = happyGoto action_111+action_205 (37) = happyGoto action_112+action_205 (40) = happyGoto action_264+action_205 (41) = happyGoto action_114+action_205 (42) = happyGoto action_115+action_205 (43) = happyGoto action_116+action_205 (44) = happyGoto action_117+action_205 (45) = happyGoto action_118+action_205 (46) = happyGoto action_87+action_205 _ = happyReduce_60++action_206 (65) = happyShift action_39+action_206 (66) = happyShift action_93+action_206 (67) = happyShift action_119+action_206 (70) = happyShift action_95+action_206 (77) = happyShift action_120+action_206 (79) = happyShift action_121+action_206 (87) = happyShift action_122+action_206 (88) = happyShift action_123+action_206 (89) = happyShift action_96+action_206 (90) = happyShift action_97+action_206 (91) = happyShift action_124+action_206 (92) = happyShift action_99+action_206 (95) = happyShift action_100+action_206 (97) = happyShift action_125+action_206 (99) = happyShift action_126+action_206 (101) = happyShift action_127+action_206 (103) = happyShift action_128+action_206 (107) = happyShift action_57+action_206 (111) = happyShift action_58+action_206 (112) = happyShift action_59+action_206 (113) = happyShift action_60+action_206 (115) = happyShift action_61+action_206 (116) = happyShift action_62+action_206 (118) = happyShift action_129+action_206 (119) = happyShift action_103+action_206 (23) = happyGoto action_104+action_206 (26) = happyGoto action_105+action_206 (27) = happyGoto action_106+action_206 (29) = happyGoto action_107+action_206 (31) = happyGoto action_108+action_206 (32) = happyGoto action_109+action_206 (33) = happyGoto action_110+action_206 (34) = happyGoto action_111+action_206 (37) = happyGoto action_112+action_206 (40) = happyGoto action_263+action_206 (41) = happyGoto action_114+action_206 (42) = happyGoto action_115+action_206 (43) = happyGoto action_116+action_206 (44) = happyGoto action_117+action_206 (45) = happyGoto action_118+action_206 (46) = happyGoto action_87+action_206 _ = happyReduce_60++action_207 (65) = happyShift action_39+action_207 (66) = happyShift action_93+action_207 (67) = happyShift action_119+action_207 (70) = happyShift action_95+action_207 (77) = happyShift action_120+action_207 (79) = happyShift action_121+action_207 (87) = happyShift action_122+action_207 (88) = happyShift action_123+action_207 (89) = happyShift action_96+action_207 (90) = happyShift action_97+action_207 (91) = happyShift action_124+action_207 (92) = happyShift action_99+action_207 (95) = happyShift action_100+action_207 (97) = happyShift action_125+action_207 (99) = happyShift action_126+action_207 (101) = happyShift action_127+action_207 (103) = happyShift action_128+action_207 (107) = happyShift action_57+action_207 (111) = happyShift action_58+action_207 (112) = happyShift action_59+action_207 (113) = happyShift action_60+action_207 (115) = happyShift action_61+action_207 (116) = happyShift action_62+action_207 (118) = happyShift action_129+action_207 (119) = happyShift action_103+action_207 (23) = happyGoto action_104+action_207 (26) = happyGoto action_105+action_207 (27) = happyGoto action_106+action_207 (29) = happyGoto action_107+action_207 (31) = happyGoto action_108+action_207 (32) = happyGoto action_109+action_207 (33) = happyGoto action_110+action_207 (34) = happyGoto action_111+action_207 (37) = happyGoto action_112+action_207 (40) = happyGoto action_262+action_207 (41) = happyGoto action_114+action_207 (42) = happyGoto action_115+action_207 (43) = happyGoto action_116+action_207 (44) = happyGoto action_117+action_207 (45) = happyGoto action_118+action_207 (46) = happyGoto action_87+action_207 _ = happyReduce_60++action_208 (65) = happyShift action_39+action_208 (66) = happyShift action_93+action_208 (67) = happyShift action_119+action_208 (70) = happyShift action_95+action_208 (87) = happyShift action_122+action_208 (88) = happyShift action_123+action_208 (89) = happyShift action_96+action_208 (90) = happyShift action_97+action_208 (91) = happyShift action_124+action_208 (92) = happyShift action_99+action_208 (95) = happyShift action_100+action_208 (97) = happyShift action_125+action_208 (99) = happyShift action_218+action_208 (101) = happyShift action_127+action_208 (103) = happyShift action_128+action_208 (107) = happyShift action_57+action_208 (111) = happyShift action_58+action_208 (112) = happyShift action_59+action_208 (113) = happyShift action_60+action_208 (115) = happyShift action_61+action_208 (116) = happyShift action_62+action_208 (119) = happyShift action_103+action_208 (23) = happyGoto action_104+action_208 (26) = happyGoto action_212+action_208 (27) = happyGoto action_213+action_208 (29) = happyGoto action_214+action_208 (32) = happyGoto action_215+action_208 (33) = happyGoto action_110+action_208 (34) = happyGoto action_111+action_208 (41) = happyGoto action_260+action_208 (42) = happyGoto action_115+action_208 (43) = happyGoto action_261+action_208 (44) = happyGoto action_117+action_208 (45) = happyGoto action_118+action_208 (46) = happyGoto action_87+action_208 _ = happyFail (happyExpListPerState 208)++action_209 (65) = happyShift action_39+action_209 (66) = happyShift action_93+action_209 (67) = happyShift action_119+action_209 (70) = happyShift action_95+action_209 (77) = happyShift action_120+action_209 (79) = happyShift action_121+action_209 (87) = happyShift action_122+action_209 (88) = happyShift action_123+action_209 (89) = happyShift action_96+action_209 (90) = happyShift action_97+action_209 (91) = happyShift action_124+action_209 (92) = happyShift action_99+action_209 (95) = happyShift action_100+action_209 (97) = happyShift action_125+action_209 (99) = happyShift action_126+action_209 (101) = happyShift action_127+action_209 (103) = happyShift action_128+action_209 (107) = happyShift action_57+action_209 (111) = happyShift action_58+action_209 (112) = happyShift action_59+action_209 (113) = happyShift action_60+action_209 (115) = happyShift action_61+action_209 (116) = happyShift action_62+action_209 (118) = happyShift action_129+action_209 (119) = happyShift action_103+action_209 (23) = happyGoto action_104+action_209 (26) = happyGoto action_105+action_209 (27) = happyGoto action_106+action_209 (29) = happyGoto action_107+action_209 (31) = happyGoto action_108+action_209 (32) = happyGoto action_109+action_209 (33) = happyGoto action_110+action_209 (34) = happyGoto action_111+action_209 (37) = happyGoto action_112+action_209 (40) = happyGoto action_259+action_209 (41) = happyGoto action_114+action_209 (42) = happyGoto action_115+action_209 (43) = happyGoto action_116+action_209 (44) = happyGoto action_117+action_209 (45) = happyGoto action_118+action_209 (46) = happyGoto action_87+action_209 _ = happyReduce_60++action_210 (103) = happyShift action_128+action_210 (27) = happyGoto action_258+action_210 _ = happyFail (happyExpListPerState 210)++action_211 (103) = happyShift action_128+action_211 (27) = happyGoto action_257+action_211 _ = happyFail (happyExpListPerState 211)++action_212 (65) = happyShift action_39+action_212 (66) = happyShift action_93+action_212 (67) = happyShift action_119+action_212 (70) = happyShift action_95+action_212 (87) = happyShift action_122+action_212 (88) = happyShift action_123+action_212 (89) = happyShift action_96+action_212 (90) = happyShift action_97+action_212 (91) = happyShift action_124+action_212 (92) = happyShift action_99+action_212 (95) = happyShift action_100+action_212 (101) = happyShift action_256+action_212 (119) = happyShift action_103+action_212 (23) = happyGoto action_104+action_212 (43) = happyGoto action_255+action_212 (44) = happyGoto action_117+action_212 (45) = happyGoto action_118+action_212 (46) = happyGoto action_87+action_212 _ = happyFail (happyExpListPerState 212)++action_213 (95) = happyShift action_210+action_213 (109) = happyShift action_211+action_213 _ = happyReduce_107++action_214 _ = happyReduce_108++action_215 _ = happyReduce_106++action_216 _ = happyReduce_85++action_217 (117) = happyReduce_105+action_217 _ = happyReduce_101++action_218 (65) = happyShift action_39+action_218 (66) = happyShift action_93+action_218 (67) = happyShift action_119+action_218 (70) = happyShift action_95+action_218 (77) = happyShift action_120+action_218 (79) = happyShift action_121+action_218 (87) = happyShift action_122+action_218 (88) = happyShift action_123+action_218 (89) = happyShift action_96+action_218 (90) = happyShift action_97+action_218 (91) = happyShift action_124+action_218 (92) = happyShift action_99+action_218 (95) = happyShift action_100+action_218 (97) = happyShift action_125+action_218 (99) = happyShift action_126+action_218 (101) = happyShift action_127+action_218 (103) = happyShift action_128+action_218 (107) = happyShift action_57+action_218 (111) = happyShift action_58+action_218 (112) = happyShift action_59+action_218 (113) = happyShift action_60+action_218 (115) = happyShift action_61+action_218 (116) = happyShift action_62+action_218 (118) = happyShift action_129+action_218 (119) = happyShift action_103+action_218 (23) = happyGoto action_187+action_218 (25) = happyGoto action_159+action_218 (26) = happyGoto action_105+action_218 (27) = happyGoto action_106+action_218 (29) = happyGoto action_107+action_218 (31) = happyGoto action_108+action_218 (32) = happyGoto action_109+action_218 (33) = happyGoto action_110+action_218 (34) = happyGoto action_111+action_218 (37) = happyGoto action_112+action_218 (40) = happyGoto action_254+action_218 (41) = happyGoto action_114+action_218 (42) = happyGoto action_115+action_218 (43) = happyGoto action_116+action_218 (44) = happyGoto action_117+action_218 (45) = happyGoto action_118+action_218 (46) = happyGoto action_87+action_218 _ = happyReduce_60++action_219 (65) = happyShift action_39+action_219 (66) = happyShift action_93+action_219 (67) = happyShift action_119+action_219 (70) = happyShift action_95+action_219 (77) = happyShift action_120+action_219 (79) = happyShift action_121+action_219 (87) = happyShift action_122+action_219 (88) = happyShift action_123+action_219 (89) = happyShift action_96+action_219 (90) = happyShift action_97+action_219 (91) = happyShift action_124+action_219 (92) = happyShift action_99+action_219 (95) = happyShift action_100+action_219 (97) = happyShift action_125+action_219 (99) = happyShift action_126+action_219 (101) = happyShift action_127+action_219 (103) = happyShift action_128+action_219 (107) = happyShift action_57+action_219 (111) = happyShift action_58+action_219 (112) = happyShift action_59+action_219 (113) = happyShift action_60+action_219 (115) = happyShift action_61+action_219 (116) = happyShift action_62+action_219 (118) = happyShift action_129+action_219 (119) = happyShift action_103+action_219 (23) = happyGoto action_252+action_219 (26) = happyGoto action_105+action_219 (27) = happyGoto action_106+action_219 (29) = happyGoto action_107+action_219 (30) = happyGoto action_253+action_219 (31) = happyGoto action_108+action_219 (32) = happyGoto action_109+action_219 (33) = happyGoto action_110+action_219 (34) = happyGoto action_111+action_219 (37) = happyGoto action_112+action_219 (38) = happyGoto action_185+action_219 (39) = happyGoto action_186+action_219 (40) = happyGoto action_157+action_219 (41) = happyGoto action_114+action_219 (42) = happyGoto action_115+action_219 (43) = happyGoto action_116+action_219 (44) = happyGoto action_117+action_219 (45) = happyGoto action_118+action_219 (46) = happyGoto action_87+action_219 _ = happyReduce_60++action_220 (65) = happyReduce_168+action_220 (68) = happyReduce_168+action_220 (69) = happyReduce_168+action_220 (70) = happyReduce_168+action_220 (71) = happyReduce_168+action_220 (73) = happyReduce_168+action_220 (74) = happyReduce_168+action_220 (75) = happyReduce_168+action_220 (76) = happyReduce_168+action_220 (79) = happyReduce_168+action_220 (81) = happyReduce_168+action_220 (82) = happyReduce_168+action_220 (83) = happyReduce_168+action_220 (84) = happyReduce_168+action_220 (85) = happyReduce_168+action_220 (91) = happyReduce_168+action_220 (93) = happyReduce_168+action_220 (98) = happyReduce_168+action_220 (101) = happyReduce_168+action_220 (102) = happyReduce_168+action_220 (104) = happyReduce_168+action_220 (105) = happyReduce_168+action_220 (107) = happyReduce_168+action_220 (108) = happyReduce_168+action_220 (110) = happyReduce_168+action_220 (120) = happyReduce_168+action_220 _ = happyReduce_168++action_221 _ = happyReduce_157++action_222 _ = happyReduce_156++action_223 (96) = happyShift action_240+action_223 _ = happyReduce_114++action_224 (102) = happyShift action_251+action_224 _ = happyFail (happyExpListPerState 224)++action_225 (65) = happyShift action_39+action_225 (66) = happyShift action_93+action_225 (67) = happyShift action_119+action_225 (70) = happyShift action_95+action_225 (77) = happyShift action_120+action_225 (79) = happyShift action_121+action_225 (87) = happyShift action_122+action_225 (88) = happyShift action_123+action_225 (89) = happyShift action_96+action_225 (90) = happyShift action_97+action_225 (91) = happyShift action_98+action_225 (92) = happyShift action_99+action_225 (95) = happyShift action_100+action_225 (97) = happyShift action_125+action_225 (99) = happyShift action_126+action_225 (101) = happyShift action_225+action_225 (102) = happyShift action_226+action_225 (103) = happyShift action_128+action_225 (107) = happyShift action_227+action_225 (111) = happyShift action_58+action_225 (112) = happyShift action_59+action_225 (113) = happyShift action_60+action_225 (115) = happyShift action_61+action_225 (116) = happyShift action_62+action_225 (118) = happyShift action_129+action_225 (119) = happyShift action_103+action_225 (23) = happyGoto action_250+action_225 (26) = happyGoto action_105+action_225 (27) = happyGoto action_106+action_225 (29) = happyGoto action_107+action_225 (30) = happyGoto action_155+action_225 (31) = happyGoto action_108+action_225 (32) = happyGoto action_109+action_225 (33) = happyGoto action_110+action_225 (34) = happyGoto action_111+action_225 (37) = happyGoto action_112+action_225 (38) = happyGoto action_185+action_225 (39) = happyGoto action_186+action_225 (40) = happyGoto action_157+action_225 (41) = happyGoto action_114+action_225 (42) = happyGoto action_115+action_225 (43) = happyGoto action_116+action_225 (44) = happyGoto action_117+action_225 (45) = happyGoto action_223+action_225 (46) = happyGoto action_87+action_225 (56) = happyGoto action_88+action_225 (57) = happyGoto action_224+action_225 (58) = happyGoto action_90+action_225 (59) = happyGoto action_91+action_225 (60) = happyGoto action_92+action_225 _ = happyReduce_60++action_226 _ = happyReduce_152++action_227 (65) = happyShift action_39+action_227 (66) = happyShift action_93+action_227 (67) = happyShift action_94+action_227 (70) = happyShift action_95+action_227 (87) = happyShift action_222+action_227 (89) = happyShift action_96+action_227 (90) = happyShift action_97+action_227 (91) = happyShift action_124+action_227 (92) = happyShift action_99+action_227 (95) = happyShift action_100+action_227 (101) = happyShift action_192+action_227 (119) = happyShift action_103+action_227 (23) = happyGoto action_220+action_227 (45) = happyGoto action_221+action_227 (46) = happyGoto action_87+action_227 _ = happyReduce_51++action_228 (106) = happyShift action_249+action_228 _ = happyFail (happyExpListPerState 228)++action_229 (65) = happyReduce_167+action_229 (68) = happyReduce_167+action_229 (69) = happyReduce_167+action_229 (70) = happyReduce_167+action_229 (71) = happyReduce_167+action_229 (73) = happyReduce_167+action_229 (74) = happyReduce_167+action_229 (75) = happyReduce_167+action_229 (76) = happyReduce_167+action_229 (79) = happyReduce_167+action_229 (81) = happyReduce_167+action_229 (82) = happyReduce_167+action_229 (83) = happyReduce_167+action_229 (84) = happyReduce_167+action_229 (85) = happyReduce_167+action_229 (91) = happyReduce_167+action_229 (93) = happyReduce_167+action_229 (98) = happyReduce_167+action_229 (101) = happyReduce_167+action_229 (102) = happyReduce_167+action_229 (104) = happyReduce_167+action_229 (105) = happyReduce_167+action_229 (107) = happyReduce_167+action_229 (110) = happyReduce_167+action_229 (120) = happyReduce_167+action_229 _ = happyReduce_129++action_230 _ = happyReduce_155++action_231 _ = happyReduce_154++action_232 (65) = happyShift action_39+action_232 (23) = happyGoto action_37+action_232 (24) = happyGoto action_246+action_232 (47) = happyGoto action_247+action_232 (48) = happyGoto action_248+action_232 _ = happyReduce_132++action_233 _ = happyReduce_167++action_234 _ = happyReduce_165++action_235 (65) = happyShift action_39+action_235 (91) = happyShift action_235+action_235 (101) = happyShift action_236+action_235 (107) = happyShift action_102+action_235 (23) = happyGoto action_233+action_235 (56) = happyGoto action_230+action_235 (60) = happyGoto action_231+action_235 _ = happyFail (happyExpListPerState 235)++action_236 (65) = happyShift action_39+action_236 (66) = happyShift action_93+action_236 (67) = happyShift action_94+action_236 (70) = happyShift action_95+action_236 (89) = happyShift action_96+action_236 (90) = happyShift action_97+action_236 (91) = happyShift action_98+action_236 (92) = happyShift action_99+action_236 (95) = happyShift action_100+action_236 (101) = happyShift action_101+action_236 (102) = happyShift action_226+action_236 (107) = happyShift action_102+action_236 (119) = happyShift action_103+action_236 (23) = happyGoto action_85+action_236 (45) = happyGoto action_86+action_236 (46) = happyGoto action_87+action_236 (56) = happyGoto action_88+action_236 (57) = happyGoto action_224+action_236 (58) = happyGoto action_90+action_236 (59) = happyGoto action_91+action_236 (60) = happyGoto action_92+action_236 _ = happyFail (happyExpListPerState 236)++action_237 _ = happyReduce_166++action_238 (65) = happyShift action_39+action_238 (66) = happyShift action_93+action_238 (67) = happyShift action_94+action_238 (70) = happyShift action_95+action_238 (89) = happyShift action_96+action_238 (90) = happyShift action_97+action_238 (91) = happyShift action_98+action_238 (92) = happyShift action_99+action_238 (95) = happyShift action_100+action_238 (101) = happyShift action_101+action_238 (107) = happyShift action_102+action_238 (119) = happyShift action_103+action_238 (23) = happyGoto action_85+action_238 (45) = happyGoto action_86+action_238 (46) = happyGoto action_87+action_238 (56) = happyGoto action_88+action_238 (58) = happyGoto action_245+action_238 (59) = happyGoto action_91+action_238 (60) = happyGoto action_92+action_238 _ = happyFail (happyExpListPerState 238)++action_239 (65) = happyShift action_39+action_239 (66) = happyShift action_93+action_239 (67) = happyShift action_94+action_239 (70) = happyShift action_95+action_239 (89) = happyShift action_96+action_239 (90) = happyShift action_97+action_239 (91) = happyShift action_98+action_239 (92) = happyShift action_99+action_239 (95) = happyShift action_100+action_239 (101) = happyShift action_101+action_239 (107) = happyShift action_102+action_239 (119) = happyShift action_103+action_239 (23) = happyGoto action_85+action_239 (45) = happyGoto action_86+action_239 (46) = happyGoto action_87+action_239 (56) = happyGoto action_88+action_239 (57) = happyGoto action_244+action_239 (58) = happyGoto action_90+action_239 (59) = happyGoto action_91+action_239 (60) = happyGoto action_92+action_239 _ = happyFail (happyExpListPerState 239)++action_240 (65) = happyShift action_39+action_240 (23) = happyGoto action_243+action_240 _ = happyFail (happyExpListPerState 240)++action_241 (65) = happyShift action_39+action_241 (66) = happyShift action_93+action_241 (67) = happyShift action_94+action_241 (70) = happyShift action_95+action_241 (89) = happyShift action_96+action_241 (90) = happyShift action_97+action_241 (91) = happyShift action_124+action_241 (92) = happyShift action_99+action_241 (95) = happyShift action_100+action_241 (101) = happyShift action_192+action_241 (119) = happyShift action_103+action_241 (23) = happyGoto action_104+action_241 (45) = happyGoto action_242+action_241 (46) = happyGoto action_87+action_241 _ = happyFail (happyExpListPerState 241)++action_242 _ = happyReduce_162++action_243 _ = happyReduce_161++action_244 _ = happyReduce_158++action_245 _ = happyReduce_164++action_246 (110) = happyShift action_346+action_246 _ = happyFail (happyExpListPerState 246)++action_247 (98) = happyShift action_345+action_247 _ = happyFail (happyExpListPerState 247)++action_248 (105) = happyShift action_344+action_248 _ = happyReduce_131++action_249 (65) = happyShift action_39+action_249 (66) = happyShift action_93+action_249 (67) = happyShift action_119+action_249 (70) = happyShift action_95+action_249 (77) = happyShift action_120+action_249 (79) = happyShift action_121+action_249 (87) = happyShift action_122+action_249 (88) = happyShift action_123+action_249 (89) = happyShift action_96+action_249 (90) = happyShift action_97+action_249 (91) = happyShift action_124+action_249 (92) = happyShift action_99+action_249 (95) = happyShift action_100+action_249 (97) = happyShift action_125+action_249 (99) = happyShift action_126+action_249 (101) = happyShift action_127+action_249 (103) = happyShift action_128+action_249 (107) = happyShift action_57+action_249 (111) = happyShift action_58+action_249 (112) = happyShift action_59+action_249 (113) = happyShift action_60+action_249 (115) = happyShift action_61+action_249 (116) = happyShift action_62+action_249 (118) = happyShift action_129+action_249 (119) = happyShift action_103+action_249 (23) = happyGoto action_104+action_249 (26) = happyGoto action_105+action_249 (27) = happyGoto action_106+action_249 (29) = happyGoto action_107+action_249 (31) = happyGoto action_108+action_249 (32) = happyGoto action_109+action_249 (33) = happyGoto action_110+action_249 (34) = happyGoto action_111+action_249 (37) = happyGoto action_112+action_249 (40) = happyGoto action_343+action_249 (41) = happyGoto action_114+action_249 (42) = happyGoto action_115+action_249 (43) = happyGoto action_116+action_249 (44) = happyGoto action_117+action_249 (45) = happyGoto action_118+action_249 (46) = happyGoto action_87+action_249 _ = happyReduce_60++action_250 (65) = happyReduce_167+action_250 (91) = happyReduce_167+action_250 (95) = happyShift action_342+action_250 (101) = happyReduce_167+action_250 (102) = happyReduce_167+action_250 (104) = happyReduce_167+action_250 (107) = happyReduce_167+action_250 (109) = happyShift action_304+action_250 _ = happyReduce_129++action_251 _ = happyReduce_153++action_252 (95) = happyShift action_340+action_252 (109) = happyShift action_341+action_252 _ = happyReduce_129++action_253 (106) = happyShift action_339+action_253 _ = happyFail (happyExpListPerState 253)++action_254 (100) = happyShift action_338+action_254 _ = happyFail (happyExpListPerState 254)++action_255 _ = happyReduce_105++action_256 (65) = happyShift action_39+action_256 (66) = happyShift action_93+action_256 (67) = happyShift action_119+action_256 (70) = happyShift action_95+action_256 (77) = happyShift action_120+action_256 (79) = happyShift action_121+action_256 (87) = happyShift action_122+action_256 (88) = happyShift action_123+action_256 (89) = happyShift action_96+action_256 (90) = happyShift action_97+action_256 (91) = happyShift action_124+action_256 (92) = happyShift action_99+action_256 (95) = happyShift action_100+action_256 (97) = happyShift action_125+action_256 (99) = happyShift action_126+action_256 (101) = happyShift action_127+action_256 (103) = happyShift action_128+action_256 (107) = happyShift action_57+action_256 (111) = happyShift action_58+action_256 (112) = happyShift action_59+action_256 (113) = happyShift action_60+action_256 (115) = happyShift action_61+action_256 (116) = happyShift action_62+action_256 (118) = happyShift action_129+action_256 (119) = happyShift action_103+action_256 (23) = happyGoto action_296+action_256 (26) = happyGoto action_105+action_256 (27) = happyGoto action_106+action_256 (29) = happyGoto action_107+action_256 (30) = happyGoto action_297+action_256 (31) = happyGoto action_108+action_256 (32) = happyGoto action_109+action_256 (33) = happyGoto action_110+action_256 (34) = happyGoto action_111+action_256 (37) = happyGoto action_112+action_256 (38) = happyGoto action_185+action_256 (39) = happyGoto action_186+action_256 (40) = happyGoto action_157+action_256 (41) = happyGoto action_114+action_256 (42) = happyGoto action_115+action_256 (43) = happyGoto action_116+action_256 (44) = happyGoto action_117+action_256 (45) = happyGoto action_118+action_256 (46) = happyGoto action_87+action_256 _ = happyReduce_60++action_257 _ = happyReduce_58++action_258 _ = happyReduce_57++action_259 _ = happyReduce_93++action_260 _ = happyReduce_102++action_261 (117) = happyReduce_103+action_261 _ = happyReduce_101++action_262 _ = happyReduce_98++action_263 _ = happyReduce_100++action_264 _ = happyReduce_99++action_265 _ = happyReduce_116++action_266 _ = happyReduce_113++action_267 (97) = happyShift action_337+action_267 _ = happyFail (happyExpListPerState 267)++action_268 (100) = happyShift action_165+action_268 (106) = happyShift action_336+action_268 _ = happyFail (happyExpListPerState 268)++action_269 (65) = happyShift action_39+action_269 (66) = happyShift action_93+action_269 (67) = happyShift action_119+action_269 (70) = happyShift action_95+action_269 (77) = happyShift action_120+action_269 (79) = happyShift action_121+action_269 (87) = happyShift action_122+action_269 (88) = happyShift action_123+action_269 (89) = happyShift action_96+action_269 (90) = happyShift action_97+action_269 (91) = happyShift action_124+action_269 (92) = happyShift action_99+action_269 (95) = happyShift action_100+action_269 (97) = happyShift action_125+action_269 (99) = happyShift action_126+action_269 (101) = happyShift action_127+action_269 (103) = happyShift action_128+action_269 (107) = happyShift action_57+action_269 (111) = happyShift action_58+action_269 (112) = happyShift action_59+action_269 (113) = happyShift action_60+action_269 (115) = happyShift action_61+action_269 (116) = happyShift action_62+action_269 (118) = happyShift action_129+action_269 (119) = happyShift action_103+action_269 (23) = happyGoto action_104+action_269 (26) = happyGoto action_105+action_269 (27) = happyGoto action_106+action_269 (29) = happyGoto action_107+action_269 (31) = happyGoto action_108+action_269 (32) = happyGoto action_109+action_269 (33) = happyGoto action_110+action_269 (34) = happyGoto action_111+action_269 (37) = happyGoto action_112+action_269 (38) = happyGoto action_335+action_269 (39) = happyGoto action_200+action_269 (40) = happyGoto action_157+action_269 (41) = happyGoto action_114+action_269 (42) = happyGoto action_115+action_269 (43) = happyGoto action_116+action_269 (44) = happyGoto action_117+action_269 (45) = happyGoto action_118+action_269 (46) = happyGoto action_87+action_269 _ = happyReduce_60++action_270 (65) = happyShift action_39+action_270 (23) = happyGoto action_334+action_270 _ = happyFail (happyExpListPerState 270)++action_271 (65) = happyShift action_39+action_271 (66) = happyShift action_93+action_271 (67) = happyShift action_119+action_271 (70) = happyShift action_95+action_271 (77) = happyShift action_120+action_271 (79) = happyShift action_121+action_271 (87) = happyShift action_122+action_271 (88) = happyShift action_123+action_271 (89) = happyShift action_96+action_271 (90) = happyShift action_97+action_271 (91) = happyShift action_124+action_271 (92) = happyShift action_99+action_271 (95) = happyShift action_100+action_271 (97) = happyShift action_125+action_271 (99) = happyShift action_126+action_271 (101) = happyShift action_127+action_271 (103) = happyShift action_128+action_271 (107) = happyShift action_57+action_271 (111) = happyShift action_58+action_271 (112) = happyShift action_59+action_271 (113) = happyShift action_60+action_271 (115) = happyShift action_61+action_271 (116) = happyShift action_62+action_271 (118) = happyShift action_129+action_271 (119) = happyShift action_103+action_271 (23) = happyGoto action_104+action_271 (26) = happyGoto action_105+action_271 (27) = happyGoto action_106+action_271 (29) = happyGoto action_107+action_271 (31) = happyGoto action_108+action_271 (32) = happyGoto action_109+action_271 (33) = happyGoto action_110+action_271 (34) = happyGoto action_111+action_271 (37) = happyGoto action_112+action_271 (40) = happyGoto action_333+action_271 (41) = happyGoto action_114+action_271 (42) = happyGoto action_115+action_271 (43) = happyGoto action_116+action_271 (44) = happyGoto action_117+action_271 (45) = happyGoto action_118+action_271 (46) = happyGoto action_87+action_271 _ = happyReduce_60++action_272 (65) = happyShift action_39+action_272 (66) = happyShift action_93+action_272 (67) = happyShift action_119+action_272 (70) = happyShift action_95+action_272 (77) = happyShift action_120+action_272 (79) = happyShift action_121+action_272 (87) = happyShift action_122+action_272 (88) = happyShift action_123+action_272 (89) = happyShift action_96+action_272 (90) = happyShift action_97+action_272 (91) = happyShift action_124+action_272 (92) = happyShift action_99+action_272 (95) = happyShift action_100+action_272 (97) = happyShift action_125+action_272 (99) = happyShift action_126+action_272 (101) = happyShift action_127+action_272 (103) = happyShift action_128+action_272 (107) = happyShift action_57+action_272 (111) = happyShift action_58+action_272 (112) = happyShift action_59+action_272 (113) = happyShift action_60+action_272 (115) = happyShift action_61+action_272 (116) = happyShift action_62+action_272 (118) = happyShift action_129+action_272 (119) = happyShift action_103+action_272 (23) = happyGoto action_104+action_272 (26) = happyGoto action_105+action_272 (27) = happyGoto action_106+action_272 (29) = happyGoto action_107+action_272 (31) = happyGoto action_108+action_272 (32) = happyGoto action_109+action_272 (33) = happyGoto action_110+action_272 (34) = happyGoto action_111+action_272 (37) = happyGoto action_112+action_272 (40) = happyGoto action_332+action_272 (41) = happyGoto action_114+action_272 (42) = happyGoto action_115+action_272 (43) = happyGoto action_116+action_272 (44) = happyGoto action_117+action_272 (45) = happyGoto action_118+action_272 (46) = happyGoto action_87+action_272 _ = happyReduce_60++action_273 (65) = happyShift action_39+action_273 (66) = happyShift action_93+action_273 (67) = happyShift action_119+action_273 (70) = happyShift action_95+action_273 (77) = happyShift action_120+action_273 (79) = happyShift action_121+action_273 (87) = happyShift action_122+action_273 (88) = happyShift action_123+action_273 (89) = happyShift action_96+action_273 (90) = happyShift action_97+action_273 (91) = happyShift action_124+action_273 (92) = happyShift action_99+action_273 (95) = happyShift action_100+action_273 (97) = happyShift action_125+action_273 (99) = happyShift action_126+action_273 (101) = happyShift action_127+action_273 (103) = happyShift action_128+action_273 (107) = happyShift action_57+action_273 (111) = happyShift action_58+action_273 (112) = happyShift action_59+action_273 (113) = happyShift action_60+action_273 (115) = happyShift action_61+action_273 (116) = happyShift action_62+action_273 (118) = happyShift action_129+action_273 (119) = happyShift action_103+action_273 (23) = happyGoto action_104+action_273 (26) = happyGoto action_105+action_273 (27) = happyGoto action_106+action_273 (29) = happyGoto action_107+action_273 (31) = happyGoto action_108+action_273 (32) = happyGoto action_109+action_273 (33) = happyGoto action_110+action_273 (34) = happyGoto action_111+action_273 (37) = happyGoto action_112+action_273 (40) = happyGoto action_331+action_273 (41) = happyGoto action_114+action_273 (42) = happyGoto action_115+action_273 (43) = happyGoto action_116+action_273 (44) = happyGoto action_117+action_273 (45) = happyGoto action_118+action_273 (46) = happyGoto action_87+action_273 _ = happyReduce_60++action_274 (117) = happyReduce_104+action_274 _ = happyReduce_84++action_275 (65) = happyShift action_39+action_275 (66) = happyShift action_93+action_275 (67) = happyShift action_119+action_275 (70) = happyShift action_95+action_275 (77) = happyShift action_120+action_275 (79) = happyShift action_121+action_275 (87) = happyShift action_122+action_275 (88) = happyShift action_123+action_275 (89) = happyShift action_96+action_275 (90) = happyShift action_97+action_275 (91) = happyShift action_124+action_275 (92) = happyShift action_99+action_275 (95) = happyShift action_100+action_275 (97) = happyShift action_125+action_275 (99) = happyShift action_126+action_275 (101) = happyShift action_127+action_275 (103) = happyShift action_128+action_275 (107) = happyShift action_57+action_275 (111) = happyShift action_58+action_275 (112) = happyShift action_59+action_275 (113) = happyShift action_60+action_275 (115) = happyShift action_61+action_275 (116) = happyShift action_62+action_275 (118) = happyShift action_129+action_275 (119) = happyShift action_103+action_275 (23) = happyGoto action_104+action_275 (26) = happyGoto action_105+action_275 (27) = happyGoto action_106+action_275 (29) = happyGoto action_107+action_275 (31) = happyGoto action_108+action_275 (32) = happyGoto action_109+action_275 (33) = happyGoto action_110+action_275 (34) = happyGoto action_111+action_275 (37) = happyGoto action_112+action_275 (40) = happyGoto action_330+action_275 (41) = happyGoto action_114+action_275 (42) = happyGoto action_115+action_275 (43) = happyGoto action_116+action_275 (44) = happyGoto action_117+action_275 (45) = happyGoto action_118+action_275 (46) = happyGoto action_87+action_275 _ = happyReduce_60++action_276 (65) = happyShift action_39+action_276 (66) = happyShift action_93+action_276 (67) = happyShift action_119+action_276 (70) = happyShift action_95+action_276 (77) = happyShift action_120+action_276 (79) = happyShift action_121+action_276 (87) = happyShift action_122+action_276 (88) = happyShift action_123+action_276 (89) = happyShift action_96+action_276 (90) = happyShift action_97+action_276 (91) = happyShift action_124+action_276 (92) = happyShift action_99+action_276 (95) = happyShift action_100+action_276 (97) = happyShift action_125+action_276 (99) = happyShift action_126+action_276 (101) = happyShift action_127+action_276 (103) = happyShift action_128+action_276 (107) = happyShift action_57+action_276 (111) = happyShift action_58+action_276 (112) = happyShift action_59+action_276 (113) = happyShift action_60+action_276 (115) = happyShift action_61+action_276 (116) = happyShift action_62+action_276 (118) = happyShift action_129+action_276 (119) = happyShift action_103+action_276 (23) = happyGoto action_104+action_276 (26) = happyGoto action_105+action_276 (27) = happyGoto action_106+action_276 (29) = happyGoto action_107+action_276 (31) = happyGoto action_108+action_276 (32) = happyGoto action_109+action_276 (33) = happyGoto action_110+action_276 (34) = happyGoto action_111+action_276 (37) = happyGoto action_112+action_276 (40) = happyGoto action_329+action_276 (41) = happyGoto action_114+action_276 (42) = happyGoto action_115+action_276 (43) = happyGoto action_116+action_276 (44) = happyGoto action_117+action_276 (45) = happyGoto action_118+action_276 (46) = happyGoto action_87+action_276 _ = happyReduce_60++action_277 _ = happyReduce_123++action_278 _ = happyReduce_55++action_279 (65) = happyShift action_39+action_279 (66) = happyShift action_93+action_279 (67) = happyShift action_119+action_279 (70) = happyShift action_95+action_279 (77) = happyShift action_120+action_279 (79) = happyShift action_121+action_279 (87) = happyShift action_122+action_279 (88) = happyShift action_123+action_279 (89) = happyShift action_96+action_279 (90) = happyShift action_97+action_279 (91) = happyShift action_124+action_279 (92) = happyShift action_99+action_279 (95) = happyShift action_100+action_279 (97) = happyShift action_125+action_279 (99) = happyShift action_126+action_279 (101) = happyShift action_127+action_279 (103) = happyShift action_128+action_279 (107) = happyShift action_57+action_279 (111) = happyShift action_58+action_279 (112) = happyShift action_59+action_279 (113) = happyShift action_60+action_279 (115) = happyShift action_61+action_279 (116) = happyShift action_62+action_279 (118) = happyShift action_129+action_279 (119) = happyShift action_103+action_279 (23) = happyGoto action_104+action_279 (26) = happyGoto action_105+action_279 (27) = happyGoto action_106+action_279 (28) = happyGoto action_328+action_279 (29) = happyGoto action_107+action_279 (31) = happyGoto action_108+action_279 (32) = happyGoto action_109+action_279 (33) = happyGoto action_110+action_279 (34) = happyGoto action_111+action_279 (37) = happyGoto action_112+action_279 (40) = happyGoto action_184+action_279 (41) = happyGoto action_114+action_279 (42) = happyGoto action_115+action_279 (43) = happyGoto action_116+action_279 (44) = happyGoto action_117+action_279 (45) = happyGoto action_118+action_279 (46) = happyGoto action_87+action_279 _ = happyReduce_60++action_280 (65) = happyShift action_39+action_280 (66) = happyShift action_93+action_280 (67) = happyShift action_119+action_280 (70) = happyShift action_95+action_280 (77) = happyShift action_120+action_280 (79) = happyShift action_121+action_280 (87) = happyShift action_122+action_280 (88) = happyShift action_123+action_280 (89) = happyShift action_96+action_280 (90) = happyShift action_97+action_280 (91) = happyShift action_124+action_280 (92) = happyShift action_99+action_280 (95) = happyShift action_100+action_280 (97) = happyShift action_125+action_280 (99) = happyShift action_126+action_280 (101) = happyShift action_127+action_280 (103) = happyShift action_128+action_280 (107) = happyShift action_57+action_280 (111) = happyShift action_58+action_280 (112) = happyShift action_59+action_280 (113) = happyShift action_60+action_280 (115) = happyShift action_61+action_280 (116) = happyShift action_62+action_280 (118) = happyShift action_129+action_280 (119) = happyShift action_103+action_280 (23) = happyGoto action_104+action_280 (26) = happyGoto action_105+action_280 (27) = happyGoto action_106+action_280 (29) = happyGoto action_107+action_280 (31) = happyGoto action_108+action_280 (32) = happyGoto action_109+action_280 (33) = happyGoto action_110+action_280 (34) = happyGoto action_111+action_280 (37) = happyGoto action_112+action_280 (38) = happyGoto action_327+action_280 (39) = happyGoto action_200+action_280 (40) = happyGoto action_157+action_280 (41) = happyGoto action_114+action_280 (42) = happyGoto action_115+action_280 (43) = happyGoto action_116+action_280 (44) = happyGoto action_117+action_280 (45) = happyGoto action_118+action_280 (46) = happyGoto action_87+action_280 _ = happyReduce_60++action_281 _ = happyReduce_150++action_282 (65) = happyShift action_39+action_282 (66) = happyShift action_93+action_282 (67) = happyShift action_94+action_282 (70) = happyShift action_95+action_282 (89) = happyShift action_96+action_282 (90) = happyShift action_97+action_282 (91) = happyShift action_98+action_282 (92) = happyShift action_99+action_282 (95) = happyShift action_100+action_282 (101) = happyShift action_101+action_282 (107) = happyShift action_102+action_282 (119) = happyShift action_103+action_282 (23) = happyGoto action_85+action_282 (45) = happyGoto action_86+action_282 (46) = happyGoto action_87+action_282 (56) = happyGoto action_88+action_282 (58) = happyGoto action_326+action_282 (59) = happyGoto action_91+action_282 (60) = happyGoto action_92+action_282 _ = happyFail (happyExpListPerState 282)++action_283 (65) = happyShift action_39+action_283 (66) = happyShift action_93+action_283 (67) = happyShift action_119+action_283 (70) = happyShift action_95+action_283 (77) = happyShift action_120+action_283 (79) = happyShift action_121+action_283 (87) = happyShift action_122+action_283 (88) = happyShift action_123+action_283 (89) = happyShift action_96+action_283 (90) = happyShift action_97+action_283 (91) = happyShift action_124+action_283 (92) = happyShift action_99+action_283 (95) = happyShift action_100+action_283 (97) = happyShift action_125+action_283 (99) = happyShift action_126+action_283 (101) = happyShift action_127+action_283 (103) = happyShift action_128+action_283 (107) = happyShift action_57+action_283 (111) = happyShift action_58+action_283 (112) = happyShift action_59+action_283 (113) = happyShift action_60+action_283 (115) = happyShift action_61+action_283 (116) = happyShift action_62+action_283 (118) = happyShift action_129+action_283 (119) = happyShift action_103+action_283 (23) = happyGoto action_104+action_283 (26) = happyGoto action_105+action_283 (27) = happyGoto action_106+action_283 (29) = happyGoto action_107+action_283 (31) = happyGoto action_108+action_283 (32) = happyGoto action_109+action_283 (33) = happyGoto action_110+action_283 (34) = happyGoto action_111+action_283 (37) = happyGoto action_112+action_283 (38) = happyGoto action_325+action_283 (39) = happyGoto action_200+action_283 (40) = happyGoto action_157+action_283 (41) = happyGoto action_114+action_283 (42) = happyGoto action_115+action_283 (43) = happyGoto action_116+action_283 (44) = happyGoto action_117+action_283 (45) = happyGoto action_118+action_283 (46) = happyGoto action_87+action_283 _ = happyReduce_60++action_284 _ = happyReduce_170++action_285 (72) = happyShift action_319+action_285 (22) = happyGoto action_324+action_285 _ = happyReduce_41++action_286 (65) = happyShift action_39+action_286 (23) = happyGoto action_168+action_286 (50) = happyGoto action_323+action_286 _ = happyFail (happyExpListPerState 286)++action_287 _ = happyReduce_47++action_288 (102) = happyShift action_322+action_288 _ = happyFail (happyExpListPerState 288)++action_289 (65) = happyShift action_39+action_289 (66) = happyShift action_93+action_289 (67) = happyShift action_119+action_289 (70) = happyShift action_95+action_289 (77) = happyShift action_120+action_289 (79) = happyShift action_121+action_289 (87) = happyShift action_122+action_289 (88) = happyShift action_123+action_289 (89) = happyShift action_96+action_289 (90) = happyShift action_97+action_289 (91) = happyShift action_124+action_289 (92) = happyShift action_99+action_289 (95) = happyShift action_100+action_289 (97) = happyShift action_125+action_289 (99) = happyShift action_126+action_289 (101) = happyShift action_127+action_289 (103) = happyShift action_128+action_289 (107) = happyShift action_57+action_289 (111) = happyShift action_58+action_289 (112) = happyShift action_59+action_289 (113) = happyShift action_60+action_289 (115) = happyShift action_61+action_289 (116) = happyShift action_62+action_289 (118) = happyShift action_129+action_289 (119) = happyShift action_103+action_289 (23) = happyGoto action_104+action_289 (26) = happyGoto action_105+action_289 (27) = happyGoto action_106+action_289 (29) = happyGoto action_107+action_289 (31) = happyGoto action_108+action_289 (32) = happyGoto action_109+action_289 (33) = happyGoto action_110+action_289 (34) = happyGoto action_111+action_289 (37) = happyGoto action_112+action_289 (40) = happyGoto action_321+action_289 (41) = happyGoto action_114+action_289 (42) = happyGoto action_115+action_289 (43) = happyGoto action_116+action_289 (44) = happyGoto action_117+action_289 (45) = happyGoto action_118+action_289 (46) = happyGoto action_87+action_289 _ = happyReduce_60++action_290 (100) = happyShift action_320+action_290 _ = happyFail (happyExpListPerState 290)++action_291 (72) = happyShift action_319+action_291 (22) = happyGoto action_318+action_291 _ = happyReduce_41++action_292 (65) = happyShift action_39+action_292 (23) = happyGoto action_168+action_292 (50) = happyGoto action_317+action_292 _ = happyReduce_138++action_293 (106) = happyShift action_316+action_293 _ = happyReduce_136++action_294 (65) = happyShift action_39+action_294 (23) = happyGoto action_168+action_294 (50) = happyGoto action_169+action_294 (51) = happyGoto action_315+action_294 _ = happyReduce_140++action_295 (65) = happyShift action_39+action_295 (66) = happyShift action_93+action_295 (67) = happyShift action_119+action_295 (70) = happyShift action_95+action_295 (77) = happyShift action_120+action_295 (79) = happyShift action_121+action_295 (87) = happyShift action_122+action_295 (88) = happyShift action_123+action_295 (89) = happyShift action_96+action_295 (90) = happyShift action_97+action_295 (91) = happyShift action_124+action_295 (92) = happyShift action_99+action_295 (95) = happyShift action_100+action_295 (97) = happyShift action_125+action_295 (99) = happyShift action_126+action_295 (101) = happyShift action_127+action_295 (103) = happyShift action_128+action_295 (107) = happyShift action_57+action_295 (111) = happyShift action_58+action_295 (112) = happyShift action_59+action_295 (113) = happyShift action_60+action_295 (115) = happyShift action_61+action_295 (116) = happyShift action_62+action_295 (118) = happyShift action_129+action_295 (119) = happyShift action_103+action_295 (23) = happyGoto action_104+action_295 (26) = happyGoto action_105+action_295 (27) = happyGoto action_106+action_295 (29) = happyGoto action_107+action_295 (31) = happyGoto action_108+action_295 (32) = happyGoto action_109+action_295 (33) = happyGoto action_110+action_295 (34) = happyGoto action_111+action_295 (37) = happyGoto action_112+action_295 (40) = happyGoto action_314+action_295 (41) = happyGoto action_114+action_295 (42) = happyGoto action_115+action_295 (43) = happyGoto action_116+action_295 (44) = happyGoto action_117+action_295 (45) = happyGoto action_118+action_295 (46) = happyGoto action_87+action_295 _ = happyReduce_60++action_296 (95) = happyShift action_312+action_296 (109) = happyShift action_313+action_296 _ = happyReduce_129++action_297 (106) = happyShift action_311+action_297 _ = happyFail (happyExpListPerState 297)++action_298 _ = happyReduce_39++action_299 (65) = happyShift action_39+action_299 (66) = happyShift action_93+action_299 (67) = happyShift action_119+action_299 (70) = happyShift action_95+action_299 (77) = happyShift action_120+action_299 (79) = happyShift action_121+action_299 (87) = happyShift action_122+action_299 (88) = happyShift action_123+action_299 (89) = happyShift action_96+action_299 (90) = happyShift action_97+action_299 (91) = happyShift action_124+action_299 (92) = happyShift action_99+action_299 (95) = happyShift action_100+action_299 (97) = happyShift action_125+action_299 (99) = happyShift action_126+action_299 (101) = happyShift action_127+action_299 (103) = happyShift action_128+action_299 (107) = happyShift action_57+action_299 (111) = happyShift action_58+action_299 (112) = happyShift action_59+action_299 (113) = happyShift action_60+action_299 (115) = happyShift action_61+action_299 (116) = happyShift action_62+action_299 (118) = happyShift action_129+action_299 (119) = happyShift action_103+action_299 (23) = happyGoto action_104+action_299 (26) = happyGoto action_105+action_299 (27) = happyGoto action_106+action_299 (29) = happyGoto action_107+action_299 (31) = happyGoto action_108+action_299 (32) = happyGoto action_109+action_299 (33) = happyGoto action_110+action_299 (34) = happyGoto action_111+action_299 (37) = happyGoto action_112+action_299 (38) = happyGoto action_310+action_299 (39) = happyGoto action_200+action_299 (40) = happyGoto action_157+action_299 (41) = happyGoto action_114+action_299 (42) = happyGoto action_115+action_299 (43) = happyGoto action_116+action_299 (44) = happyGoto action_117+action_299 (45) = happyGoto action_118+action_299 (46) = happyGoto action_87+action_299 _ = happyReduce_60++action_300 (65) = happyShift action_39+action_300 (66) = happyShift action_93+action_300 (67) = happyShift action_119+action_300 (70) = happyShift action_95+action_300 (77) = happyShift action_120+action_300 (79) = happyShift action_121+action_300 (87) = happyShift action_122+action_300 (88) = happyShift action_123+action_300 (89) = happyShift action_96+action_300 (90) = happyShift action_97+action_300 (91) = happyShift action_124+action_300 (92) = happyShift action_99+action_300 (95) = happyShift action_100+action_300 (97) = happyShift action_125+action_300 (99) = happyShift action_126+action_300 (101) = happyShift action_127+action_300 (103) = happyShift action_128+action_300 (107) = happyShift action_57+action_300 (111) = happyShift action_58+action_300 (112) = happyShift action_59+action_300 (113) = happyShift action_60+action_300 (115) = happyShift action_61+action_300 (116) = happyShift action_62+action_300 (118) = happyShift action_129+action_300 (119) = happyShift action_103+action_300 (23) = happyGoto action_104+action_300 (26) = happyGoto action_105+action_300 (27) = happyGoto action_106+action_300 (29) = happyGoto action_107+action_300 (31) = happyGoto action_108+action_300 (32) = happyGoto action_109+action_300 (33) = happyGoto action_110+action_300 (34) = happyGoto action_111+action_300 (37) = happyGoto action_112+action_300 (40) = happyGoto action_309+action_300 (41) = happyGoto action_114+action_300 (42) = happyGoto action_115+action_300 (43) = happyGoto action_116+action_300 (44) = happyGoto action_117+action_300 (45) = happyGoto action_118+action_300 (46) = happyGoto action_87+action_300 _ = happyReduce_60++action_301 (65) = happyShift action_39+action_301 (66) = happyShift action_93+action_301 (67) = happyShift action_119+action_301 (70) = happyShift action_95+action_301 (77) = happyShift action_120+action_301 (79) = happyShift action_121+action_301 (87) = happyShift action_122+action_301 (88) = happyShift action_123+action_301 (89) = happyShift action_96+action_301 (90) = happyShift action_97+action_301 (91) = happyShift action_124+action_301 (92) = happyShift action_99+action_301 (95) = happyShift action_100+action_301 (97) = happyShift action_125+action_301 (99) = happyShift action_126+action_301 (101) = happyShift action_127+action_301 (103) = happyShift action_128+action_301 (107) = happyShift action_57+action_301 (111) = happyShift action_58+action_301 (112) = happyShift action_59+action_301 (113) = happyShift action_60+action_301 (115) = happyShift action_61+action_301 (116) = happyShift action_62+action_301 (118) = happyShift action_129+action_301 (119) = happyShift action_103+action_301 (23) = happyGoto action_104+action_301 (26) = happyGoto action_105+action_301 (27) = happyGoto action_106+action_301 (29) = happyGoto action_107+action_301 (31) = happyGoto action_108+action_301 (32) = happyGoto action_109+action_301 (33) = happyGoto action_110+action_301 (34) = happyGoto action_111+action_301 (37) = happyGoto action_112+action_301 (39) = happyGoto action_308+action_301 (40) = happyGoto action_157+action_301 (41) = happyGoto action_114+action_301 (42) = happyGoto action_115+action_301 (43) = happyGoto action_116+action_301 (44) = happyGoto action_117+action_301 (45) = happyGoto action_118+action_301 (46) = happyGoto action_87+action_301 _ = happyReduce_60++action_302 (65) = happyShift action_39+action_302 (66) = happyShift action_93+action_302 (67) = happyShift action_119+action_302 (70) = happyShift action_95+action_302 (77) = happyShift action_120+action_302 (79) = happyShift action_121+action_302 (87) = happyShift action_122+action_302 (88) = happyShift action_123+action_302 (89) = happyShift action_96+action_302 (90) = happyShift action_97+action_302 (91) = happyShift action_124+action_302 (92) = happyShift action_99+action_302 (95) = happyShift action_100+action_302 (97) = happyShift action_125+action_302 (99) = happyShift action_126+action_302 (101) = happyShift action_127+action_302 (103) = happyShift action_128+action_302 (107) = happyShift action_57+action_302 (111) = happyShift action_58+action_302 (112) = happyShift action_59+action_302 (113) = happyShift action_60+action_302 (115) = happyShift action_61+action_302 (116) = happyShift action_62+action_302 (118) = happyShift action_129+action_302 (119) = happyShift action_103+action_302 (23) = happyGoto action_104+action_302 (26) = happyGoto action_105+action_302 (27) = happyGoto action_106+action_302 (29) = happyGoto action_107+action_302 (31) = happyGoto action_108+action_302 (32) = happyGoto action_109+action_302 (33) = happyGoto action_110+action_302 (34) = happyGoto action_111+action_302 (37) = happyGoto action_112+action_302 (40) = happyGoto action_307+action_302 (41) = happyGoto action_114+action_302 (42) = happyGoto action_115+action_302 (43) = happyGoto action_116+action_302 (44) = happyGoto action_117+action_302 (45) = happyGoto action_118+action_302 (46) = happyGoto action_87+action_302 _ = happyReduce_60++action_303 (65) = happyShift action_39+action_303 (66) = happyShift action_93+action_303 (67) = happyShift action_119+action_303 (70) = happyShift action_95+action_303 (77) = happyShift action_120+action_303 (79) = happyShift action_121+action_303 (87) = happyShift action_122+action_303 (88) = happyShift action_123+action_303 (89) = happyShift action_96+action_303 (90) = happyShift action_97+action_303 (91) = happyShift action_124+action_303 (92) = happyShift action_99+action_303 (95) = happyShift action_100+action_303 (97) = happyShift action_125+action_303 (99) = happyShift action_126+action_303 (101) = happyShift action_127+action_303 (103) = happyShift action_128+action_303 (107) = happyShift action_57+action_303 (111) = happyShift action_58+action_303 (112) = happyShift action_59+action_303 (113) = happyShift action_60+action_303 (115) = happyShift action_61+action_303 (116) = happyShift action_62+action_303 (118) = happyShift action_129+action_303 (119) = happyShift action_103+action_303 (23) = happyGoto action_104+action_303 (26) = happyGoto action_105+action_303 (27) = happyGoto action_106+action_303 (29) = happyGoto action_107+action_303 (31) = happyGoto action_108+action_303 (32) = happyGoto action_109+action_303 (33) = happyGoto action_110+action_303 (34) = happyGoto action_111+action_303 (37) = happyGoto action_112+action_303 (40) = happyGoto action_306+action_303 (41) = happyGoto action_114+action_303 (42) = happyGoto action_115+action_303 (43) = happyGoto action_116+action_303 (44) = happyGoto action_117+action_303 (45) = happyGoto action_118+action_303 (46) = happyGoto action_87+action_303 _ = happyReduce_60++action_304 (65) = happyShift action_39+action_304 (66) = happyShift action_93+action_304 (67) = happyShift action_119+action_304 (70) = happyShift action_95+action_304 (77) = happyShift action_120+action_304 (79) = happyShift action_121+action_304 (87) = happyShift action_122+action_304 (88) = happyShift action_123+action_304 (89) = happyShift action_96+action_304 (90) = happyShift action_97+action_304 (91) = happyShift action_124+action_304 (92) = happyShift action_99+action_304 (95) = happyShift action_100+action_304 (97) = happyShift action_125+action_304 (99) = happyShift action_126+action_304 (101) = happyShift action_127+action_304 (103) = happyShift action_128+action_304 (107) = happyShift action_57+action_304 (111) = happyShift action_58+action_304 (112) = happyShift action_59+action_304 (113) = happyShift action_60+action_304 (115) = happyShift action_61+action_304 (116) = happyShift action_62+action_304 (118) = happyShift action_129+action_304 (119) = happyShift action_103+action_304 (23) = happyGoto action_104+action_304 (26) = happyGoto action_105+action_304 (27) = happyGoto action_106+action_304 (29) = happyGoto action_107+action_304 (31) = happyGoto action_108+action_304 (32) = happyGoto action_109+action_304 (33) = happyGoto action_110+action_304 (34) = happyGoto action_111+action_304 (37) = happyGoto action_112+action_304 (40) = happyGoto action_305+action_304 (41) = happyGoto action_114+action_304 (42) = happyGoto action_115+action_304 (43) = happyGoto action_116+action_304 (44) = happyGoto action_117+action_304 (45) = happyGoto action_118+action_304 (46) = happyGoto action_87+action_304 _ = happyReduce_60++action_305 (102) = happyShift action_375+action_305 _ = happyFail (happyExpListPerState 305)++action_306 (102) = happyShift action_374+action_306 _ = happyFail (happyExpListPerState 306)++action_307 (102) = happyShift action_373+action_307 _ = happyFail (happyExpListPerState 307)++action_308 _ = happyReduce_92++action_309 (100) = happyShift action_372+action_309 _ = happyFail (happyExpListPerState 309)++action_310 _ = happyReduce_35++action_311 (65) = happyShift action_39+action_311 (66) = happyShift action_93+action_311 (67) = happyShift action_119+action_311 (70) = happyShift action_95+action_311 (77) = happyShift action_120+action_311 (79) = happyShift action_121+action_311 (87) = happyShift action_122+action_311 (88) = happyShift action_123+action_311 (89) = happyShift action_96+action_311 (90) = happyShift action_97+action_311 (91) = happyShift action_124+action_311 (92) = happyShift action_99+action_311 (95) = happyShift action_100+action_311 (97) = happyShift action_125+action_311 (99) = happyShift action_126+action_311 (101) = happyShift action_127+action_311 (103) = happyShift action_128+action_311 (107) = happyShift action_57+action_311 (111) = happyShift action_58+action_311 (112) = happyShift action_59+action_311 (113) = happyShift action_60+action_311 (115) = happyShift action_61+action_311 (116) = happyShift action_62+action_311 (118) = happyShift action_129+action_311 (119) = happyShift action_103+action_311 (23) = happyGoto action_104+action_311 (26) = happyGoto action_105+action_311 (27) = happyGoto action_106+action_311 (29) = happyGoto action_107+action_311 (31) = happyGoto action_108+action_311 (32) = happyGoto action_109+action_311 (33) = happyGoto action_110+action_311 (34) = happyGoto action_111+action_311 (37) = happyGoto action_112+action_311 (40) = happyGoto action_371+action_311 (41) = happyGoto action_114+action_311 (42) = happyGoto action_115+action_311 (43) = happyGoto action_116+action_311 (44) = happyGoto action_117+action_311 (45) = happyGoto action_118+action_311 (46) = happyGoto action_87+action_311 _ = happyReduce_60++action_312 (65) = happyShift action_39+action_312 (66) = happyShift action_93+action_312 (67) = happyShift action_119+action_312 (70) = happyShift action_95+action_312 (77) = happyShift action_120+action_312 (79) = happyShift action_121+action_312 (87) = happyShift action_122+action_312 (88) = happyShift action_123+action_312 (89) = happyShift action_96+action_312 (90) = happyShift action_97+action_312 (91) = happyShift action_124+action_312 (92) = happyShift action_99+action_312 (95) = happyShift action_100+action_312 (97) = happyShift action_125+action_312 (99) = happyShift action_126+action_312 (101) = happyShift action_127+action_312 (103) = happyShift action_128+action_312 (107) = happyShift action_57+action_312 (111) = happyShift action_58+action_312 (112) = happyShift action_59+action_312 (113) = happyShift action_60+action_312 (115) = happyShift action_61+action_312 (116) = happyShift action_62+action_312 (118) = happyShift action_129+action_312 (119) = happyShift action_103+action_312 (23) = happyGoto action_104+action_312 (26) = happyGoto action_105+action_312 (27) = happyGoto action_106+action_312 (29) = happyGoto action_107+action_312 (31) = happyGoto action_108+action_312 (32) = happyGoto action_109+action_312 (33) = happyGoto action_110+action_312 (34) = happyGoto action_111+action_312 (37) = happyGoto action_112+action_312 (40) = happyGoto action_370+action_312 (41) = happyGoto action_114+action_312 (42) = happyGoto action_115+action_312 (43) = happyGoto action_116+action_312 (44) = happyGoto action_117+action_312 (45) = happyGoto action_118+action_312 (46) = happyGoto action_87+action_312 _ = happyReduce_60++action_313 (65) = happyShift action_39+action_313 (66) = happyShift action_93+action_313 (67) = happyShift action_119+action_313 (70) = happyShift action_95+action_313 (77) = happyShift action_120+action_313 (79) = happyShift action_121+action_313 (87) = happyShift action_122+action_313 (88) = happyShift action_123+action_313 (89) = happyShift action_96+action_313 (90) = happyShift action_97+action_313 (91) = happyShift action_124+action_313 (92) = happyShift action_99+action_313 (95) = happyShift action_100+action_313 (97) = happyShift action_125+action_313 (99) = happyShift action_126+action_313 (101) = happyShift action_127+action_313 (103) = happyShift action_128+action_313 (107) = happyShift action_57+action_313 (111) = happyShift action_58+action_313 (112) = happyShift action_59+action_313 (113) = happyShift action_60+action_313 (115) = happyShift action_61+action_313 (116) = happyShift action_62+action_313 (118) = happyShift action_129+action_313 (119) = happyShift action_103+action_313 (23) = happyGoto action_104+action_313 (26) = happyGoto action_105+action_313 (27) = happyGoto action_106+action_313 (29) = happyGoto action_107+action_313 (31) = happyGoto action_108+action_313 (32) = happyGoto action_109+action_313 (33) = happyGoto action_110+action_313 (34) = happyGoto action_111+action_313 (37) = happyGoto action_112+action_313 (40) = happyGoto action_369+action_313 (41) = happyGoto action_114+action_313 (42) = happyGoto action_115+action_313 (43) = happyGoto action_116+action_313 (44) = happyGoto action_117+action_313 (45) = happyGoto action_118+action_313 (46) = happyGoto action_87+action_313 _ = happyReduce_60++action_314 (102) = happyShift action_368+action_314 _ = happyFail (happyExpListPerState 314)++action_315 (98) = happyShift action_367+action_315 (105) = happyShift action_292+action_315 _ = happyFail (happyExpListPerState 315)++action_316 (65) = happyShift action_39+action_316 (66) = happyShift action_93+action_316 (67) = happyShift action_119+action_316 (70) = happyShift action_95+action_316 (77) = happyShift action_120+action_316 (79) = happyShift action_121+action_316 (87) = happyShift action_122+action_316 (88) = happyShift action_123+action_316 (89) = happyShift action_96+action_316 (90) = happyShift action_97+action_316 (91) = happyShift action_124+action_316 (92) = happyShift action_99+action_316 (95) = happyShift action_100+action_316 (97) = happyShift action_125+action_316 (99) = happyShift action_126+action_316 (101) = happyShift action_127+action_316 (103) = happyShift action_128+action_316 (107) = happyShift action_57+action_316 (111) = happyShift action_58+action_316 (112) = happyShift action_59+action_316 (113) = happyShift action_60+action_316 (115) = happyShift action_61+action_316 (116) = happyShift action_62+action_316 (118) = happyShift action_129+action_316 (119) = happyShift action_103+action_316 (23) = happyGoto action_104+action_316 (26) = happyGoto action_105+action_316 (27) = happyGoto action_106+action_316 (29) = happyGoto action_107+action_316 (31) = happyGoto action_108+action_316 (32) = happyGoto action_109+action_316 (33) = happyGoto action_110+action_316 (34) = happyGoto action_111+action_316 (37) = happyGoto action_112+action_316 (40) = happyGoto action_366+action_316 (41) = happyGoto action_114+action_316 (42) = happyGoto action_115+action_316 (43) = happyGoto action_116+action_316 (44) = happyGoto action_117+action_316 (45) = happyGoto action_118+action_316 (46) = happyGoto action_87+action_316 _ = happyReduce_60++action_317 _ = happyReduce_137++action_318 _ = happyReduce_28++action_319 (65) = happyShift action_39+action_319 (23) = happyGoto action_138+action_319 (25) = happyGoto action_365+action_319 _ = happyFail (happyExpListPerState 319)++action_320 _ = happyReduce_175++action_321 (102) = happyShift action_364+action_321 _ = happyFail (happyExpListPerState 321)++action_322 _ = happyReduce_174++action_323 (98) = happyShift action_363+action_323 _ = happyFail (happyExpListPerState 323)++action_324 _ = happyReduce_30++action_325 _ = happyReduce_146++action_326 _ = happyReduce_151++action_327 _ = happyReduce_94++action_328 _ = happyReduce_56++action_329 (100) = happyShift action_362+action_329 _ = happyFail (happyExpListPerState 329)++action_330 (100) = happyShift action_361+action_330 _ = happyFail (happyExpListPerState 330)++action_331 (98) = happyShift action_360+action_331 _ = happyFail (happyExpListPerState 331)++action_332 (98) = happyShift action_359+action_332 _ = happyFail (happyExpListPerState 332)++action_333 (98) = happyShift action_358+action_333 _ = happyFail (happyExpListPerState 333)++action_334 (106) = happyShift action_357+action_334 _ = happyFail (happyExpListPerState 334)++action_335 _ = happyReduce_95++action_336 (65) = happyShift action_39+action_336 (66) = happyShift action_93+action_336 (67) = happyShift action_119+action_336 (70) = happyShift action_95+action_336 (77) = happyShift action_120+action_336 (79) = happyShift action_121+action_336 (87) = happyShift action_122+action_336 (88) = happyShift action_123+action_336 (89) = happyShift action_96+action_336 (90) = happyShift action_97+action_336 (91) = happyShift action_124+action_336 (92) = happyShift action_99+action_336 (95) = happyShift action_100+action_336 (97) = happyShift action_125+action_336 (99) = happyShift action_126+action_336 (101) = happyShift action_127+action_336 (103) = happyShift action_128+action_336 (107) = happyShift action_57+action_336 (111) = happyShift action_58+action_336 (112) = happyShift action_59+action_336 (113) = happyShift action_60+action_336 (115) = happyShift action_61+action_336 (116) = happyShift action_62+action_336 (118) = happyShift action_129+action_336 (119) = happyShift action_103+action_336 (23) = happyGoto action_104+action_336 (26) = happyGoto action_105+action_336 (27) = happyGoto action_106+action_336 (29) = happyGoto action_107+action_336 (31) = happyGoto action_108+action_336 (32) = happyGoto action_109+action_336 (33) = happyGoto action_110+action_336 (34) = happyGoto action_111+action_336 (37) = happyGoto action_112+action_336 (40) = happyGoto action_356+action_336 (41) = happyGoto action_114+action_336 (42) = happyGoto action_115+action_336 (43) = happyGoto action_116+action_336 (44) = happyGoto action_117+action_336 (45) = happyGoto action_118+action_336 (46) = happyGoto action_87+action_336 _ = happyReduce_60++action_337 (65) = happyShift action_39+action_337 (91) = happyShift action_235+action_337 (101) = happyShift action_236+action_337 (107) = happyShift action_102+action_337 (23) = happyGoto action_233+action_337 (52) = happyGoto action_354+action_337 (56) = happyGoto action_355+action_337 (60) = happyGoto action_231+action_337 _ = happyReduce_145++action_338 _ = happyReduce_104++action_339 (65) = happyShift action_39+action_339 (66) = happyShift action_93+action_339 (67) = happyShift action_119+action_339 (70) = happyShift action_95+action_339 (77) = happyShift action_120+action_339 (79) = happyShift action_121+action_339 (87) = happyShift action_122+action_339 (88) = happyShift action_123+action_339 (89) = happyShift action_96+action_339 (90) = happyShift action_97+action_339 (91) = happyShift action_124+action_339 (92) = happyShift action_99+action_339 (95) = happyShift action_100+action_339 (97) = happyShift action_125+action_339 (99) = happyShift action_126+action_339 (101) = happyShift action_127+action_339 (103) = happyShift action_128+action_339 (107) = happyShift action_57+action_339 (111) = happyShift action_58+action_339 (112) = happyShift action_59+action_339 (113) = happyShift action_60+action_339 (115) = happyShift action_61+action_339 (116) = happyShift action_62+action_339 (118) = happyShift action_129+action_339 (119) = happyShift action_103+action_339 (23) = happyGoto action_104+action_339 (26) = happyGoto action_105+action_339 (27) = happyGoto action_106+action_339 (29) = happyGoto action_107+action_339 (31) = happyGoto action_108+action_339 (32) = happyGoto action_109+action_339 (33) = happyGoto action_110+action_339 (34) = happyGoto action_111+action_339 (37) = happyGoto action_112+action_339 (40) = happyGoto action_353+action_339 (41) = happyGoto action_114+action_339 (42) = happyGoto action_115+action_339 (43) = happyGoto action_116+action_339 (44) = happyGoto action_117+action_339 (45) = happyGoto action_118+action_339 (46) = happyGoto action_87+action_339 _ = happyReduce_60++action_340 (65) = happyShift action_39+action_340 (66) = happyShift action_93+action_340 (67) = happyShift action_119+action_340 (70) = happyShift action_95+action_340 (77) = happyShift action_120+action_340 (79) = happyShift action_121+action_340 (87) = happyShift action_122+action_340 (88) = happyShift action_123+action_340 (89) = happyShift action_96+action_340 (90) = happyShift action_97+action_340 (91) = happyShift action_124+action_340 (92) = happyShift action_99+action_340 (95) = happyShift action_100+action_340 (97) = happyShift action_125+action_340 (99) = happyShift action_126+action_340 (101) = happyShift action_127+action_340 (103) = happyShift action_128+action_340 (107) = happyShift action_57+action_340 (111) = happyShift action_58+action_340 (112) = happyShift action_59+action_340 (113) = happyShift action_60+action_340 (115) = happyShift action_61+action_340 (116) = happyShift action_62+action_340 (118) = happyShift action_129+action_340 (119) = happyShift action_103+action_340 (23) = happyGoto action_104+action_340 (26) = happyGoto action_105+action_340 (27) = happyGoto action_106+action_340 (29) = happyGoto action_107+action_340 (31) = happyGoto action_108+action_340 (32) = happyGoto action_109+action_340 (33) = happyGoto action_110+action_340 (34) = happyGoto action_111+action_340 (37) = happyGoto action_112+action_340 (40) = happyGoto action_352+action_340 (41) = happyGoto action_114+action_340 (42) = happyGoto action_115+action_340 (43) = happyGoto action_116+action_340 (44) = happyGoto action_117+action_340 (45) = happyGoto action_118+action_340 (46) = happyGoto action_87+action_340 _ = happyReduce_60++action_341 (65) = happyShift action_39+action_341 (66) = happyShift action_93+action_341 (67) = happyShift action_119+action_341 (70) = happyShift action_95+action_341 (77) = happyShift action_120+action_341 (79) = happyShift action_121+action_341 (87) = happyShift action_122+action_341 (88) = happyShift action_123+action_341 (89) = happyShift action_96+action_341 (90) = happyShift action_97+action_341 (91) = happyShift action_124+action_341 (92) = happyShift action_99+action_341 (95) = happyShift action_100+action_341 (97) = happyShift action_125+action_341 (99) = happyShift action_126+action_341 (101) = happyShift action_127+action_341 (103) = happyShift action_128+action_341 (107) = happyShift action_57+action_341 (111) = happyShift action_58+action_341 (112) = happyShift action_59+action_341 (113) = happyShift action_60+action_341 (115) = happyShift action_61+action_341 (116) = happyShift action_62+action_341 (118) = happyShift action_129+action_341 (119) = happyShift action_103+action_341 (23) = happyGoto action_104+action_341 (26) = happyGoto action_105+action_341 (27) = happyGoto action_106+action_341 (29) = happyGoto action_107+action_341 (31) = happyGoto action_108+action_341 (32) = happyGoto action_109+action_341 (33) = happyGoto action_110+action_341 (34) = happyGoto action_111+action_341 (37) = happyGoto action_112+action_341 (40) = happyGoto action_351+action_341 (41) = happyGoto action_114+action_341 (42) = happyGoto action_115+action_341 (43) = happyGoto action_116+action_341 (44) = happyGoto action_117+action_341 (45) = happyGoto action_118+action_341 (46) = happyGoto action_87+action_341 _ = happyReduce_60++action_342 (65) = happyShift action_39+action_342 (66) = happyShift action_93+action_342 (67) = happyShift action_119+action_342 (70) = happyShift action_95+action_342 (77) = happyShift action_120+action_342 (79) = happyShift action_121+action_342 (87) = happyShift action_122+action_342 (88) = happyShift action_123+action_342 (89) = happyShift action_96+action_342 (90) = happyShift action_97+action_342 (91) = happyShift action_124+action_342 (92) = happyShift action_99+action_342 (95) = happyShift action_100+action_342 (97) = happyShift action_125+action_342 (99) = happyShift action_126+action_342 (101) = happyShift action_127+action_342 (103) = happyShift action_128+action_342 (107) = happyShift action_57+action_342 (111) = happyShift action_58+action_342 (112) = happyShift action_59+action_342 (113) = happyShift action_60+action_342 (115) = happyShift action_61+action_342 (116) = happyShift action_62+action_342 (118) = happyShift action_129+action_342 (119) = happyShift action_103+action_342 (23) = happyGoto action_104+action_342 (26) = happyGoto action_105+action_342 (27) = happyGoto action_106+action_342 (29) = happyGoto action_107+action_342 (31) = happyGoto action_108+action_342 (32) = happyGoto action_109+action_342 (33) = happyGoto action_110+action_342 (34) = happyGoto action_111+action_342 (37) = happyGoto action_112+action_342 (40) = happyGoto action_306+action_342 (41) = happyGoto action_114+action_342 (42) = happyGoto action_115+action_342 (43) = happyGoto action_116+action_342 (44) = happyGoto action_117+action_342 (45) = happyGoto action_350+action_342 (46) = happyGoto action_87+action_342 _ = happyReduce_60++action_343 (96) = happyShift action_349+action_343 _ = happyFail (happyExpListPerState 343)++action_344 (65) = happyShift action_39+action_344 (23) = happyGoto action_37+action_344 (24) = happyGoto action_246+action_344 (47) = happyGoto action_348+action_344 (48) = happyGoto action_248+action_344 _ = happyReduce_132++action_345 _ = happyReduce_127++action_346 (65) = happyShift action_39+action_346 (66) = happyShift action_93+action_346 (67) = happyShift action_119+action_346 (70) = happyShift action_95+action_346 (77) = happyShift action_120+action_346 (79) = happyShift action_121+action_346 (87) = happyShift action_122+action_346 (88) = happyShift action_123+action_346 (89) = happyShift action_96+action_346 (90) = happyShift action_97+action_346 (91) = happyShift action_124+action_346 (92) = happyShift action_99+action_346 (95) = happyShift action_100+action_346 (97) = happyShift action_125+action_346 (99) = happyShift action_126+action_346 (101) = happyShift action_127+action_346 (103) = happyShift action_128+action_346 (107) = happyShift action_57+action_346 (111) = happyShift action_58+action_346 (112) = happyShift action_59+action_346 (113) = happyShift action_60+action_346 (115) = happyShift action_61+action_346 (116) = happyShift action_62+action_346 (118) = happyShift action_129+action_346 (119) = happyShift action_103+action_346 (23) = happyGoto action_104+action_346 (26) = happyGoto action_105+action_346 (27) = happyGoto action_106+action_346 (29) = happyGoto action_107+action_346 (31) = happyGoto action_108+action_346 (32) = happyGoto action_109+action_346 (33) = happyGoto action_110+action_346 (34) = happyGoto action_111+action_346 (37) = happyGoto action_112+action_346 (38) = happyGoto action_347+action_346 (39) = happyGoto action_200+action_346 (40) = happyGoto action_157+action_346 (41) = happyGoto action_114+action_346 (42) = happyGoto action_115+action_346 (43) = happyGoto action_116+action_346 (44) = happyGoto action_117+action_346 (45) = happyGoto action_118+action_346 (46) = happyGoto action_87+action_346 _ = happyReduce_60++action_347 _ = happyReduce_133++action_348 _ = happyReduce_130++action_349 _ = happyReduce_122++action_350 (102) = happyReduce_162+action_350 (104) = happyReduce_162+action_350 _ = happyReduce_114++action_351 (102) = happyShift action_388+action_351 _ = happyFail (happyExpListPerState 351)++action_352 (102) = happyShift action_387+action_352 _ = happyFail (happyExpListPerState 352)++action_353 (102) = happyShift action_386+action_353 _ = happyFail (happyExpListPerState 353)++action_354 (98) = happyShift action_385+action_354 _ = happyFail (happyExpListPerState 354)++action_355 (105) = happyShift action_383+action_355 (108) = happyShift action_384+action_355 _ = happyReduce_144++action_356 (100) = happyShift action_382+action_356 _ = happyFail (happyExpListPerState 356)++action_357 (65) = happyShift action_39+action_357 (66) = happyShift action_93+action_357 (67) = happyShift action_119+action_357 (70) = happyShift action_95+action_357 (77) = happyShift action_120+action_357 (79) = happyShift action_121+action_357 (87) = happyShift action_122+action_357 (88) = happyShift action_123+action_357 (89) = happyShift action_96+action_357 (90) = happyShift action_97+action_357 (91) = happyShift action_124+action_357 (92) = happyShift action_99+action_357 (95) = happyShift action_100+action_357 (97) = happyShift action_125+action_357 (99) = happyShift action_126+action_357 (101) = happyShift action_127+action_357 (103) = happyShift action_128+action_357 (107) = happyShift action_57+action_357 (111) = happyShift action_58+action_357 (112) = happyShift action_59+action_357 (113) = happyShift action_60+action_357 (115) = happyShift action_61+action_357 (116) = happyShift action_62+action_357 (118) = happyShift action_129+action_357 (119) = happyShift action_103+action_357 (23) = happyGoto action_104+action_357 (26) = happyGoto action_105+action_357 (27) = happyGoto action_106+action_357 (29) = happyGoto action_107+action_357 (31) = happyGoto action_108+action_357 (32) = happyGoto action_109+action_357 (33) = happyGoto action_110+action_357 (34) = happyGoto action_111+action_357 (37) = happyGoto action_112+action_357 (40) = happyGoto action_381+action_357 (41) = happyGoto action_114+action_357 (42) = happyGoto action_115+action_357 (43) = happyGoto action_116+action_357 (44) = happyGoto action_117+action_357 (45) = happyGoto action_118+action_357 (46) = happyGoto action_87+action_357 _ = happyReduce_60++action_358 _ = happyReduce_74++action_359 _ = happyReduce_75++action_360 _ = happyReduce_76++action_361 _ = happyReduce_72++action_362 _ = happyReduce_73++action_363 (72) = happyShift action_319+action_363 (22) = happyGoto action_380+action_363 _ = happyReduce_41++action_364 _ = happyReduce_177++action_365 _ = happyReduce_42++action_366 _ = happyReduce_135++action_367 (72) = happyShift action_319+action_367 (22) = happyGoto action_379+action_367 _ = happyReduce_41++action_368 _ = happyReduce_176++action_369 (102) = happyShift action_378+action_369 _ = happyFail (happyExpListPerState 369)++action_370 (102) = happyShift action_377+action_370 _ = happyFail (happyExpListPerState 370)++action_371 (102) = happyShift action_376+action_371 _ = happyFail (happyExpListPerState 371)++action_372 _ = happyReduce_71++action_373 _ = happyReduce_63++action_374 _ = happyReduce_64++action_375 _ = happyReduce_65++action_376 _ = happyReduce_66++action_377 _ = happyReduce_67++action_378 _ = happyReduce_68++action_379 _ = happyReduce_27++action_380 _ = happyReduce_29++action_381 (102) = happyShift action_392+action_381 _ = happyFail (happyExpListPerState 381)++action_382 (110) = happyShift action_391+action_382 _ = happyFail (happyExpListPerState 382)++action_383 (65) = happyShift action_39+action_383 (91) = happyShift action_235+action_383 (101) = happyShift action_236+action_383 (107) = happyShift action_102+action_383 (23) = happyGoto action_233+action_383 (52) = happyGoto action_390+action_383 (56) = happyGoto action_355+action_383 (60) = happyGoto action_231+action_383 _ = happyReduce_145++action_384 (65) = happyShift action_39+action_384 (66) = happyShift action_93+action_384 (67) = happyShift action_119+action_384 (70) = happyShift action_95+action_384 (77) = happyShift action_120+action_384 (79) = happyShift action_121+action_384 (87) = happyShift action_122+action_384 (88) = happyShift action_123+action_384 (89) = happyShift action_96+action_384 (90) = happyShift action_97+action_384 (91) = happyShift action_124+action_384 (92) = happyShift action_99+action_384 (95) = happyShift action_100+action_384 (97) = happyShift action_125+action_384 (99) = happyShift action_126+action_384 (101) = happyShift action_127+action_384 (103) = happyShift action_128+action_384 (107) = happyShift action_57+action_384 (111) = happyShift action_58+action_384 (112) = happyShift action_59+action_384 (113) = happyShift action_60+action_384 (115) = happyShift action_61+action_384 (116) = happyShift action_62+action_384 (118) = happyShift action_129+action_384 (119) = happyShift action_103+action_384 (23) = happyGoto action_104+action_384 (26) = happyGoto action_105+action_384 (27) = happyGoto action_106+action_384 (29) = happyGoto action_107+action_384 (31) = happyGoto action_108+action_384 (32) = happyGoto action_109+action_384 (33) = happyGoto action_110+action_384 (34) = happyGoto action_111+action_384 (37) = happyGoto action_112+action_384 (38) = happyGoto action_389+action_384 (39) = happyGoto action_200+action_384 (40) = happyGoto action_157+action_384 (41) = happyGoto action_114+action_384 (42) = happyGoto action_115+action_384 (43) = happyGoto action_116+action_384 (44) = happyGoto action_117+action_384 (45) = happyGoto action_118+action_384 (46) = happyGoto action_87+action_384 _ = happyReduce_60++action_385 _ = happyReduce_96++action_386 (117) = happyReduce_66+action_386 _ = happyReduce_66++action_387 (117) = happyReduce_67+action_387 _ = happyReduce_67++action_388 (117) = happyReduce_68+action_388 _ = happyReduce_68++action_389 (105) = happyShift action_395+action_389 _ = happyReduce_142++action_390 _ = happyReduce_143++action_391 (65) = happyShift action_39+action_391 (66) = happyShift action_93+action_391 (67) = happyShift action_119+action_391 (70) = happyShift action_95+action_391 (77) = happyShift action_120+action_391 (79) = happyShift action_121+action_391 (87) = happyShift action_122+action_391 (88) = happyShift action_123+action_391 (89) = happyShift action_96+action_391 (90) = happyShift action_97+action_391 (91) = happyShift action_124+action_391 (92) = happyShift action_99+action_391 (95) = happyShift action_100+action_391 (97) = happyShift action_125+action_391 (99) = happyShift action_126+action_391 (101) = happyShift action_127+action_391 (103) = happyShift action_128+action_391 (107) = happyShift action_57+action_391 (111) = happyShift action_58+action_391 (112) = happyShift action_59+action_391 (113) = happyShift action_60+action_391 (115) = happyShift action_61+action_391 (116) = happyShift action_62+action_391 (118) = happyShift action_129+action_391 (119) = happyShift action_103+action_391 (23) = happyGoto action_104+action_391 (26) = happyGoto action_105+action_391 (27) = happyGoto action_106+action_391 (29) = happyGoto action_107+action_391 (31) = happyGoto action_108+action_391 (32) = happyGoto action_109+action_391 (33) = happyGoto action_110+action_391 (34) = happyGoto action_111+action_391 (37) = happyGoto action_112+action_391 (40) = happyGoto action_394+action_391 (41) = happyGoto action_114+action_391 (42) = happyGoto action_115+action_391 (43) = happyGoto action_116+action_391 (44) = happyGoto action_117+action_391 (45) = happyGoto action_118+action_391 (46) = happyGoto action_87+action_391 _ = happyReduce_60++action_392 (110) = happyShift action_393+action_392 _ = happyFail (happyExpListPerState 392)++action_393 (65) = happyShift action_39+action_393 (66) = happyShift action_93+action_393 (67) = happyShift action_119+action_393 (70) = happyShift action_95+action_393 (77) = happyShift action_120+action_393 (79) = happyShift action_121+action_393 (87) = happyShift action_122+action_393 (88) = happyShift action_123+action_393 (89) = happyShift action_96+action_393 (90) = happyShift action_97+action_393 (91) = happyShift action_124+action_393 (92) = happyShift action_99+action_393 (95) = happyShift action_100+action_393 (97) = happyShift action_125+action_393 (99) = happyShift action_126+action_393 (101) = happyShift action_127+action_393 (103) = happyShift action_128+action_393 (107) = happyShift action_57+action_393 (111) = happyShift action_58+action_393 (112) = happyShift action_59+action_393 (113) = happyShift action_60+action_393 (115) = happyShift action_61+action_393 (116) = happyShift action_62+action_393 (118) = happyShift action_129+action_393 (119) = happyShift action_103+action_393 (23) = happyGoto action_104+action_393 (26) = happyGoto action_105+action_393 (27) = happyGoto action_106+action_393 (29) = happyGoto action_107+action_393 (31) = happyGoto action_108+action_393 (32) = happyGoto action_109+action_393 (33) = happyGoto action_110+action_393 (34) = happyGoto action_111+action_393 (37) = happyGoto action_112+action_393 (40) = happyGoto action_397+action_393 (41) = happyGoto action_114+action_393 (42) = happyGoto action_115+action_393 (43) = happyGoto action_116+action_393 (44) = happyGoto action_117+action_393 (45) = happyGoto action_118+action_393 (46) = happyGoto action_87+action_393 _ = happyReduce_60++action_394 _ = happyReduce_81++action_395 (65) = happyShift action_39+action_395 (91) = happyShift action_235+action_395 (101) = happyShift action_236+action_395 (107) = happyShift action_102+action_395 (23) = happyGoto action_233+action_395 (52) = happyGoto action_396+action_395 (56) = happyGoto action_355+action_395 (60) = happyGoto action_231+action_395 _ = happyReduce_145++action_396 _ = happyReduce_141++action_397 _ = happyReduce_82++happyReduce_1 = happySpecReduce_1  4 happyReduction_1+happyReduction_1 (HappyAbsSyn4  happy_var_1)+         =  HappyAbsSyn4+                 (reverse happy_var_1+        )+happyReduction_1 _  = notHappyAtAll++happyReduce_2 = happySpecReduce_0  5 happyReduction_2+happyReduction_2  =  HappyAbsSyn4+                 ([]+        )++happyReduce_3 = happySpecReduce_2  5 happyReduction_3+happyReduction_3 (HappyAbsSyn6  happy_var_2)+        (HappyAbsSyn4  happy_var_1)+         =  HappyAbsSyn4+                 (happy_var_2 : happy_var_1+        )+happyReduction_3 _ _  = notHappyAtAll++happyReduce_4 = happySpecReduce_1  6 happyReduction_4+happyReduction_4 (HappyAbsSyn6  happy_var_1)+         =  HappyAbsSyn6+                 (happy_var_1+        )+happyReduction_4 _  = notHappyAtAll++happyReduce_5 = happySpecReduce_1  6 happyReduction_5+happyReduction_5 (HappyAbsSyn6  happy_var_1)+         =  HappyAbsSyn6+                 (happy_var_1+        )+happyReduction_5 _  = notHappyAtAll++happyReduce_6 = happySpecReduce_1  6 happyReduction_6+happyReduction_6 (HappyAbsSyn6  happy_var_1)+         =  HappyAbsSyn6+                 (happy_var_1+        )+happyReduction_6 _  = notHappyAtAll++happyReduce_7 = happySpecReduce_1  6 happyReduction_7+happyReduction_7 (HappyAbsSyn6  happy_var_1)+         =  HappyAbsSyn6+                 (happy_var_1+        )+happyReduction_7 _  = notHappyAtAll++happyReduce_8 = happySpecReduce_1  6 happyReduction_8+happyReduction_8 (HappyAbsSyn6  happy_var_1)+         =  HappyAbsSyn6+                 (happy_var_1+        )+happyReduction_8 _  = notHappyAtAll++happyReduce_9 = happySpecReduce_1  6 happyReduction_9+happyReduction_9 (HappyAbsSyn6  happy_var_1)+         =  HappyAbsSyn6+                 (happy_var_1+        )+happyReduction_9 _  = notHappyAtAll++happyReduce_10 = happySpecReduce_1  6 happyReduction_10+happyReduction_10 (HappyAbsSyn6  happy_var_1)+         =  HappyAbsSyn6+                 (happy_var_1+        )+happyReduction_10 _  = notHappyAtAll++happyReduce_11 = happySpecReduce_1  6 happyReduction_11+happyReduction_11 (HappyAbsSyn6  happy_var_1)+         =  HappyAbsSyn6+                 (happy_var_1+        )+happyReduction_11 _  = notHappyAtAll++happyReduce_12 = happySpecReduce_1  6 happyReduction_12+happyReduction_12 (HappyAbsSyn6  happy_var_1)+         =  HappyAbsSyn6+                 (happy_var_1+        )+happyReduction_12 _  = notHappyAtAll++happyReduce_13 = happySpecReduce_1  6 happyReduction_13+happyReduction_13 (HappyAbsSyn6  happy_var_1)+         =  HappyAbsSyn6+                 (happy_var_1+        )+happyReduction_13 _  = notHappyAtAll++happyReduce_14 = happySpecReduce_2  6 happyReduction_14+happyReduction_14 (HappyAbsSyn6  happy_var_2)+        _+         =  HappyAbsSyn6+                 (C.OverrideDecl Impredicative [happy_var_2]+        )+happyReduction_14 _ _  = notHappyAtAll++happyReduce_15 = happyReduce 4 6 happyReduction_15+happyReduction_15 (_ `HappyStk`+        (HappyAbsSyn4  happy_var_3) `HappyStk`+        _ `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn6+                 (C.OverrideDecl Impredicative happy_var_3+        ) `HappyStk` happyRest++happyReduce_16 = happySpecReduce_2  6 happyReduction_16+happyReduction_16 (HappyAbsSyn6  happy_var_2)+        _+         =  HappyAbsSyn6+                 (C.OverrideDecl Fail [happy_var_2]+        )+happyReduction_16 _ _  = notHappyAtAll++happyReduce_17 = happyReduce 4 6 happyReduction_17+happyReduction_17 (_ `HappyStk`+        (HappyAbsSyn4  happy_var_3) `HappyStk`+        _ `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn6+                 (C.OverrideDecl Fail happy_var_3+        ) `HappyStk` happyRest++happyReduce_18 = happySpecReduce_2  6 happyReduction_18+happyReduction_18 (HappyAbsSyn6  happy_var_2)+        _+         =  HappyAbsSyn6+                 (C.OverrideDecl Check [happy_var_2]+        )+happyReduction_18 _ _  = notHappyAtAll++happyReduce_19 = happyReduce 4 6 happyReduction_19+happyReduction_19 (_ `HappyStk`+        (HappyAbsSyn4  happy_var_3) `HappyStk`+        _ `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn6+                 (C.OverrideDecl Check happy_var_3+        ) `HappyStk` happyRest++happyReduce_20 = happySpecReduce_2  6 happyReduction_20+happyReduction_20 (HappyAbsSyn6  happy_var_2)+        _+         =  HappyAbsSyn6+                 (C.OverrideDecl TrustMe [happy_var_2]+        )+happyReduction_20 _ _  = notHappyAtAll++happyReduce_21 = happyReduce 4 6 happyReduction_21+happyReduction_21 (_ `HappyStk`+        (HappyAbsSyn4  happy_var_3) `HappyStk`+        _ `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn6+                 (C.OverrideDecl TrustMe happy_var_3+        ) `HappyStk` happyRest++happyReduce_22 = happySpecReduce_2  7 happyReduction_22+happyReduction_22 (HappyAbsSyn12  happy_var_2)+        _+         =  HappyAbsSyn6+                 (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.Ind tel t cs fs+        )+happyReduction_22 _ _  = notHappyAtAll++happyReduce_23 = happySpecReduce_3  8 happyReduction_23+happyReduction_23 (HappyAbsSyn12  happy_var_3)+        _+        _+         =  HappyAbsSyn6+                 (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.Ind tel t cs fs+        )+happyReduction_23 _ _ _  = notHappyAtAll++happyReduce_24 = happySpecReduce_2  9 happyReduction_24+happyReduction_24 (HappyAbsSyn12  happy_var_2)+        _+         =  HappyAbsSyn6+                 (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.CoInd tel t cs fs+        )+happyReduction_24 _ _  = notHappyAtAll++happyReduce_25 = happySpecReduce_3  10 happyReduction_25+happyReduction_25 (HappyAbsSyn12  happy_var_3)+        _+        _+         =  HappyAbsSyn6+                 (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.CoInd tel t cs fs+        )+happyReduction_25 _ _ _  = notHappyAtAll++happyReduce_26 = happySpecReduce_2  11 happyReduction_26+happyReduction_26 (HappyAbsSyn13  happy_var_2)+        _+         =  HappyAbsSyn6+                 (let (n,tel,t,c,fs) = happy_var_2 in C.RecordDecl n tel t c fs+        )+happyReduction_26 _ _  = notHappyAtAll++happyReduce_27 = happyReduce 8 12 happyReduction_27+happyReduction_27 ((HappyAbsSyn22  happy_var_8) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn51  happy_var_6) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn31  happy_var_2) `HappyStk`+        (HappyAbsSyn23  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn12+                 ((happy_var_1, happy_var_2, happy_var_4, reverse happy_var_6, happy_var_8)+        ) `HappyStk` happyRest++happyReduce_28 = happyReduce 6 12 happyReduction_28+happyReduction_28 ((HappyAbsSyn22  happy_var_6) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn51  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn31  happy_var_2) `HappyStk`+        (HappyAbsSyn23  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn12+                 ((happy_var_1, happy_var_2, C.set0, reverse happy_var_4, happy_var_6)+        ) `HappyStk` happyRest++happyReduce_29 = happyReduce 8 13 happyReduction_29+happyReduction_29 ((HappyAbsSyn22  happy_var_8) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn50  happy_var_6) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn31  happy_var_2) `HappyStk`+        (HappyAbsSyn23  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn13+                 ((happy_var_1, happy_var_2, happy_var_4, happy_var_6, happy_var_8)+        ) `HappyStk` happyRest++happyReduce_30 = happyReduce 6 13 happyReduction_30+happyReduction_30 ((HappyAbsSyn22  happy_var_6) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn50  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn31  happy_var_2) `HappyStk`+        (HappyAbsSyn23  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn13+                 ((happy_var_1, happy_var_2, C.set0, happy_var_4, happy_var_6)+        ) `HappyStk` happyRest++happyReduce_31 = happyReduce 5 14 happyReduction_31+happyReduction_31 (_ `HappyStk`+        (HappyAbsSyn52  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn49  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn6+                 (C.FunDecl A.Ind happy_var_2 happy_var_4+        ) `HappyStk` happyRest++happyReduce_32 = happyReduce 5 15 happyReduction_32+happyReduction_32 (_ `HappyStk`+        (HappyAbsSyn52  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn49  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn6+                 (C.FunDecl A.CoInd happy_var_2 happy_var_4+        ) `HappyStk` happyRest++happyReduce_33 = happyReduce 4 16 happyReduction_33+happyReduction_33 (_ `HappyStk`+        (HappyAbsSyn4  happy_var_3) `HappyStk`+        _ `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn6+                 (C.MutualDecl (reverse happy_var_3)+        ) `HappyStk` happyRest++happyReduce_34 = happySpecReduce_3  17 happyReduction_34+happyReduction_34 (HappyAbsSyn18  happy_var_3)+        _+        (HappyAbsSyn19  happy_var_1)+         =  HappyAbsSyn6+                 (C.LetDecl happy_var_1 happy_var_3+        )+happyReduction_34 _ _ _  = notHappyAtAll++happyReduce_35 = happyReduce 5 18 happyReduction_35+happyReduction_35 ((HappyAbsSyn38  happy_var_5) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn20  happy_var_3) `HappyStk`+        (HappyAbsSyn31  happy_var_2) `HappyStk`+        (HappyAbsSyn35  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn18+                 (let (dec,n) = happy_var_1 in C.LetDef dec n happy_var_2 happy_var_3 happy_var_5+        ) `HappyStk` happyRest++happyReduce_36 = happySpecReduce_0  19 happyReduction_36+happyReduction_36  =  HappyAbsSyn19+                 (False+        )++happyReduce_37 = happySpecReduce_1  19 happyReduction_37+happyReduction_37 _+         =  HappyAbsSyn19+                 (True+        )++happyReduce_38 = happySpecReduce_0  20 happyReduction_38+happyReduction_38  =  HappyAbsSyn20+                 (Nothing+        )++happyReduce_39 = happySpecReduce_2  20 happyReduction_39+happyReduction_39 (HappyAbsSyn38  happy_var_2)+        _+         =  HappyAbsSyn20+                 (Just happy_var_2+        )+happyReduction_39 _ _  = notHappyAtAll++happyReduce_40 = happyReduce 4 21 happyReduction_40+happyReduction_40 ((HappyAbsSyn56  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn22  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn6+                 (C.PatternDecl (head happy_var_2) (tail happy_var_2) happy_var_4+        ) `HappyStk` happyRest++happyReduce_41 = happySpecReduce_0  22 happyReduction_41+happyReduction_41  =  HappyAbsSyn22+                 ([]+        )++happyReduce_42 = happySpecReduce_2  22 happyReduction_42+happyReduction_42 (HappyAbsSyn22  happy_var_2)+        _+         =  HappyAbsSyn22+                 (happy_var_2+        )+happyReduction_42 _ _  = notHappyAtAll++happyReduce_43 = happySpecReduce_1  23 happyReduction_43+happyReduction_43 (HappyTerminal (T.Id happy_var_1 _))+         =  HappyAbsSyn23+                 (C.Name happy_var_1+        )+happyReduction_43 _  = notHappyAtAll++happyReduce_44 = happySpecReduce_1  24 happyReduction_44+happyReduction_44 (HappyAbsSyn23  happy_var_1)+         =  HappyAbsSyn22+                 ([happy_var_1]+        )+happyReduction_44 _  = notHappyAtAll++happyReduce_45 = happySpecReduce_2  24 happyReduction_45+happyReduction_45 (HappyAbsSyn22  happy_var_2)+        (HappyAbsSyn23  happy_var_1)+         =  HappyAbsSyn22+                 (happy_var_1 : happy_var_2+        )+happyReduction_45 _ _  = notHappyAtAll++happyReduce_46 = happySpecReduce_1  25 happyReduction_46+happyReduction_46 (HappyAbsSyn23  happy_var_1)+         =  HappyAbsSyn22+                 ([happy_var_1]+        )+happyReduction_46 _  = notHappyAtAll++happyReduce_47 = happySpecReduce_3  25 happyReduction_47+happyReduction_47 (HappyAbsSyn22  happy_var_3)+        _+        (HappyAbsSyn23  happy_var_1)+         =  HappyAbsSyn22+                 (happy_var_1 : happy_var_3+        )+happyReduction_47 _ _ _  = notHappyAtAll++happyReduce_48 = happySpecReduce_1  26 happyReduction_48+happyReduction_48 _+         =  HappyAbsSyn26+                 (SPos+        )++happyReduce_49 = happySpecReduce_1  26 happyReduction_49+happyReduction_49 _+         =  HappyAbsSyn26+                 (Pos+        )++happyReduce_50 = happySpecReduce_1  26 happyReduction_50+happyReduction_50 _+         =  HappyAbsSyn26+                 (Neg+        )++happyReduce_51 = happySpecReduce_1  26 happyReduction_51+happyReduction_51 _+         =  HappyAbsSyn26+                 (Const+        )++happyReduce_52 = happySpecReduce_1  26 happyReduction_52+happyReduction_52 _+         =  HappyAbsSyn26+                 (Param+        )++happyReduce_53 = happySpecReduce_1  26 happyReduction_53+happyReduction_53 _+         =  HappyAbsSyn26+                 (Rec+        )++happyReduce_54 = happySpecReduce_2  27 happyReduction_54+happyReduction_54 (HappyAbsSyn28  happy_var_2)+        _+         =  HappyAbsSyn27+                 (A.Measure happy_var_2+        )+happyReduction_54 _ _  = notHappyAtAll++happyReduce_55 = happySpecReduce_2  28 happyReduction_55+happyReduction_55 _+        (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn28+                 ([happy_var_1]+        )+happyReduction_55 _ _  = notHappyAtAll++happyReduce_56 = happySpecReduce_3  28 happyReduction_56+happyReduction_56 (HappyAbsSyn28  happy_var_3)+        _+        (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn28+                 (happy_var_1 : happy_var_3+        )+happyReduction_56 _ _ _  = notHappyAtAll++happyReduce_57 = happySpecReduce_3  29 happyReduction_57+happyReduction_57 (HappyAbsSyn27  happy_var_3)+        _+        (HappyAbsSyn27  happy_var_1)+         =  HappyAbsSyn29+                 (A.Bound A.Lt happy_var_1 happy_var_3+        )+happyReduction_57 _ _ _  = notHappyAtAll++happyReduce_58 = happySpecReduce_3  29 happyReduction_58+happyReduction_58 (HappyAbsSyn27  happy_var_3)+        _+        (HappyAbsSyn27  happy_var_1)+         =  HappyAbsSyn29+                 (A.Bound A.Le happy_var_1 happy_var_3+        )+happyReduction_58 _ _ _  = notHappyAtAll++happyReduce_59 = happySpecReduce_1  30 happyReduction_59+happyReduction_59 (HappyAbsSyn28  happy_var_1)+         =  HappyAbsSyn22+                 (let { f (C.Ident (C.QName x)) = x+                            ; f e = error ("not an identifier: " ++ C.prettyExpr e)+                            } in map f happy_var_1+        )+happyReduction_59 _  = notHappyAtAll++happyReduce_60 = happySpecReduce_0  31 happyReduction_60+happyReduction_60  =  HappyAbsSyn31+                 ([]+        )++happyReduce_61 = happySpecReduce_2  31 happyReduction_61+happyReduction_61 (HappyAbsSyn31  happy_var_2)+        (HappyAbsSyn32  happy_var_1)+         =  HappyAbsSyn31+                 (happy_var_1 : happy_var_2+        )+happyReduction_61 _ _  = notHappyAtAll++happyReduce_62 = happySpecReduce_2  31 happyReduction_62+happyReduction_62 (HappyAbsSyn31  happy_var_2)+        (HappyAbsSyn27  happy_var_1)+         =  HappyAbsSyn31+                 (C.TMeasure happy_var_1 : happy_var_2+        )+happyReduction_62 _ _  = notHappyAtAll++happyReduce_63 = happyReduce 5 32 happyReduction_63+happyReduction_63 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn22  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBind   (Dec Default) happy_var_2      happy_var_4+        ) `HappyStk` happyRest++happyReduce_64 = happyReduce 5 32 happyReduction_64+happyReduction_64 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn23  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBounded A.defaultDec happy_var_2 A.Lt happy_var_4+        ) `HappyStk` happyRest++happyReduce_65 = happyReduce 5 32 happyReduction_65+happyReduction_65 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn23  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBounded A.defaultDec happy_var_2 A.Le happy_var_4+        ) `HappyStk` happyRest++happyReduce_66 = happyReduce 6 32 happyReduction_66+happyReduction_66 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_5) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn22  happy_var_3) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn26  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBind    (Dec happy_var_1)     happy_var_3      happy_var_5+        ) `HappyStk` happyRest++happyReduce_67 = happyReduce 6 32 happyReduction_67+happyReduction_67 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_5) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn23  happy_var_3) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn26  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBounded (Dec happy_var_1)     happy_var_3 A.Lt happy_var_5+        ) `HappyStk` happyRest++happyReduce_68 = happyReduce 6 32 happyReduction_68+happyReduction_68 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_5) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn23  happy_var_3) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn26  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBounded (Dec happy_var_1)     happy_var_3 A.Le happy_var_5+        ) `HappyStk` happyRest++happyReduce_69 = happySpecReduce_1  32 happyReduction_69+happyReduction_69 (HappyAbsSyn32  happy_var_1)+         =  HappyAbsSyn32+                 (happy_var_1+        )+happyReduction_69 _  = notHappyAtAll++happyReduce_70 = happySpecReduce_1  32 happyReduction_70+happyReduction_70 (HappyAbsSyn32  happy_var_1)+         =  HappyAbsSyn32+                 (happy_var_1+        )+happyReduction_70 _  = notHappyAtAll++happyReduce_71 = happyReduce 5 33 happyReduction_71+happyReduction_71 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn22  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBind    A.irrelevantDec happy_var_2      happy_var_4+        ) `HappyStk` happyRest++happyReduce_72 = happyReduce 5 33 happyReduction_72+happyReduction_72 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn23  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBounded A.irrelevantDec happy_var_2 A.Lt happy_var_4+        ) `HappyStk` happyRest++happyReduce_73 = happyReduce 5 33 happyReduction_73+happyReduction_73 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn23  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBounded A.irrelevantDec happy_var_2 A.Le happy_var_4+        ) `HappyStk` happyRest++happyReduce_74 = happyReduce 5 34 happyReduction_74+happyReduction_74 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn22  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBind    A.Hidden happy_var_2      happy_var_4+        ) `HappyStk` happyRest++happyReduce_75 = happyReduce 5 34 happyReduction_75+happyReduction_75 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn23  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBounded A.Hidden happy_var_2 A.Lt happy_var_4+        ) `HappyStk` happyRest++happyReduce_76 = happyReduce 5 34 happyReduction_76+happyReduction_76 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn23  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBounded A.Hidden happy_var_2 A.Le happy_var_4+        ) `HappyStk` happyRest++happyReduce_77 = happySpecReduce_1  35 happyReduction_77+happyReduction_77 (HappyAbsSyn23  happy_var_1)+         =  HappyAbsSyn35+                 ((A.defaultDec   , happy_var_1)+        )+happyReduction_77 _  = notHappyAtAll++happyReduce_78 = happySpecReduce_3  35 happyReduction_78+happyReduction_78 _+        (HappyAbsSyn23  happy_var_2)+        _+         =  HappyAbsSyn35+                 ((A.irrelevantDec, happy_var_2)+        )+happyReduction_78 _ _ _  = notHappyAtAll++happyReduce_79 = happySpecReduce_2  35 happyReduction_79+happyReduction_79 (HappyAbsSyn23  happy_var_2)+        (HappyAbsSyn26  happy_var_1)+         =  HappyAbsSyn35+                 ((Dec happy_var_1         , happy_var_2)+        )+happyReduction_79 _ _  = notHappyAtAll++happyReduce_80 = happySpecReduce_1  36 happyReduction_80+happyReduction_80 (HappyAbsSyn18  happy_var_1)+         =  HappyAbsSyn18+                 (happy_var_1+        )+happyReduction_80 _  = notHappyAtAll++happyReduce_81 = happyReduce 7 36 happyReduction_81+happyReduction_81 ((HappyAbsSyn38  happy_var_7) `HappyStk`+        _ `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn23  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn18+                 (C.LetDef A.irrelevantDec happy_var_2 [] (Just happy_var_4) happy_var_7+        ) `HappyStk` happyRest++happyReduce_82 = happyReduce 8 36 happyReduction_82+happyReduction_82 ((HappyAbsSyn38  happy_var_8) `HappyStk`+        _ `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn38  happy_var_5) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn23  happy_var_3) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn26  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn18+                 (C.LetDef (Dec happy_var_1) happy_var_3 [] (Just happy_var_5) happy_var_8+        ) `HappyStk` happyRest++happyReduce_83 = happySpecReduce_1  37 happyReduction_83+happyReduction_83 (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn31+                 ([C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1]+        )+happyReduction_83 _  = notHappyAtAll++happyReduce_84 = happySpecReduce_3  37 happyReduction_84+happyReduction_84 _+        (HappyAbsSyn38  happy_var_2)+        _+         =  HappyAbsSyn31+                 ([C.TBind A.irrelevantDec [] happy_var_2]+        )+happyReduction_84 _ _ _  = notHappyAtAll++happyReduce_85 = happySpecReduce_2  37 happyReduction_85+happyReduction_85 (HappyAbsSyn38  happy_var_2)+        (HappyAbsSyn26  happy_var_1)+         =  HappyAbsSyn31+                 ([C.TBind (Dec happy_var_1) [] happy_var_2]+        )+happyReduction_85 _ _  = notHappyAtAll++happyReduce_86 = happySpecReduce_1  37 happyReduction_86+happyReduction_86 (HappyAbsSyn32  happy_var_1)+         =  HappyAbsSyn31+                 ([happy_var_1]+        )+happyReduction_86 _  = notHappyAtAll++happyReduce_87 = happySpecReduce_1  37 happyReduction_87+happyReduction_87 (HappyAbsSyn27  happy_var_1)+         =  HappyAbsSyn31+                 ([C.TMeasure happy_var_1]+        )+happyReduction_87 _  = notHappyAtAll++happyReduce_88 = happySpecReduce_1  37 happyReduction_88+happyReduction_88 (HappyAbsSyn29  happy_var_1)+         =  HappyAbsSyn31+                 ([C.TBound happy_var_1]+        )+happyReduction_88 _  = notHappyAtAll++happyReduce_89 = happySpecReduce_1  37 happyReduction_89+happyReduction_89 (HappyAbsSyn31  happy_var_1)+         =  HappyAbsSyn31+                 (happy_var_1+        )+happyReduction_89 _  = notHappyAtAll++happyReduce_90 = happySpecReduce_1  38 happyReduction_90+happyReduction_90 (HappyAbsSyn28  happy_var_1)+         =  HappyAbsSyn38+                 (foldr1 C.Pair happy_var_1+        )+happyReduction_90 _  = notHappyAtAll++happyReduce_91 = happySpecReduce_1  39 happyReduction_91+happyReduction_91 (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn28+                 ([happy_var_1]+        )+happyReduction_91 _  = notHappyAtAll++happyReduce_92 = happySpecReduce_3  39 happyReduction_92+happyReduction_92 (HappyAbsSyn28  happy_var_3)+        _+        (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn28+                 (happy_var_1 : happy_var_3+        )+happyReduction_92 _ _ _  = notHappyAtAll++happyReduce_93 = happySpecReduce_3  40 happyReduction_93+happyReduction_93 (HappyAbsSyn38  happy_var_3)+        _+        (HappyAbsSyn31  happy_var_1)+         =  HappyAbsSyn38+                 (C.Quant A.Pi happy_var_1 happy_var_3+        )+happyReduction_93 _ _ _  = notHappyAtAll++happyReduce_94 = happyReduce 4 40 happyReduction_94+happyReduction_94 ((HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn22  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn38+                 (foldr C.Lam happy_var_4 happy_var_2+        ) `HappyStk` happyRest++happyReduce_95 = happyReduce 4 40 happyReduction_95+happyReduction_95 ((HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn18  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn38+                 (C.LLet happy_var_2 happy_var_4+        ) `HappyStk` happyRest++happyReduce_96 = happyReduce 6 40 happyReduction_96+happyReduction_96 (_ `HappyStk`+        (HappyAbsSyn52  happy_var_5) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn20  happy_var_3) `HappyStk`+        (HappyAbsSyn38  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn38+                 (C.Case happy_var_2 happy_var_3 happy_var_5+        ) `HappyStk` happyRest++happyReduce_97 = happySpecReduce_1  40 happyReduction_97+happyReduction_97 (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn38+                 (happy_var_1+        )+happyReduction_97 _  = notHappyAtAll++happyReduce_98 = happySpecReduce_3  40 happyReduction_98+happyReduction_98 (HappyAbsSyn38  happy_var_3)+        _+        (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn38+                 (C.Plus happy_var_1 happy_var_3+        )+happyReduction_98 _ _ _  = notHappyAtAll++happyReduce_99 = happySpecReduce_3  40 happyReduction_99+happyReduction_99 (HappyAbsSyn38  happy_var_3)+        _+        (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn38+                 (C.App happy_var_1 [happy_var_3]+        )+happyReduction_99 _ _ _  = notHappyAtAll++happyReduce_100 = happySpecReduce_3  40 happyReduction_100+happyReduction_100 (HappyAbsSyn38  happy_var_3)+        _+        (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn38+                 (C.App happy_var_3 [happy_var_1]+        )+happyReduction_100 _ _ _  = notHappyAtAll++happyReduce_101 = happySpecReduce_1  41 happyReduction_101+happyReduction_101 (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn38+                 (happy_var_1+        )+happyReduction_101 _  = notHappyAtAll++happyReduce_102 = happySpecReduce_3  41 happyReduction_102+happyReduction_102 (HappyAbsSyn38  happy_var_3)+        _+        (HappyAbsSyn32  happy_var_1)+         =  HappyAbsSyn38+                 (C.Quant A.Sigma [happy_var_1] happy_var_3+        )+happyReduction_102 _ _ _  = notHappyAtAll++happyReduce_103 = happySpecReduce_1  42 happyReduction_103+happyReduction_103 (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn32+                 (C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1+        )+happyReduction_103 _  = notHappyAtAll++happyReduce_104 = happySpecReduce_3  42 happyReduction_104+happyReduction_104 _+        (HappyAbsSyn38  happy_var_2)+        _+         =  HappyAbsSyn32+                 (C.TBind A.irrelevantDec [] happy_var_2+        )+happyReduction_104 _ _ _  = notHappyAtAll++happyReduce_105 = happySpecReduce_2  42 happyReduction_105+happyReduction_105 (HappyAbsSyn38  happy_var_2)+        (HappyAbsSyn26  happy_var_1)+         =  HappyAbsSyn32+                 (C.TBind (Dec happy_var_1) [] happy_var_2+        )+happyReduction_105 _ _  = notHappyAtAll++happyReduce_106 = happySpecReduce_1  42 happyReduction_106+happyReduction_106 (HappyAbsSyn32  happy_var_1)+         =  HappyAbsSyn32+                 (happy_var_1+        )+happyReduction_106 _  = notHappyAtAll++happyReduce_107 = happySpecReduce_1  42 happyReduction_107+happyReduction_107 (HappyAbsSyn27  happy_var_1)+         =  HappyAbsSyn32+                 (C.TMeasure happy_var_1+        )+happyReduction_107 _  = notHappyAtAll++happyReduce_108 = happySpecReduce_1  42 happyReduction_108+happyReduction_108 (HappyAbsSyn29  happy_var_1)+         =  HappyAbsSyn32+                 (C.TBound happy_var_1+        )+happyReduction_108 _  = notHappyAtAll++happyReduce_109 = happySpecReduce_1  43 happyReduction_109+happyReduction_109 (HappyAbsSyn28  happy_var_1)+         =  HappyAbsSyn38+                 (let (f : args) = reverse happy_var_1 in+                if null args then f else C.App f args+        )+happyReduction_109 _  = notHappyAtAll++happyReduce_110 = happySpecReduce_2  43 happyReduction_110+happyReduction_110 (HappyAbsSyn38  happy_var_2)+        _+         =  HappyAbsSyn38+                 (C.CoSet happy_var_2+        )+happyReduction_110 _ _  = notHappyAtAll++happyReduce_111 = happySpecReduce_1  43 happyReduction_111+happyReduction_111 _+         =  HappyAbsSyn38+                 (C.Set C.Zero+        )++happyReduce_112 = happySpecReduce_2  43 happyReduction_112+happyReduction_112 (HappyAbsSyn38  happy_var_2)+        _+         =  HappyAbsSyn38+                 (C.Set happy_var_2+        )+happyReduction_112 _ _  = notHappyAtAll++happyReduce_113 = happySpecReduce_3  43 happyReduction_113+happyReduction_113 (HappyAbsSyn38  happy_var_3)+        _+        (HappyTerminal (T.Number happy_var_1 _))+         =  HappyAbsSyn38+                 (let n = read happy_var_1 in+                            if n==0 then C.Zero else+                            iterate (C.Plus happy_var_3) happy_var_3 !! (n-1)+        )+happyReduction_113 _ _ _  = notHappyAtAll++happyReduce_114 = happySpecReduce_1  44 happyReduction_114+happyReduction_114 (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn28+                 ([happy_var_1]+        )+happyReduction_114 _  = notHappyAtAll++happyReduce_115 = happySpecReduce_2  44 happyReduction_115+happyReduction_115 (HappyAbsSyn38  happy_var_2)+        (HappyAbsSyn28  happy_var_1)+         =  HappyAbsSyn28+                 (happy_var_2 : happy_var_1+        )+happyReduction_115 _ _  = notHappyAtAll++happyReduce_116 = happySpecReduce_3  44 happyReduction_116+happyReduction_116 (HappyAbsSyn23  happy_var_3)+        _+        (HappyAbsSyn28  happy_var_1)+         =  HappyAbsSyn28+                 (C.Proj happy_var_3 : happy_var_1+        )+happyReduction_116 _ _ _  = notHappyAtAll++happyReduce_117 = happySpecReduce_2  44 happyReduction_117+happyReduction_117 _+        (HappyAbsSyn28  happy_var_1)+         =  HappyAbsSyn28+                 (C.Set C.Zero : happy_var_1+        )+happyReduction_117 _ _  = notHappyAtAll++happyReduce_118 = happySpecReduce_1  45 happyReduction_118+happyReduction_118 _+         =  HappyAbsSyn38+                 (C.Size+        )++happyReduce_119 = happySpecReduce_1  45 happyReduction_119+happyReduction_119 _+         =  HappyAbsSyn38+                 (C.Max+        )++happyReduce_120 = happySpecReduce_1  45 happyReduction_120+happyReduction_120 _+         =  HappyAbsSyn38+                 (C.Infty+        )++happyReduce_121 = happySpecReduce_1  45 happyReduction_121+happyReduction_121 (HappyAbsSyn46  happy_var_1)+         =  HappyAbsSyn38+                 (C.Ident happy_var_1+        )+happyReduction_121 _  = notHappyAtAll++happyReduce_122 = happyReduce 5 45 happyReduction_122+happyReduction_122 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn38  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn38+                 (C.Sing happy_var_2 happy_var_4+        ) `HappyStk` happyRest++happyReduce_123 = happySpecReduce_3  45 happyReduction_123+happyReduction_123 _+        (HappyAbsSyn38  happy_var_2)+        _+         =  HappyAbsSyn38+                 (happy_var_2+        )+happyReduction_123 _ _ _  = notHappyAtAll++happyReduce_124 = happySpecReduce_1  45 happyReduction_124+happyReduction_124 _+         =  HappyAbsSyn38+                 (C.Unknown+        )++happyReduce_125 = happySpecReduce_2  45 happyReduction_125+happyReduction_125 (HappyAbsSyn38  happy_var_2)+        _+         =  HappyAbsSyn38+                 (C.Succ happy_var_2+        )+happyReduction_125 _ _  = notHappyAtAll++happyReduce_126 = happySpecReduce_1  45 happyReduction_126+happyReduction_126 (HappyTerminal (T.Number happy_var_1 _))+         =  HappyAbsSyn38+                 (iterate C.Succ C.Zero !! (read happy_var_1)+        )+happyReduction_126 _  = notHappyAtAll++happyReduce_127 = happyReduce 4 45 happyReduction_127+happyReduction_127 (_ `HappyStk`+        (HappyAbsSyn47  happy_var_3) `HappyStk`+        _ `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn38+                 (C.Record happy_var_3+        ) `HappyStk` happyRest++happyReduce_128 = happySpecReduce_1  46 happyReduction_128+happyReduction_128 (HappyTerminal (T.QualId happy_var_1 _))+         =  HappyAbsSyn46+                 (let (m,n) = happy_var_1 in C.Qual (C.Name m) (C.Name n)+        )+happyReduction_128 _  = notHappyAtAll++happyReduce_129 = happySpecReduce_1  46 happyReduction_129+happyReduction_129 (HappyAbsSyn23  happy_var_1)+         =  HappyAbsSyn46+                 (C.QName happy_var_1+        )+happyReduction_129 _  = notHappyAtAll++happyReduce_130 = happySpecReduce_3  47 happyReduction_130+happyReduction_130 (HappyAbsSyn47  happy_var_3)+        _+        (HappyAbsSyn48  happy_var_1)+         =  HappyAbsSyn47+                 (happy_var_1 : happy_var_3+        )+happyReduction_130 _ _ _  = notHappyAtAll++happyReduce_131 = happySpecReduce_1  47 happyReduction_131+happyReduction_131 (HappyAbsSyn48  happy_var_1)+         =  HappyAbsSyn47+                 ([happy_var_1]+        )+happyReduction_131 _  = notHappyAtAll++happyReduce_132 = happySpecReduce_0  47 happyReduction_132+happyReduction_132  =  HappyAbsSyn47+                 ([]+        )++happyReduce_133 = happySpecReduce_3  48 happyReduction_133+happyReduction_133 (HappyAbsSyn38  happy_var_3)+        _+        (HappyAbsSyn22  happy_var_1)+         =  HappyAbsSyn48+                 ((happy_var_1,happy_var_3)+        )+happyReduction_133 _ _ _  = notHappyAtAll++happyReduce_134 = happySpecReduce_3  49 happyReduction_134+happyReduction_134 (HappyAbsSyn38  happy_var_3)+        _+        (HappyAbsSyn23  happy_var_1)+         =  HappyAbsSyn49+                 (C.TypeSig happy_var_1 happy_var_3+        )+happyReduction_134 _ _ _  = notHappyAtAll++happyReduce_135 = happyReduce 4 50 happyReduction_135+happyReduction_135 ((HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn31  happy_var_2) `HappyStk`+        (HappyAbsSyn23  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn50+                 (C.Constructor happy_var_1 happy_var_2 (Just happy_var_4)+        ) `HappyStk` happyRest++happyReduce_136 = happySpecReduce_2  50 happyReduction_136+happyReduction_136 (HappyAbsSyn31  happy_var_2)+        (HappyAbsSyn23  happy_var_1)+         =  HappyAbsSyn50+                 (C.Constructor happy_var_1 happy_var_2 Nothing+        )+happyReduction_136 _ _  = notHappyAtAll++happyReduce_137 = happySpecReduce_3  51 happyReduction_137+happyReduction_137 (HappyAbsSyn50  happy_var_3)+        _+        (HappyAbsSyn51  happy_var_1)+         =  HappyAbsSyn51+                 (happy_var_3 : happy_var_1+        )+happyReduction_137 _ _ _  = notHappyAtAll++happyReduce_138 = happySpecReduce_2  51 happyReduction_138+happyReduction_138 _+        (HappyAbsSyn51  happy_var_1)+         =  HappyAbsSyn51+                 (happy_var_1+        )+happyReduction_138 _ _  = notHappyAtAll++happyReduce_139 = happySpecReduce_1  51 happyReduction_139+happyReduction_139 (HappyAbsSyn50  happy_var_1)+         =  HappyAbsSyn51+                 ([happy_var_1]+        )+happyReduction_139 _  = notHappyAtAll++happyReduce_140 = happySpecReduce_0  51 happyReduction_140+happyReduction_140  =  HappyAbsSyn51+                 ([]+        )++happyReduce_141 = happyReduce 5 52 happyReduction_141+happyReduction_141 ((HappyAbsSyn52  happy_var_5) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn38  happy_var_3) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn56  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn52+                 ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : happy_var_5+        ) `HappyStk` happyRest++happyReduce_142 = happySpecReduce_3  52 happyReduction_142+happyReduction_142 (HappyAbsSyn38  happy_var_3)+        _+        (HappyAbsSyn56  happy_var_1)+         =  HappyAbsSyn52+                 ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : []+        )+happyReduction_142 _ _ _  = notHappyAtAll++happyReduce_143 = happySpecReduce_3  52 happyReduction_143+happyReduction_143 (HappyAbsSyn52  happy_var_3)+        _+        (HappyAbsSyn56  happy_var_1)+         =  HappyAbsSyn52+                 ((C.Clause Nothing [happy_var_1] Nothing) : happy_var_3+        )+happyReduction_143 _ _ _  = notHappyAtAll++happyReduce_144 = happySpecReduce_1  52 happyReduction_144+happyReduction_144 (HappyAbsSyn56  happy_var_1)+         =  HappyAbsSyn52+                 ((C.Clause Nothing [happy_var_1] Nothing) : []+        )+happyReduction_144 _  = notHappyAtAll++happyReduce_145 = happySpecReduce_0  52 happyReduction_145+happyReduction_145  =  HappyAbsSyn52+                 ([]+        )++happyReduce_146 = happyReduce 4 53 happyReduction_146+happyReduction_146 ((HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn54  happy_var_2) `HappyStk`+        (HappyAbsSyn23  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn53+                 (C.Clause (Just happy_var_1) happy_var_2 (Just happy_var_4)+        ) `HappyStk` happyRest++happyReduce_147 = happySpecReduce_2  53 happyReduction_147+happyReduction_147 (HappyAbsSyn54  happy_var_2)+        (HappyAbsSyn23  happy_var_1)+         =  HappyAbsSyn53+                 (C.Clause (Just happy_var_1) happy_var_2 Nothing+        )+happyReduction_147 _ _  = notHappyAtAll++happyReduce_148 = happySpecReduce_1  54 happyReduction_148+happyReduction_148 (HappyAbsSyn54  happy_var_1)+         =  HappyAbsSyn54+                 (reverse happy_var_1+        )+happyReduction_148 _  = notHappyAtAll++happyReduce_149 = happySpecReduce_0  55 happyReduction_149+happyReduction_149  =  HappyAbsSyn54+                 ([]+        )++happyReduce_150 = happySpecReduce_2  55 happyReduction_150+happyReduction_150 (HappyAbsSyn56  happy_var_2)+        (HappyAbsSyn54  happy_var_1)+         =  HappyAbsSyn54+                 (happy_var_2 : happy_var_1+        )+happyReduction_150 _ _  = notHappyAtAll++happyReduce_151 = happySpecReduce_3  55 happyReduction_151+happyReduction_151 (HappyAbsSyn56  happy_var_3)+        _+        (HappyAbsSyn54  happy_var_1)+         =  HappyAbsSyn54+                 (happy_var_3 : happy_var_1+        )+happyReduction_151 _ _ _  = notHappyAtAll++happyReduce_152 = happySpecReduce_2  56 happyReduction_152+happyReduction_152 _+        _+         =  HappyAbsSyn56+                 (C.AbsurdP+        )++happyReduce_153 = happySpecReduce_3  56 happyReduction_153+happyReduction_153 _+        (HappyAbsSyn56  happy_var_2)+        _+         =  HappyAbsSyn56+                 (happy_var_2+        )+happyReduction_153 _ _ _  = notHappyAtAll++happyReduce_154 = happySpecReduce_1  56 happyReduction_154+happyReduction_154 (HappyAbsSyn56  happy_var_1)+         =  HappyAbsSyn56+                 (happy_var_1+        )+happyReduction_154 _  = notHappyAtAll++happyReduce_155 = happySpecReduce_2  56 happyReduction_155+happyReduction_155 (HappyAbsSyn56  happy_var_2)+        _+         =  HappyAbsSyn56+                 (C.SuccP happy_var_2+        )+happyReduction_155 _ _  = notHappyAtAll++happyReduce_156 = happySpecReduce_2  56 happyReduction_156+happyReduction_156 _+        _+         =  HappyAbsSyn56+                 (C.DotP (C.Set C.Zero)+        )++happyReduce_157 = happySpecReduce_2  56 happyReduction_157+happyReduction_157 (HappyAbsSyn38  happy_var_2)+        _+         =  HappyAbsSyn56+                 (C.DotP happy_var_2+        )+happyReduction_157 _ _  = notHappyAtAll++happyReduce_158 = happySpecReduce_3  57 happyReduction_158+happyReduction_158 (HappyAbsSyn56  happy_var_3)+        _+        (HappyAbsSyn56  happy_var_1)+         =  HappyAbsSyn56+                 (C.PairP happy_var_1 happy_var_3+        )+happyReduction_158 _ _ _  = notHappyAtAll++happyReduce_159 = happySpecReduce_1  57 happyReduction_159+happyReduction_159 (HappyAbsSyn56  happy_var_1)+         =  HappyAbsSyn56+                 (happy_var_1+        )+happyReduction_159 _  = notHappyAtAll++happyReduce_160 = happySpecReduce_1  58 happyReduction_160+happyReduction_160 (HappyAbsSyn56  happy_var_1)+         =  HappyAbsSyn56+                 (happy_var_1+        )+happyReduction_160 _  = notHappyAtAll++happyReduce_161 = happySpecReduce_3  58 happyReduction_161+happyReduction_161 (HappyAbsSyn23  happy_var_3)+        _+        (HappyAbsSyn38  happy_var_1)+         =  HappyAbsSyn56+                 (C.SizeP happy_var_1 happy_var_3+        )+happyReduction_161 _ _ _  = notHappyAtAll++happyReduce_162 = happySpecReduce_3  58 happyReduction_162+happyReduction_162 (HappyAbsSyn38  happy_var_3)+        _+        (HappyAbsSyn23  happy_var_1)+         =  HappyAbsSyn56+                 (C.SizeP happy_var_3 happy_var_1+        )+happyReduction_162 _ _ _  = notHappyAtAll++happyReduce_163 = happySpecReduce_1  58 happyReduction_163+happyReduction_163 (HappyAbsSyn56  happy_var_1)+         =  HappyAbsSyn56+                 (happy_var_1+        )+happyReduction_163 _  = notHappyAtAll++happyReduce_164 = happySpecReduce_3  58 happyReduction_164+happyReduction_164 (HappyAbsSyn56  happy_var_3)+        _+        (HappyAbsSyn56  happy_var_1)+         =  HappyAbsSyn56+                 (patApp happy_var_1 [happy_var_3]+        )+happyReduction_164 _ _ _  = notHappyAtAll++happyReduce_165 = happySpecReduce_2  59 happyReduction_165+happyReduction_165 (HappyAbsSyn56  happy_var_2)+        (HappyAbsSyn56  happy_var_1)+         =  HappyAbsSyn56+                 (patApp happy_var_1 [happy_var_2]+        )+happyReduction_165 _ _  = notHappyAtAll++happyReduce_166 = happySpecReduce_2  59 happyReduction_166+happyReduction_166 (HappyAbsSyn56  happy_var_2)+        (HappyAbsSyn56  happy_var_1)+         =  HappyAbsSyn56+                 (patApp happy_var_1 [happy_var_2]+        )+happyReduction_166 _ _  = notHappyAtAll++happyReduce_167 = happySpecReduce_1  60 happyReduction_167+happyReduction_167 (HappyAbsSyn23  happy_var_1)+         =  HappyAbsSyn56+                 (C.IdentP (C.QName happy_var_1)+        )+happyReduction_167 _  = notHappyAtAll++happyReduce_168 = happySpecReduce_2  60 happyReduction_168+happyReduction_168 (HappyAbsSyn23  happy_var_2)+        _+         =  HappyAbsSyn56+                 (C.ConP True (C.QName happy_var_2) []+        )+happyReduction_168 _ _  = notHappyAtAll++happyReduce_169 = happySpecReduce_1  61 happyReduction_169+happyReduction_169 (HappyAbsSyn62  happy_var_1)+         =  HappyAbsSyn52+                 (reverse happy_var_1+        )+happyReduction_169 _  = notHappyAtAll++happyReduce_170 = happySpecReduce_3  62 happyReduction_170+happyReduction_170 (HappyAbsSyn53  happy_var_3)+        _+        (HappyAbsSyn62  happy_var_1)+         =  HappyAbsSyn62+                 (happy_var_3 : happy_var_1+        )+happyReduction_170 _ _ _  = notHappyAtAll++happyReduce_171 = happySpecReduce_2  62 happyReduction_171+happyReduction_171 _+        (HappyAbsSyn62  happy_var_1)+         =  HappyAbsSyn62+                 (happy_var_1+        )+happyReduction_171 _ _  = notHappyAtAll++happyReduce_172 = happySpecReduce_1  62 happyReduction_172+happyReduction_172 (HappyAbsSyn53  happy_var_1)+         =  HappyAbsSyn62+                 ([happy_var_1]+        )+happyReduction_172 _  = notHappyAtAll++happyReduce_173 = happySpecReduce_0  62 happyReduction_173+happyReduction_173  =  HappyAbsSyn62+                 ([]+        )++happyReduce_174 = happyReduce 5 63 happyReduction_174+happyReduction_174 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn22  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBind (Dec Default) happy_var_2 happy_var_4+        ) `HappyStk` happyRest++happyReduce_175 = happyReduce 5 63 happyReduction_175+happyReduction_175 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_4) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn22  happy_var_2) `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBind A.irrelevantDec happy_var_2 happy_var_4+        ) `HappyStk` happyRest++happyReduce_176 = happyReduce 6 63 happyReduction_176+happyReduction_176 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_5) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn22  happy_var_3) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn26  happy_var_1) `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBind (Dec happy_var_1) happy_var_3 happy_var_5+        ) `HappyStk` happyRest++happyReduce_177 = happyReduce 6 63 happyReduction_177+happyReduction_177 (_ `HappyStk`+        (HappyAbsSyn38  happy_var_5) `HappyStk`+        _ `HappyStk`+        (HappyAbsSyn22  happy_var_3) `HappyStk`+        _ `HappyStk`+        _ `HappyStk`+        happyRest)+         = HappyAbsSyn32+                 (C.TBind (Dec SPos) happy_var_3 happy_var_5+        ) `HappyStk` happyRest++happyReduce_178 = happySpecReduce_0  64 happyReduction_178+happyReduction_178  =  HappyAbsSyn31+                 ([]+        )++happyReduce_179 = happySpecReduce_2  64 happyReduction_179+happyReduction_179 (HappyAbsSyn31  happy_var_2)+        (HappyAbsSyn32  happy_var_1)+         =  HappyAbsSyn31+                 (happy_var_1 : happy_var_2+        )+happyReduction_179 _ _  = notHappyAtAll++happyNewToken action sts stk [] =+        action 120 120 notHappyAtAll (HappyState action) sts stk []++happyNewToken action sts stk (tk:tks) =+        let cont i = action i i tk (HappyState action) sts stk tks in+        case tk of {+        T.Id happy_dollar_dollar _ -> cont 65;+        T.QualId happy_dollar_dollar _ -> cont 66;+        T.Number happy_dollar_dollar _ -> cont 67;+        T.Data _ -> cont 68;+        T.CoData _ -> cont 69;+        T.Record _ -> cont 70;+        T.Sized _ -> cont 71;+        T.Fields _ -> cont 72;+        T.Mutual _ -> cont 73;+        T.Fun _ -> cont 74;+        T.CoFun _ -> cont 75;+        T.Pattern _ -> cont 76;+        T.Case _ -> cont 77;+        T.Def _ -> cont 78;+        T.Let _ -> cont 79;+        T.In _ -> cont 80;+        T.Eval _ -> cont 81;+        T.Fail _ -> cont 82;+        T.Check _ -> cont 83;+        T.TrustMe _ -> cont 84;+        T.Impredicative _ -> cont 85;+        T.Type _ -> cont 86;+        T.Set _ -> cont 87;+        T.CoSet _ -> cont 88;+        T.Size _ -> cont 89;+        T.Infty _ -> cont 90;+        T.Succ _ -> cont 91;+        T.Max _ -> cont 92;+        T.LTri _ -> cont 93;+        T.RTri _ -> cont 94;+        T.AngleOpen _ -> cont 95;+        T.AngleClose _ -> cont 96;+        T.BrOpen _ -> cont 97;+        T.BrClose _ -> cont 98;+        T.BracketOpen _ -> cont 99;+        T.BracketClose _ -> cont 100;+        T.PrOpen _ -> cont 101;+        T.PrClose _ -> cont 102;+        T.Bar _ -> cont 103;+        T.Comma _ -> cont 104;+        T.Sem _ -> cont 105;+        T.Col _ -> cont 106;+        T.Dot _ -> cont 107;+        T.Arrow _ -> cont 108;+        T.Leq _ -> cont 109;+        T.Eq _ -> cont 110;+        T.PlusPlus _ -> cont 111;+        T.Plus _ -> cont 112;+        T.Minus _ -> cont 113;+        T.Slash _ -> cont 114;+        T.Times _ -> cont 115;+        T.Hat _ -> cont 116;+        T.Amp _ -> cont 117;+        T.Lam _ -> cont 118;+        T.Underscore _ -> cont 119;+        _ -> happyError' ((tk:tks), [])+        }++happyError_ explist 120 tk tks = happyError' (tks, explist)+happyError_ explist _ tk tks = happyError' ((tk:tks), explist)++newtype HappyIdentity a = HappyIdentity a+happyIdentity = HappyIdentity+happyRunIdentity (HappyIdentity a) = a++instance Prelude.Functor HappyIdentity where+    fmap f (HappyIdentity a) = HappyIdentity (f a)++instance Applicative HappyIdentity where+    pure  = HappyIdentity+    (<*>) = ap+instance Prelude.Monad HappyIdentity where+    return = pure+    (HappyIdentity p) >>= q = q p++happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b+happyThen = (Prelude.>>=)+happyReturn :: () => a -> HappyIdentity a+happyReturn = (Prelude.return)+happyThen1 m k tks = (Prelude.>>=) m (\a -> k a tks)+happyReturn1 :: () => a -> b -> HappyIdentity a+happyReturn1 = \a tks -> (Prelude.return) a+happyError' :: () => ([(T.Token)], [Prelude.String]) -> HappyIdentity a+happyError' = HappyIdentity Prelude.. (\(tokens, _) -> parseError tokens)+parse tks = happyRunIdentity happySomeParser where+ happySomeParser = happyThen (happyParse action_0 tks) (\x -> case x of {HappyAbsSyn4 z -> happyReturn z; _other -> notHappyAtAll })++happySeq = happyDontSeq+++parseError :: [T.Token] -> a+parseError [] = error "Parse error at EOF"+parseError (x : xs) = error ("Parse error at token " ++ T.prettyTok x)+{-# LINE 1 "templates/GenericTemplate.hs" #-}+-- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $+++++++++++++++++++++++++++++++++++++++++++data Happy_IntList = HappyCons Prelude.Int Happy_IntList+++++++++++++++++++++++++++++++++++++++++infixr 9 `HappyStk`+data HappyStk a = HappyStk a (HappyStk a)++-----------------------------------------------------------------------------+-- starting the parse++happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll++-----------------------------------------------------------------------------+-- Accepting the parse++-- If the current token is ERROR_TOK, it means we've just accepted a partial+-- parse (a %partial parser).  We must ignore the saved token on the top of+-- the stack in this case.+happyAccept (1) tk st sts (_ `HappyStk` ans `HappyStk` _) =+        happyReturn1 ans+happyAccept j tk st sts (HappyStk ans _) =+         (happyReturn1 ans)++-----------------------------------------------------------------------------+-- Arrays only: do the next action++++++++++++++++++++++++++++++++++++++++++indexShortOffAddr arr off = arr Happy_Data_Array.! off+++{-# INLINE happyLt #-}+happyLt x y = (x Prelude.< y)+++++++readArrayBit arr bit =+    Bits.testBit (indexShortOffAddr arr (bit `Prelude.div` 16)) (bit `Prelude.mod` 16)+++++++-----------------------------------------------------------------------------+-- HappyState data type (not arrays)++++newtype HappyState b c = HappyState+        (Prelude.Int ->                    -- token number+         Prelude.Int ->                    -- token number (yes, again)+         b ->                           -- token semantic value+         HappyState b c ->              -- current state+         [HappyState b c] ->            -- state stack+         c)++++-----------------------------------------------------------------------------+-- Shifting a token++happyShift new_state (1) tk st sts stk@(x `HappyStk` _) =+     let i = (case x of { HappyErrorToken (i) -> i }) in+--     trace "shifting the error token" $+     new_state i i tk (HappyState (new_state)) ((st):(sts)) (stk)++happyShift new_state i tk st sts stk =+     happyNewToken new_state ((st):(sts)) ((HappyTerminal (tk))`HappyStk`stk)++-- happyReduce is specialised for the common cases.++happySpecReduce_0 i fn (1) tk st sts stk+     = happyFail [] (1) tk st sts stk+happySpecReduce_0 nt fn j tk st@((HappyState (action))) sts stk+     = action nt j tk st ((st):(sts)) (fn `HappyStk` stk)++happySpecReduce_1 i fn (1) tk st sts stk+     = happyFail [] (1) tk st sts stk+happySpecReduce_1 nt fn j tk _ sts@(((st@(HappyState (action))):(_))) (v1`HappyStk`stk')+     = let r = fn v1 in+       happySeq r (action nt j tk st sts (r `HappyStk` stk'))++happySpecReduce_2 i fn (1) tk st sts stk+     = happyFail [] (1) tk st sts stk+happySpecReduce_2 nt fn j tk _ ((_):(sts@(((st@(HappyState (action))):(_))))) (v1`HappyStk`v2`HappyStk`stk')+     = let r = fn v1 v2 in+       happySeq r (action nt j tk st sts (r `HappyStk` stk'))++happySpecReduce_3 i fn (1) tk st sts stk+     = happyFail [] (1) tk st sts stk+happySpecReduce_3 nt fn j tk _ ((_):(((_):(sts@(((st@(HappyState (action))):(_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')+     = let r = fn v1 v2 v3 in+       happySeq r (action nt j tk st sts (r `HappyStk` stk'))++happyReduce k i fn (1) tk st sts stk+     = happyFail [] (1) tk st sts stk+happyReduce k nt fn j tk st sts stk+     = case happyDrop (k Prelude.- ((1) :: Prelude.Int)) sts of+         sts1@(((st1@(HappyState (action))):(_))) ->+                let r = fn stk in  -- it doesn't hurt to always seq here...+                happyDoSeq r (action nt j tk st1 sts1 r)++happyMonadReduce k nt fn (1) tk st sts stk+     = happyFail [] (1) tk st sts stk+happyMonadReduce k nt fn j tk st sts stk =+      case happyDrop k ((st):(sts)) of+        sts1@(((st1@(HappyState (action))):(_))) ->+          let drop_stk = happyDropStk k stk in+          happyThen1 (fn stk tk) (\r -> action nt j tk st1 sts1 (r `HappyStk` drop_stk))++happyMonad2Reduce k nt fn (1) tk st sts stk+     = happyFail [] (1) tk st sts stk+happyMonad2Reduce k nt fn j tk st sts stk =+      case happyDrop k ((st):(sts)) of+        sts1@(((st1@(HappyState (action))):(_))) ->+         let drop_stk = happyDropStk k stk++++++             _ = nt :: Prelude.Int+             new_state = action++          in+          happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))++happyDrop (0) l = l+happyDrop n ((_):(t)) = happyDrop (n Prelude.- ((1) :: Prelude.Int)) t++happyDropStk (0) l = l+happyDropStk n (x `HappyStk` xs) = happyDropStk (n Prelude.- ((1)::Prelude.Int)) xs++-----------------------------------------------------------------------------+-- Moving to a new state after a reduction++++++++++happyGoto action j tk st = action j j tk (HappyState action)+++-----------------------------------------------------------------------------+-- Error recovery (ERROR_TOK is the error token)++-- parse error if we are in recovery and we fail again+happyFail explist (1) tk old_st _ stk@(x `HappyStk` _) =+     let i = (case x of { HappyErrorToken (i) -> i }) in+--      trace "failing" $+        happyError_ explist i tk++{-  We don't need state discarding for our restricted implementation of+    "error".  In fact, it can cause some bogus parses, so I've disabled it+    for now --SDM++-- discard a state+happyFail  ERROR_TOK tk old_st CONS(HAPPYSTATE(action),sts)+                                                (saved_tok `HappyStk` _ `HappyStk` stk) =+--      trace ("discarding state, depth " ++ show (length stk))  $+        DO_ACTION(action,ERROR_TOK,tk,sts,(saved_tok`HappyStk`stk))+-}++-- Enter error recovery: generate an error token,+--                       save the old token and carry on.+happyFail explist i tk (HappyState (action)) sts stk =+--      trace "entering error recovery" $+        action (1) (1) tk (HappyState (action)) sts ((HappyErrorToken (i)) `HappyStk` stk)++-- Internal happy errors:++notHappyAtAll :: a+notHappyAtAll = Prelude.error "Internal Happy error\n"++-----------------------------------------------------------------------------+-- Hack to get the typechecker to accept our action functions++++++++-----------------------------------------------------------------------------+-- Seq-ing.  If the --strict flag is given, then Happy emits+--      happySeq = happyDoSeq+-- otherwise it emits+--      happySeq = happyDontSeq++happyDoSeq, happyDontSeq :: a -> b -> b+happyDoSeq   a b = a `Prelude.seq` b+happyDontSeq a b = b++-----------------------------------------------------------------------------+-- Don't inline any functions from the template.  GHC has a nasty habit+-- of deciding to inline happyGoto everywhere, which increases the size of+-- the generated parser quite a bit.+++++++++ {-# NOINLINE happyShift #-} {-# NOINLINE happySpecReduce_0 #-} {-# NOINLINE happySpecReduce_1 #-}
src/Polarity.hs view
@@ -63,6 +63,7 @@   | PVar PVarId -- flexible polarity variable          deriving (Eq,Ord) +mixed, defaultPol :: Pol mixed = Rec defaultPol = Rec {-@@ -87,19 +88,21 @@   show Default = "{default polarity}"   show (PVar i) = showPVar i +showPVar :: Show a => a -> String showPVar i = "?p" ++ show i +isPVar :: Pol -> Bool isPVar (PVar{}) = True isPVar _ = False  -- information ordering leqPol :: Pol -> Pol -> Bool-leqPol x Const  = True   -- Const is top-leqPol Const x  = False-leqPol Rec y    = True   -- Rec is bottom-leqPol x Rec    = False-leqPol Param y  = True   -- Param is second bottom-leqPol x Param  = False+leqPol _ Const  = True   -- Const is top+leqPol Const _  = False+leqPol Rec _    = True   -- Rec is bottom+leqPol _ Rec    = False+leqPol Param _  = True   -- Param is second bottom+leqPol _ Param  = False leqPol Pos SPos = True leqPol x   y    = x == y @@ -127,21 +130,23 @@ polNeg Neg   = Pos polNeg Param = Param polNeg Rec   = Rec+polNeg _ = undefined  -- polarity composition -- used in Eval.hs leqVals' polComp :: Pol -> Pol -> Pol-polComp Const  x  = Const   -- most dominant-polComp x Const   = Const-polComp Rec x     = Rec  -- dominant except for Const-polComp x Rec     = Rec-polComp Param x   = Param  -- dominant except for Const, Rec-polComp x Param   = Param+polComp Const  _  = Const   -- most dominant+polComp _ Const   = Const+polComp Rec _     = Rec  -- dominant except for Const+polComp _ Rec     = Rec+polComp Param _   = Param  -- dominant except for Const, Rec+polComp _ Param   = Param polComp SPos  x   = x      -- neutral polComp x SPos    = x polComp Pos  x    = x      -- neutral except for SPos polComp x Pos     = x polComp Neg Neg   = Pos    -- order 2+polComp _ _ = undefined {- pol.comp. is ass., comm., with neutral ++, and infinity Const    cancellation does not hold, since composition with anything by ++ is    information loss:@@ -153,14 +158,15 @@ -- used in TCM.hs cxtApplyDec invComp :: Pol -> Pol -> Pol invComp Rec   Rec   = Rec       -- in rec. arg. keep only rec. vars-invComp Rec   x     = Const     -- all others are declared unusable+invComp Rec   _     = Const     -- all others are declared unusable invComp Param Param = Param     -- in parametric mixed arg, keep only mixed vars-invComp Param x     = Const-invComp Const x     = Param     -- a constant function can take any argument+invComp Param _     = Const+invComp Const _     = Param     -- a constant function can take any argument invComp SPos  x     = x         -- SPos is the identity-invComp p     SPos  = Const     -- SPos preserved only under SPos+invComp _     SPos  = Const     -- SPos preserved only under SPos invComp Pos   x     = x         -- x not SPos invComp Neg   x     = polNeg x  -- x not SPos+invComp _ _ = undefined  {- UNUSED invCompExpr :: Pol -> PExpr -> PExpr@@ -173,8 +179,8 @@ polAnd :: Pol -> Pol -> Pol polAnd Const x = x      -- most information polAnd x Const = x-polAnd Rec   x = Rec   -- least information-polAnd x   Rec = Rec+polAnd Rec   _ = Rec   -- least information+polAnd _   Rec = Rec {- polAnd Param x  = Param   -- 2nd least information polAnd x Param  = Param@@ -196,20 +202,22 @@  -- computing a relation from <= relPol :: Pol -> (a -> a -> Bool) -> (a -> a -> Bool)-relPol Const r a b = True+relPol Const _ _ _ = True relPol Rec   r a b = r a b && r b a relPol Param r a b = r a b && r b a relPol Neg   r a b = r b a relPol Pos   r a b = r a b relPol SPos  r a b = r a b+relPol _ _ _ _ = undefined  relPolM :: (Monad m) => Pol -> (a -> a -> m ()) -> (a -> a -> m ())-relPolM Const r a b = return ()+relPolM Const _ _ _ = return () relPolM Rec   r a b = r a b >> r b a relPolM Param r a b = r a b >> r b a relPolM Neg   r a b = r b a relPolM Pos   r a b = r a b relPolM SPos  r a b = r a b+relPolM _ _ _ _ = undefined  -- polarity product (composition of polarities) ---------------------- @@ -235,6 +243,7 @@              f (k, PTwo) = [k,k]   in Util.showList "." showPVar l +multsEmpty :: VarMults multsEmpty = Map.empty  multsSingle :: Int -> VarMults
src/ScopeChecker.hs view
@@ -10,12 +10,15 @@ import Prelude hiding (mapM, null)  import Control.Applicative-import Control.Monad.Identity hiding (mapM)-import Control.Monad.Reader hiding (mapM)-import Control.Monad.State hiding (mapM)-import Control.Monad.Except hiding (mapM)+import Control.Monad          hiding (mapM)+import Control.Monad.Identity (Identity, runIdentity)+import Control.Monad.Reader   (ReaderT, runReaderT, MonadReader, ask, asks, local)+import Control.Monad.State    (StateT, execStateT, runStateT, get, gets, modify, put)+import Control.Monad.Except   (ExceptT, runExceptT, MonadError, catchError)+import Control.Monad.Trans    (lift) -import Data.List as List hiding (null)+import Data.List (sort, (\\))+import qualified Data.List as List import Data.Maybe import Data.Traversable (mapM) 
src/Semiring.hs view
@@ -1,4 +1,4 @@--- {-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE CPP #-}  -- | Semirings.  Original: Agda.Terminatio.Semiring @@ -10,8 +10,9 @@   , boolSemiring   ) where -import Data.Monoid-+#if !MIN_VERSION_base(4,8,0)+import Data.Monoid (Monoid)+#endif  {- | SemiRing type class.  Additive monoid with multiplication operation. Inherit addition and zero from Monoid. -}
src/SparseMatrix.hs view
@@ -4,7 +4,14 @@ sorted association lists.   -}+{-# LANGUAGE CPP #-} +#if __GLASGOW_HASKELL_ >= 800+{-# OPTIONS_GHC -Wno-unused-top-binds #-}+#else+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+#endif+ module SparseMatrix   ( -- * Basic data types     Matrix(M)@@ -37,11 +44,11 @@  import Data.Array import qualified Data.List as List-import Data.Monoid+-- import Data.Monoid  -- import Test.QuickCheck -import Semiring (HasZero(..), SemiRing, Semiring)+import Semiring (HasZero(..), Semiring) import qualified Semiring as Semiring  @@ -118,7 +125,7 @@   fmap f (M sz m) = M sz (map (\ (i,a) -> (i, f a)) m)  matrixInvariant :: (Num i, Ix i) => Matrix i b -> Bool-matrixInvariant m = List.all (\ (MIx i j, b) -> 1 <= i && i <= rows sz+matrixInvariant m = List.all (\ (MIx i j, _) -> 1 <= i && i <= rows sz                                              && 1 <= j && j <= cols sz) (unM m)   && strictlySorted (MIx 0 0) (unM m)   && sizeInvariant sz@@ -128,8 +135,8 @@ -- Ord MIx should be the lexicographic one already (Haskell report)  strictlySorted :: (Ord i) => i -> [(i, b)] -> Bool-strictlySorted i [] = True-strictlySorted i ((i', b) : l) = i < i' && strictlySorted i' l+strictlySorted _ [] = True+strictlySorted i ((i', _) : l) = i < i' && strictlySorted i' l {- strictlySorted (MIx i j) [] = True strictlySorted (MIx i j) ((MIx i' j', b) : l) =@@ -193,7 +200,7 @@ -- normalize = filter (\ (i,b) -> b /= zeroElement)  fromIndexList :: (Ord i, HasZero b) => Size i -> [(MIx i, b)] -> Matrix i b-fromIndexList sz = M sz . List.sortBy (\ (i,_) (j,_) -> compare i j) . filter (\ (i,b) -> b /= zeroElement)+fromIndexList sz = M sz . List.sortBy (\ (i,_) (j,_) -> compare i j) . filter (\ (_,b) -> b /= zeroElement)  prop_fromIndexList :: TM -> Bool prop_fromIndexList m = matrixInvariant m' && m' == m@@ -212,8 +219,8 @@ -- | Converts a sparse matrix to a sparse list of rows  toSparseRows :: (Num i, Enum i, Eq i) => Matrix i b -> [(i,[(i,b)])]-toSparseRows m = aux 1 [] (unM m)-  where aux i' [] []  = []+toSparseRows m0 = aux 1 [] (unM m0)+  where aux _  [] []  = []         aux i' row [] = [(i', reverse row)]         aux i' row ((MIx i j, b) : m)             | i' == i   = aux i' ((j,b):row) m@@ -221,7 +228,7 @@  -- sparse vectors cannot have two entries in one column blowUpSparseVec :: (Eq i, Ord i, Num i, Enum i, Show i) => b -> i -> [(i,b)] -> [b]-blowUpSparseVec zero n l = aux 1 l+blowUpSparseVec zero n = aux 1   where aux i [] | i > n = []                  | otherwise = zero : aux (i+1) []         aux i ((j,b):l) | i <= n && j == i = b : aux (succ i) l@@ -279,20 +286,24 @@     case unM m of       [(_,b)] -> Just b       []      -> Just zeroElement+      _       -> undefined   else Nothing   where sz = size m  -- | Transposition+transposeSize :: Size i -> Size i transposeSize (Size { rows = n, cols = m }) = Size { rows = m, cols = n }++transpose :: Ord i => Matrix i b -> Matrix i b transpose m = M { size = transposeSize (size m)-                , unM  = List.sortBy (\ (i,a) (j,b) -> compare i j) $+                , unM  = List.sortBy (\ (i,_) (j,_) -> compare i j) $                            map (\(MIx i j, b) -> (MIx j i, b)) $ unM m }  all :: (a -> Bool) -> Matrix i a -> Bool-all p m = List.all (\ (i,a) -> p a) (unM m)+all p m = List.all (\ (_,a) -> p a) (unM m)  any :: (a -> Bool) -> Matrix i a -> Bool-any p m = List.any (\ (i,a) -> p a) (unM m)+any p m = List.any (\ (_,a) -> p a) (unM m)  -- | @'zip' m1 m2@ zips @m1@ and @m2@. --@@ -316,8 +327,8 @@  -- | assoc list union mergeAssocWith :: (Ord i) => (a -> a -> a) -> [(i,a)] -> [(i,a)] -> [(i,a)]-mergeAssocWith f [] m = m-mergeAssocWith f l [] = l+mergeAssocWith _ [] m = m+mergeAssocWith _ l [] = l mergeAssocWith f l@((i,a):l') m@((j,b):m')     | i < j = (i,a) : mergeAssocWith f l' m     | i > j = (j,b) : mergeAssocWith f l m'@@ -333,8 +344,8 @@  -- | assoc list intersection interAssocWith :: (Ord i) => (a -> a -> a) -> [(i,a)] -> [(i,a)] -> [(i,a)]-interAssocWith f [] m = []-interAssocWith f l [] = []+interAssocWith _ [] _ = []+interAssocWith _ _ [] = [] interAssocWith f l@((i,a):l') m@((j,b):m')     | i < j = interAssocWith f l' m     | i > j = interAssocWith f l m'@@ -366,7 +377,7 @@ mul :: (Enum i, Num i, Ix i, Eq a)     => Semiring a -> Matrix i a -> Matrix i a -> Matrix i a mul semiring m1 m2 = M (Size { rows = rows (size m1), cols = cols (size m2) }) $-  filter (\ (i,b) -> b /= Semiring.zero semiring) $+  filter (\ (_,b) -> b /= Semiring.zero semiring) $   [ (MIx i j, foldl (Semiring.add semiring) (Semiring.zero semiring) $                 map snd $ interAssocWith (Semiring.mul semiring) v w)     | (i,v) <- toSparseRows m1@@ -392,7 +403,7 @@  diagonal :: (Enum i, Num i, Ix i, Show i, HasZero b) => Matrix i b -> [b] diagonal m = blowUpSparseVec zeroElement (rows sz) $-  map (\ ((MIx i j),b) -> (i,b)) $ filter (\ ((MIx i j),b) -> i==j) (unM m)+  map (\ ((MIx i _),b) -> (i,b)) $ filter (\ ((MIx i j),_) -> i==j) (unM m)   where sz = size m  {-@@ -417,8 +428,9 @@ -- set to @x@.  addColumn :: (Num i, HasZero b) => b -> Matrix i b -> Matrix i b-addColumn x m | x == zeroElement = m { size = (size m) { cols = cols (size m) + 1 }}---              | otherwise = __IMPOSSIBLE__+addColumn x m+  | x == zeroElement = m { size = (size m) { cols = cols (size m) + 1 }}+  | otherwise = undefined  {- prop_addColumn :: TM -> Bool@@ -435,7 +447,7 @@  addRow :: (Num i, HasZero b) => b -> Matrix i b -> Matrix i b addRow x m | x == zeroElement = m { size = (size m) { rows = rows (size m) + 1 }}---           | otherwise = __IMPOSSIBLE__+           | otherwise = undefined  prop_addRow :: TM -> Bool prop_addRow m =
src/TCM.hs view
@@ -5,10 +5,9 @@ import Prelude hiding (null)  import Control.Monad-import Control.Monad.Identity-import Control.Monad.State-import Control.Monad.Except-import Control.Monad.Reader+import Control.Monad.State  (StateT, get, gets, put)+import Control.Monad.Except (ExceptT, MonadError)+import Control.Monad.Reader (ReaderT, ask, asks, local)  import Control.Applicative import Data.Foldable (Foldable)@@ -1317,7 +1316,7 @@   lookupSymbQ n@Qual{}  = lookupSymbInSig n    -- addSig :: Name -> SigDef -> TypeCheck ()-  addSigQ n def = traceSig ("addSig: " ++ show n ++ " is bound to " ++ show def) $do+  addSigQ n def = traceSig ("addSig: " ++ show n ++ " is bound to " ++ show def) $ do     st <- get     put $ st { signature = Map.insert n def $ signature st } 
src/TCM.hs-boot view
@@ -3,10 +3,9 @@ -- import CallStack import TraceError -import Control.Monad.Identity-import Control.Monad.State-import Control.Monad.Except-import Control.Monad.Reader+import Control.Monad.State  (StateT)+import Control.Monad.Except (ExceptT)+import Control.Monad.Reader (ReaderT)  data OneOrTwo a = One a | Two a a 
src/Termination.hs view
@@ -4,10 +4,11 @@  import Prelude hiding (null) -import Data.Monoid-import Control.Monad.Writer -- (Writer, runWriter, tell, listen, Any(..), ...)+import Control.Monad+import Control.Monad.Writer (Writer, runWriter, mapWriter, tell, listen) -import Data.List as List hiding (null)+import qualified Data.List as List+import Data.Monoid import Data.Set (Set) import qualified Data.Set as Set import Data.Foldable (Foldable, foldMap)
src/TraceError.hs view
@@ -3,6 +3,7 @@ module TraceError where  import Control.Monad.Except+import Control.Monad.IO.Class (MonadIO(..)) import Debug.Trace  import Util@@ -18,16 +19,22 @@     show (Err str) = str     show (TrErr str err) = str ++ "\n/// " ++ show err -throwErrorMsg m = throwError (Err m)+throwErrorMsg :: MonadError TraceError m => String -> m a+throwErrorMsg = throwError . Err --- newErrorMsg :: (MonadError TraceError m) => m a -> String -> m a+newErrorMsg :: (MonadError TraceError m) => m a -> String -> m a newErrorMsg c s = c `catchError` (\ _ -> throwErrorMsg s) -- addErrorMsg c s = c `catchError` (\ s' -> throwErrorMsg (s' ++ "\n" ++ s))  -- extend the current error message by n+throwTrace :: MonadError TraceError m => m a -> String -> m a throwTrace x n = x `catchError` ( \e -> throwError $ TrErr n e)++enter, enterTrace :: MonadError TraceError m => String -> m a -> m a enter n x = throwTrace x n enterTrace n x = trace n $ throwTrace x n++enterShow :: (MonadError TraceError m, Show a) => a -> m b -> m b enterShow n = enter (show n)  enterDoc :: (MonadError TraceError m, Pretty d) => m d -> m a -> m a@@ -48,11 +55,11 @@ errorToBool m = (m >> return True) `catchError` (\ _ -> return False)  boolToErrorDoc :: (MonadError TraceError m) => m Doc -> Bool -> m ()-boolToErrorDoc d True  = return ()+boolToErrorDoc _ True  = return () boolToErrorDoc d False = failDoc d  boolToError :: (MonadError TraceError m) => String -> Bool -> m ()-boolToError msg True  = return ()+boolToError _   True  = return () boolToError msg False = throwErrorMsg msg  -- defined in Control.Monad.Error.Class in mtl-2.2.2@@ -70,8 +77,8 @@                        deriving (Eq,Ord,Show)  assert' :: (MonadError TraceError m, MonadIO m) => AssertionHandling -> Bool -> String -> m ()-assert' Ignore b s      = return ()-assert' h True s        = return ()+assert' Ignore _      _ = return ()+assert' _       True  _ = return () assert' Warning False s = liftIO $ putStrLn $ "warning: ignoring error: " ++ s assert' Failure False s = throwErrorMsg s 
src/TreeShapedOrder.hs view
@@ -25,7 +25,7 @@ module TreeShapedOrder where  import Prelude hiding (null)-import Data.List hiding (insert, null) -- groupBy+import Data.List (groupBy, sort)  import Data.Map (Map) import qualified Data.Map as Map@@ -66,9 +66,9 @@ -- | @isAncestor a b o = Just n@ if there are n steps up from a to b. isAncestor :: (Ord a, Eq a) => a -> a -> TSO a -> Maybe Int isAncestor a b o = loop 0 ((0,a) : parents a o)-   where loop acc [] = Nothing-         loop acc ((n,a) : ps) | a == b    = Just (acc + n)-                               | otherwise = loop (acc + n) ps+   where loop _   [] = Nothing+         loop acc ((n,a') : ps) | a' == b   = Just (acc + n)+                                | otherwise = loop (acc + n) ps  -- | @diff a b o = Just k@ if there are k steps up from a to b -- or (-k) steps down from b to a.@@ -78,16 +78,16 @@ -- | create a map from parents to list of sons, leaves have an empty list invert :: (Ord a, Eq a) => TSO a -> Map a [(Int,a)] invert (TSO o) = Map.foldrWithKey step Map.empty o where-  step son (dist, parent) m = Map.insertWith (++) son [] $-    Map.insertWith (++) parent [(dist, son)] m+  step son (dist, father) m = Map.insertWith (++) son [] $+    Map.insertWith (++) father [(dist, son)] m  -- | @height a t = Just k@ if $k$ is the length of the --   longest path from @a@ to a leaf. @Nothing@ if @a@ not in @t@. height :: (Ord a, Eq a) => a -> TSO a -> Maybe Int height a t = do   let m = invert t-  let loop parent = do-        sons <- Map.lookup parent m+  let loop father = do+        sons <- Map.lookup father m         return $ if null sons then 0 else                   maximum $ map (\ (n,son) -> maybe 0 (n +) $ loop son) sons   loop a@@ -96,11 +96,11 @@ --   the insertion of a with parent b will destroy an existing --   minimal valuation of @t@ increasesHeight :: (Ord a, Eq a) => a -> (Int, a) -> TSO a -> Bool-increasesHeight a (n,b) t = n > maybe 0 id (height b t)+increasesHeight _ (n,b) t = n > maybe 0 id (height b t)  -- | get the leaves of the TSO forest leaves :: (Ord a, Eq a) => TSO a -> [a]-leaves o = map fst $ filter (\ (parent,sons) -> null sons) $ Map.toList (invert o)+leaves o = map fst $ filter (\ (_parent, sons) -> null sons) $ Map.toList (invert o)  {- FLAWED BOTTOM-UP-ATTEMPT, DOES NOT WORK {- How to invert a TSO?@@ -153,10 +153,12 @@ -}  -- test-+l1 :: [(String, (Int, String))] l1 = map (\ (k,l) -> ("i" ++ show k, (1, "i" ++ show l))) [(0,1),(1,2),(2,3),(3,4)]      ++ [("j2",(1,"i3"))]+o1 :: TSO String o1 = fromList l1+t1, t2, t3, t4, t5 :: Maybe Int t1 = diff "i2" "i1" o1 t2 = diff "i2" "j2" o1 t3 = height "i2" o1
src/TypeChecker.hs view
@@ -7,10 +7,11 @@  import Control.Applicative hiding (Const) -- ((<$>)) import Control.Monad-import Control.Monad.Identity-import Control.Monad.State-import Control.Monad.Except-import Control.Monad.Reader+import Control.Monad.IO.Class (MonadIO(..))+import Control.Monad.State    (runStateT, get, gets, put)+import Control.Monad.Except   (runExceptT, catchError)+import Control.Monad.Reader   (runReaderT, ask, asks, local)+import Control.Monad.Trans    (lift)  import qualified Data.List as List import Data.Map (Map)
src/Util.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TupleSections, NoMonomorphismRestriction,       FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies #-}@@ -6,20 +7,23 @@  import Prelude hiding (showList, null, (<>)) +#if !MIN_VERSION_base(4,8,0) import Control.Applicative hiding (empty)+#endif import Control.Monad-import Control.Monad.Writer (Writer, runWriter, All, getAll)+import Control.Monad.Writer (Writer, runWriter)  import qualified Data.List as List import Data.Map (Map) import qualified Data.Map as Map+import Data.Monoid (All, getAll) import Debug.Trace  import Text.PrettyPrint as PP  (+?+) :: String -> String -> String-(+?+) xs "[]" = []-(+?+) xs ys = xs ++ ys+(+?+) _ "[]" = []+(+?+) xs ys  = xs ++ ys  implies :: Bool -> Bool -> Bool implies a b = if a then b else True@@ -40,15 +44,15 @@ -- | Apply when condition is @True@. fwhen :: Bool -> (a -> a) -> a -> a fwhen True  f a = f a-fwhen False f a = a+fwhen False _ a = a  parensIf :: Bool -> Doc -> Doc parensIf b = fwhen b PP.parens  hsepBy :: Doc -> [Doc] -> Doc-hsepBy sep [] = empty-hsepBy sep [d] = d-hsepBy sep (d:ds) = d <> sep <> hsepBy sep ds+hsepBy _separator []     = empty+hsepBy _separator [d]    = d+hsepBy  separator (d:ds) = d <> separator <> hsepBy separator ds  pwords :: String -> [Doc] pwords = map text . words@@ -80,11 +84,11 @@  whenJust :: (Monad m) => Maybe a -> (a -> m ()) -> m () whenJust (Just a) k = k a-whenJust Nothing  k = return ()+whenJust Nothing  _ = return ()  whenNothing :: (Monad m) => Maybe a -> m () -> m () whenNothing Nothing m = m-whenNothing Just{}  m = return ()+whenNothing Just{}  _ = return ()  ifNothingM :: (Monad m) => m (Maybe a) -> m b -> (a -> m b) -> m b ifNothingM mma mb f = maybe mb f =<< mma@@ -117,7 +121,7 @@ andM (m:ms) = m `andLazy` andM ms  findM :: Monad m => (a -> m Bool) -> [a] -> m (Maybe a)-findM p []       = return Nothing+findM _ []       = return Nothing findM p (x : xs) = do b <- p x                       if b then return (Just x) else findM p xs @@ -136,15 +140,15 @@ bracketsIf True  s = "[" ++ s ++ "]"  separate :: String -> String -> String -> String-separate sep "" y = y-separate sep x "" = x-separate sep x y  = x ++ sep ++ y+separate _separator "" y = y+separate _separator x "" = x+separate  separator x y  = x ++ separator ++ y  showList :: String -> (a -> String) -> [a] -> String-showList sep f [] = ""-showList sep f [e] = f e-showList sep f (e:es) = f e ++ sep ++ showList sep f es--- OR: showList sep f es = foldl separate "" $ map f es+showList _separator _ [] = ""+showList _separator f [e] = f e+showList  separator f (e:es) = f e ++ separator ++ showList separator f es+-- OR: showList separator f es = foldl separate "" $ map f es  hasDuplicate :: (Eq a) => [a] -> Bool hasDuplicate [] = False@@ -167,7 +171,7 @@  headMaybe :: [a] -> Maybe a headMaybe [] = Nothing-headMaybe (a:as) = Just a+headMaybe (a:_) = Just a  firstJust :: [Maybe a] -> Maybe a firstJust = headMaybe . compressMaybes@@ -180,7 +184,7 @@     Nothing -> firstJustM mms     Just{}  -> return m -mapOver :: (Functor f) => f a -> (a -> b) -> f b+for, mapOver :: (Functor f) => f a -> (a -> b) -> f b mapOver = flip fmap  for = mapOver@@ -204,6 +208,7 @@  instance Push a [[a]] where   push a (b:bs) = (a : b) : bs+  push _ []     = undefined  -- TOO HARD for ghc: -- instance Push a b => Push a [b] where
src/Warshall.hs view
@@ -21,17 +21,16 @@ import qualified Data.Map as Map import qualified Data.List as List -import Debug.Trace-import Util-+-- import Debug.Trace+-- import Util -traceSolve msg a = a -- trace msg a-traceSolveM msg = return () -- traceM msg-{--traceSolve msg a = trace msg a-traceSolveM msg = traceM msg--}+traceSolve :: String -> a -> a+traceSolve _msg = id+-- traceSolve = trace +traceSolveM :: Monad m => String -> m ()+traceSolveM _msg = return ()+-- traceSolveM = traceM  -- semi rings ---------------------------------------------------- @@ -59,7 +58,7 @@               deriving (Eq)  inc :: Weight -> Int -> Weight-inc Infinite   n = Infinite+inc Infinite   _ = Infinite inc (Finite k) n = Finite (k + n)  instance Show Weight where@@ -67,8 +66,8 @@   show Infinite   = "."  instance Ord Weight where-  a <= Infinite = True-  Infinite <= b = False+  _ <= Infinite = True+  Infinite <= _ = False   Finite a <= Finite b = a <= b  instance SemiRing Weight where@@ -112,6 +111,7 @@ type Scope   = RigidId -> Bool -- which rigid variables a flex may be instatiated to +infinite :: Rigid -> Bool infinite (RConst Infinite) = True infinite _ = False @@ -121,7 +121,7 @@ -- precondition: not the same rigid variable isBelow :: Rigid -> Weight -> Rigid -> Bool isBelow _ Infinite _ = True-isBelow _ n (RConst Infinite) = True+isBelow _ _ (RConst Infinite) = True -- isBelow (RConst Infinite)   n (RConst (Finite _)) = False isBelow (RConst (Finite i)) (Finite n) (RConst (Finite j)) = i + n <= j isBelow _ _ _ = False -- rigid variables are not related@@ -141,14 +141,16 @@ arc a k b = Arc a (Finite k) b  instance Show Constraint where-  show (NewFlex i s) = "SizeMeta(?" ++ show i ++ ")"+  show (NewFlex i _) = "SizeMeta(?" ++ show i ++ ")"   show (Arc v1 (Finite k) v2)     | k == 0 = show v1 ++ "<=" ++ show v2     | k < 0  = show v1 ++ "+" ++ show (-k) ++ "<=" ++ show v2     | otherwise  = show v1 ++ "<=" ++ show v2 ++ "+" ++ show k+  show _ = undefined  type Constraints = [Constraint] +emptyConstraints :: Constraints emptyConstraints = []  -- graph (matrix) ------------------------------------------------@@ -163,7 +165,7 @@  -- the empty graph: no nodes, edges are all undefined (infinity weight) initGraph :: SemiRing edgeLabel => Graph edgeLabel rigid flexScope-initGraph = Graph Map.empty Map.empty Map.empty 0 (\ x y -> ozero)+initGraph = Graph Map.empty Map.empty Map.empty 0 (\ _ _ -> ozero)  -- the Graph Monad, for constructing a graph iteratively type GM edgeLabel rigid flexScope = State (Graph edgeLabel rigid flexScope)@@ -371,12 +373,12 @@                 in  edge >= Finite 0)              [ (x,v) | x <- flexs, (RVar v) <- rigids ] --         inScope :: FlexId -> Rigid -> Bool-         inScope x (RConst _) = True-         inScope x (RVar v)   = case Map.lookup x (flexScope gr) of-                     Just scope -> scope v-                     Nothing    -> error $ "Warshall.inScope panic: flexible " ++ show x ++ " does not carry scope info when assigning it rigid variable " ++ show v+        -- UNUSED:+        --  inScope :: FlexId -> Rigid -> Bool+        --  inScope x (RConst _) = True+        --  inScope x (RVar v)   = case Map.lookup x (flexScope gr) of+        --              Just scope -> scope v+        --              Nothing    -> error $ "Warshall.inScope panic: flexible " ++ show x ++ " does not carry scope info when assigning it rigid variable " ++ show v  {- loop1 @@ -398,9 +400,9 @@                                    , m!(row,col)) of --                                Finite z | z <= 0 ->                                 (True, Finite z) ->-                                   let trunc z | z >= 0 = 0+                                   let trunc_z | z >= 0 = 0                                             | otherwise = -z-                                   in extendSolution sub f (sizeRigid r (trunc z))+                                   in extendSolution sub f (sizeRigid r (trunc_z))                                 _ -> sub                      ) subst flexs          loop1 [] subst = case flexs List.\\ (Map.keys subst) of@@ -415,8 +417,8 @@  -}          loop2 :: [FlexId] -> Solution -> Maybe Solution-         loop2 [] subst = Just subst-         loop2 (f:flxs) subst = loop3 0 subst+         loop2 []       = Just+         loop2 (f:flxs) = loop3 0            where row = fromJust $ Map.lookup (Flex f) (nodeMap gr)                  loop3 col subst | col >= n =                    -- default to infinity
+ test/GoldplateTests.hs view
@@ -0,0 +1,5 @@+import System.Exit     ( exitWith  )+import System.Process  ( system    )++main :: IO ()+main = exitWith =<< system ("goldplate test")
+ test/bugs/AgdaIssue1052.ma view
@@ -0,0 +1,47 @@++data Eq [A : Set] (a : A) (b : A) : Set+{ refl : Eq A a a }++fun X : Set {}+fun f : X -> X {}++data StepsTo (x, z : X) : Set+{ done : StepsTo x x+; next : (y : X) -> Eq X (f y) z -> StepsTo x y -> StepsTo x z+}++fun trans : (x, y, z : X) -> StepsTo x y -> StepsTo y z -> StepsTo x z+{ trans x y .y p done          = p+; trans x y  z p (next z' r q) = next z' r (trans x y z' p q)+}++fun const : (x, y : X) -> StepsTo x y -> Eq X (f x) x -> Eq X x y+{ const x .x done q = refl+-- ; const _ _  (next _ r p) q = -- TODO+}++fun bad : (x, y, z : X) -> StepsTo x z -> Eq X (f z) x -> StepsTo x y -> StepsTo y x+{ bad x y z (next z' p q) r s =+  next z r (bad z y _ (trans _ _ _ (next _ r done) q) p (trans _ _ _ (next _ r done) s))+}  -- Giving up, need unification!!++{-+data _=⟨_⟩⇒*_ {X : Set}(x : X)(f : X → X) : X → Set where+  done : x =⟨ f ⟩⇒* x+  next : ∀{y z} → f y ≡ z → x =⟨ f ⟩⇒* y → x =⟨ f ⟩⇒* z++trans* : ∀{X}{x y z}{f : X → X} → x =⟨ f ⟩⇒* y → y =⟨ f ⟩⇒* z → x =⟨ f ⟩⇒* z+trans* p done = p+trans* p (next r q) = next r (trans* p q)++const* : ∀{X}{x y}{f : X → X} → x =⟨ f ⟩⇒* y → f x ≡ x → x ≡ y+const* done q = refl+const* (next r p) q with const* p q+const* (next r p) q | refl = trans (sym q) r++bad : ∀{X}{x y z}{f : X → X} → x =⟨ f ⟩⇒* z → f z ≡ x → x =⟨ f ⟩⇒* y →+      y =⟨ f ⟩⇒* x+bad done p q rewrite const* q p = done+bad (next p q) r s =+  next r (bad (trans* (next r done) q) p (trans* (next r done) s))+-}
+ test/bugs/AgdaIssue1458.ma view
@@ -0,0 +1,32 @@+data Empty { e1 ; e2 }++fun absurd : [A : Set] -> Empty -> A+{}++data R (i : Size)+{ delay (force : [j < i] -> Empty & (Empty -> R j))+} fields force++fun d : [i : Size] -> (r : R i) -> [j < i] -> Empty+{ d i r j = case (r .force j) { (x,y) -> x } }++fun ifix : ([i : Size] -> R i -> Empty) -> [i : Size] -> R i+{ ifix f i .force j = f j (ifix f j) , absurd (R j) }++-- d i (ifix (\ i r -> f i (d i r)) i) j+-- = (\ i r -> f i (d i r)) j (ifix (\ i r -> f i (d i r)) j)+-- = f j (d j (ifix (\ i r -> f i (d i r)) j))++fun fix : (f : [i : Size] -> ([j < i] -> Empty) -> Empty)+  -> [i : Size] -> [j < i] -> Empty+{ fix f i = d i (ifix (\ i r -> f i (d i r)) i) }++-- fun f : [i : Size] -> ([j < i] -> Empty) -> Empty {}+-- eval let test = fix f # #++data Eq [A : Set](a : A) : A -> Set+{ refl : Eq A a a }++fun loop : (f : [i : Size] -> ([j < i] -> Empty) -> Empty) (x : Empty) ->+  Eq Empty (fix f # #) x -- (f # (d # (fix f # #)))+{ loop f x = refl }
+ test/fail.goldplate view
@@ -0,0 +1,9 @@+{ "command"           : "miniagda"+, "working_directory" : "fail"+, "input_files"       : "**/*.ma"+, "arguments"         : [ "${GOLDPLATE_INPUT_FILE}" ]+, "asserts"           :+    [ { "exit_code"   : 1 }+    , { "stdout"      : "${GOLDPLATE_INPUT_NAME}.err" }+    ]+}
test/fail/AccCoqTermination.ma view
@@ -8,27 +8,27 @@ data Acc ( A : Set) ( Lt : A -> A -> Set) : A -> Set {   acc :  (b : A) ->-        ((a : A) -> Lt a b -> Acc A Lt a) +        ((a : A) -> Lt a b -> Acc A Lt a)         -> Acc A Lt b-} +} -data Nat : Set  +data Nat : Set {-	zero : Nat ;-	succ : Nat -> Nat+        zero : Nat ;+        succ : Nat -> Nat }  {- R (S x) x  if x < 2- -} + -} data R : Nat -> Nat -> Set { r1 : (x : Nat) -> R (succ (succ x)) (succ zero)-; r2 : R (succ zero) zero -} +; r2 : R (succ zero) zero+}  {- fun succR : (n : Nat) -> R (succ n) n { succR zero = r2-; succR (succ n) = +; succR (succ n) = -}  let acc2 : (n : Nat) -> Acc Nat R (succ (succ n))@@ -50,19 +50,19 @@  let acc0 : Acc Nat R zero   = acc zero aux0- + fun accR : (n : Nat) -> Acc Nat R n { accR zero = acc0 ; accR (succ zero) = acc1-; accR (succ (succ n)) = acc2 n   +; accR (succ (succ n)) = acc2 n } -fun acc_dest : (n : Nat) -> (p : Acc Nat R n) -> +fun acc_dest : (n : Nat) -> (p : Acc Nat R n) ->                (m : Nat) -> R m n -> Acc Nat R m { acc_dest .n (acc n p) = p } -fun f : (x : Nat) -> Acc Nat R x -> Nat +fun f : (x : Nat) -> Acc Nat R x -> Nat { f x (acc .x p) = case x   { zero -> f (succ x) (p (succ x) r2)   ; (succ zero) -> f (succ x) (p (succ x) (r1 zero))@@ -71,7 +71,7 @@ }  -- In Coq, g and h are accepted by the termination checker-fun g : (x : Nat) -> [Acc Nat R x] -> Nat +fun g : (x : Nat) -> [Acc Nat R x] -> Nat { g x p = case x   { zero -> g (succ x) (acc_dest zero p (succ x) r2)   ; (succ zero) -> g (succ x) (acc_dest (succ zero) p (succ x) (r1 zero))@@ -80,7 +80,7 @@ } -- MiniAgda refuses g and h -fun h : (x : Nat) -> [Acc Nat R x] -> Nat +fun h : (x : Nat) -> [Acc Nat R x] -> Nat { h zero p = h (succ zero) (acc_dest zero p (succ zero) r2) ; h (succ zero) p = h (succ (succ zero)) (acc_dest (succ zero) p (succ (succ zero)) (r1 zero)) ; h (succ (succ y)) p = zero
test/fail/AccImplicit.ma view
@@ -1,23 +1,23 @@ data Acc ( A : Set) (Lt : A -> A -> Set) *(b : A) : Set { acc :  (accOut : (a : A) -> Lt a b -> Acc A Lt a) -> Acc A Lt b-} +} -data Nat : Set  -{ zero : Nat +data Nat : Set+{ zero : Nat ; succ : Nat -> Nat }  {- R (S x) x  if x < 2- -} + -} data R : Nat -> Nat -> Set { r1 : (x : Nat) -> R (succ (succ x)) (succ zero)-; r2 : R (succ zero) zero -} +; r2 : R (succ zero) zero+}  {- fun succR : (n : Nat) -> R (succ n) n { succR zero = r2-; succR (succ n) = +; succR (succ n) = -}  let acc2 : (n : Nat) -> Acc Nat R (succ (succ n))@@ -36,19 +36,19 @@  let acc0 : Acc Nat R zero   = acc aux0- + fun accR : (n : Nat) -> Acc Nat R n { accR zero = acc0 ; accR (succ zero) = acc1-; accR (succ (succ n)) = acc2 n   +; accR (succ (succ n)) = acc2 n } -fun acc_dest : [n : Nat] -> (p : Acc Nat R n) -> +fun acc_dest : [n : Nat] -> (p : Acc Nat R n) ->                (m : Nat) -> R m n -> Acc Nat R m { acc_dest n (acc p) = p } -fun f : (x : Nat) -> Acc Nat R x -> Nat +fun f : (x : Nat) -> Acc Nat R x -> Nat { f x (acc p) = case x   { zero -> f (succ x) (p (succ x) r2)   ; (succ zero) -> f (succ x) (p (succ x) (r1 zero))@@ -58,7 +58,7 @@  {- -- In Coq, g and h are accepted by the termination checker-fun g : (x : Nat) -> [Acc Nat R x] -> Nat +fun g : (x : Nat) -> [Acc Nat R x] -> Nat { g x p = case x   { zero -> g (succ x) (acc_dest zero p (succ x) r2)   ; (succ zero) -> g (succ x) (acc_dest (succ zero) p (succ x) (r1 zero))@@ -66,14 +66,14 @@   } } -fun h : (x : Nat) -> [Acc Nat R x] -> Nat +fun h : (x : Nat) -> [Acc Nat R x] -> Nat { h zero p = h (succ zero) (acc_dest zero p (succ zero) r2) ; h (succ zero) p = h (succ (succ zero)) (acc_dest (succ zero) p (succ (succ zero)) (r1 zero)) ; h (succ (succ y)) p = zero } -} -fun h : (x : Nat) -> [Acc Nat R x] -> Nat +fun h : (x : Nat) -> [Acc Nat R x] -> Nat { h zero (acc p) = h (succ zero) (p (succ zero) r2) ; h (succ zero) (acc p) = h (succ (succ zero)) (p (succ (succ zero)) (r1 zero)) ; h (succ (succ y)) p = zero@@ -84,7 +84,7 @@  so the forced match does not refine the type [Acc Nat R x] further. This means that h can be translated to case trees without any case on q,-it just uses the destructor. -} +it just uses the destructor. -}  eval let bla : Nat   = f zero acc0@@ -94,5 +94,5 @@ }  let p1 : (p : Acc Nat R zero) -> Id Nat (h zero p) (h zero acc0)-       = \ p -> refl +       = \ p -> refl {- In a case tree representation of h this would type check! -}
test/fail/BoundedFake.ma view
test/fail/CheatSubtypingPos.ma view
test/fail/D.ma view
@@ -2,7 +2,7 @@  -- this might be accepted without trustme in future versions?! trustme-data D : Set +data D : Set { abs : ^(^D -> D) -> D } 
test/fail/D1.ma view
@@ -2,12 +2,12 @@  -- this might be accepted without trustme in future versions?! trustme-data D : Set +data D : Set { abs : (^D -> D) -> D }  -- this must fail!-fun app : ^D -> ^D -> D  +fun app : ^D -> ^D -> D { app (abs f) d = f d } {- abs must not be characterized as a forced match!
test/fail/DescendAscend.ma view
test/fail/DescendAscend2.ma view
@@ -8,7 +8,7 @@ mutual {    fun f : Nat -> Nat -> Nat-  { +  {     f (succ n) m = f n (succ m) ; -- ADDING THIS LINE leads to success??     f (succ (succ (succ n))) m = plus (m) (g n n)   }
test/fail/DoNotEraseDataTeleForConTypes.ma view
test/fail/EndsCoInEmpty.ma view
@@ -2,7 +2,7 @@ -- Tried to trick MiniAgda into believing that an empty type is a tuple type -- but it did not follow me.  Good! -data Bool : Set +data Bool : Set { true  : Bool ; false : Bool }@@ -16,7 +16,7 @@ { exFalso A B () } -sized codata Stream ++(A : Set) : Size -> Set +sized codata Stream ++(A : Set) : Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A $i } @@ -26,4 +26,4 @@  fun anything : [A : Set] -> A { anything A = exFalso (EmptyOr (Stream Bool #) false) A (bla Bool #)-} +}
test/fail/Fib2.ma view
@@ -2,31 +2,31 @@  -- Nat --------------------------------------------------------------- -sized data SNat : Size -> Set +sized data SNat : Size -> Set { zero : [i : Size] -> SNat ($ i)-; succ : [i : Size] -> SNat i -> SNat ($ i) +; succ : [i : Size] -> SNat i -> SNat ($ i) }  let Nat : Set = SNat # -fun add : Nat -> Nat -> Nat +fun add : Nat -> Nat -> Nat { add (zero .#)   = \ y -> y ; add (succ .# x) = \ y -> succ # (add x y) }  -- Stream ------------------------------------------------------------ -sized codata Stream ++(A : Set) : -Size -> Set +sized codata Stream ++(A : Set) : -Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A ($ i) } fields head, tail  cofun zipWith : [A : Set] -> [B : Set] -> [C : Set] ->                 (A -> B -> C) -> [i : Size] ->-		Stream A i -> Stream B i -> Stream C i +                Stream A i -> Stream B i -> Stream C i {-  zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) = -	cons i (f a b)  (zipWith A B C f i as bs) +  zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) =+        cons i (f a b)  (zipWith A B C f i as bs) }  @@ -37,16 +37,16 @@  cofun fib : [i : Size] -> Stream Nat i {-  fib ($ i) = cons i n0 (zipWith Nat Nat Nat add i +  fib ($ i) = cons i n0 (zipWith Nat Nat Nat add i     (cons i n1 (fib i)) (fib i)) }  cofun fib2 : [i : Size] -> Stream Nat (i + i) {   fib2 ($ i) = -- RHS illtyped, produces only Stream Nat $(i + i)-    cons (i + i) n0 -      (zipWith Nat Nat Nat add (i + i) -        (cons (i + i) n1 (fib2 i)) +    cons (i + i) n0+      (zipWith Nat Nat Nat add (i + i)+        (cons (i + i) n1 (fib2 i))         (fib2 i)) } 
test/fail/FinBranchMutualWrong.ma view
test/fail/HOMatching.ma view
@@ -11,5 +11,5 @@ { lim : (A -> Lim A) -> Lim A } -fun bla : (A : Set) -> Lim A -> +fun bla : (A : Set) -> Lim A -> -}
test/fail/HetIdFoolingEta.ma view
@@ -1,10 +1,10 @@ data Id (A : Set) (a : A) : (B : Set) -> B -> Set 1-{ refl : Id A a A a +{ refl : Id A a A a }  -- this does not typecheck since f A a B b expands to *, not to refl let offDia : (f : (A : Set) -> (B : Set) -> (a : A) -> (b : B) -> Id A a B b) ->-             (A : Set) -> (B : Set) -> (a : A) -> (b : B) -> +             (A : Set) -> (B : Set) -> (a : A) -> (b : B) ->               Id (Id A B a b)  (f A B a b)-                 (Id A a A a)  (refl A a)  +                 (Id A a A a)  (refl A a)   = \ f -> \ A -> \ B -> \ a -> \ b -> refl (Id A a A a) (refl A a)
test/fail/IdFoolingEta.ma view
@@ -1,16 +1,16 @@-data Id (A : Set) (a : A) : A -> Set -{ refl : Id A a a +data Id (A : Set) (a : A) : A -> Set+{ refl : Id A a a } -fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> +fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b ->   (P : A -> Set) -> P a -> P b { subst A a .a (refl) P x = x }  -- this does not typecheck since f A a b expands to * but subst blocks let offDia : (f : (A : Set) -> (a : A) -> (b : A) -> Id A a b) ->-             (A : Set) -> (a : A) -> (b : A) -> -              Id (Id A a b) -               (f A a b) +             (A : Set) -> (a : A) -> (b : A) ->+              Id (Id A a b)+               (f A a b)                (subst A a b (f A a b) (Id A a) (refl))   = \ f -> \ A -> \ a -> \ b -> refl {- (Id A a b) (subst A a b (f A a b) (Id A a) (refl A a)) -}
test/fail/InjDataLoop.ma view
@@ -10,19 +10,19 @@  data Eq [i : Size](A : Set i)(a : A) : A -> Set { refl : Eq i A a a-} +}  data I (F : Set -> Set) : Set {}- + data InvI (A : Set) : Set 1 { inv : (Inverse : Set -> Set) -> Eq 1 Set (I Inverse) A -> InvI A-} +} -fun invertible : (A : Set) -> InvI A {}  -- postulate +fun invertible : (A : Set) -> InvI A {}  -- postulate  -- self-application on the type level let cantor : Set -> Set-= \ A -> case (invertible A) += \ A -> case (invertible A)   { (inv X p) -> X A -> Empty   } @@ -32,15 +32,15 @@ -- type checker loops! let delta : cIc = case (invertible (I cantor))-  { (inv {-.(I cantor)-} .cantor (refl {-.1 .Set .(I cantor)-}))  -> +  { (inv {-.(I cantor)-} .cantor (refl {-.1 .Set .(I cantor)-}))  ->    -- in the branch, cIc --> cIc -> Empty --> (cIc -> Empty) -> Empty -->...         \ f -> f f   }  let delta' : cIc -> Empty = case (invertible (I cantor))-  { (inv {-.(I cantor)-} .cantor (refl {-.Set .(I cantor)-})) -> -        \ f ->  f f            +  { (inv {-.(I cantor)-} .cantor (refl {-.Set .(I cantor)-})) ->+        \ f ->  f f   }  let omega : Empty
test/fail/InjDataLoop2.ma view
@@ -10,22 +10,22 @@  data Eq [i : Size](A : Set i)(a : A) : A -> Set { refl : Eq i A a a-} +}  data I (F : Set -> Set) : Set {}- + data InvI (A : Set) : Set 1-{ inv : (Inverse   : Set -> Set) -> -        (isInverse : Eq 1 Set (I Inverse) A) -> +{ inv : (Inverse   : Set -> Set) ->+        (isInverse : Eq 1 Set (I Inverse) A) ->         InvI A-} +} fields Inverse, isInverse -fun invertible : (A : Set) -> InvI A {}  -- postulate +fun invertible : (A : Set) -> InvI A {}  -- postulate  -- self-application on the type level let cantor : Set -> Set-= \ A -> Inverse (invertible A) A -> Empty += \ A -> Inverse (invertible A) A -> Empty   -- not using smart case here, gives a different message  let cIc : Set@@ -43,7 +43,7 @@ let delta' : cIc -> Empty = case (invertible (I cantor))   { (inv .cantor refl) ->-        \ f ->  f f            +        \ f ->  f f   }  let omega : Empty
test/fail/InvalidField.ma view
test/fail/InvalidSizeP.ma view
test/fail/IrrHeterogeneousEta.ma view
@@ -19,9 +19,9 @@  -- fails with "Bool -> Bool has different shape than Bool" fail-let etaFun' : +let etaFun' :     [F : [b : Bool] -> (T b -> T b) -> Bool -> Set] ->-    (g : F false (\ x -> x) true -> Bool) -> +    (g : F false (\ x -> x) true -> Bool) ->     (h : (a : Bool) -> F true (\ x y -> x y) a) ->     Bool   = \ F g h -> g (h true)@@ -35,9 +35,9 @@ -}  fail-let etaFun : +let etaFun :     [F : [b : Bool] -> (T b -> T b) -> Set] ->-    (g : F false (\ x -> x) -> Bool) -> +    (g : F false (\ x -> x) -> Bool) ->     (a : F true (\ x y -> x y)) ->     Bool   = \ F g a -> g a@@ -56,26 +56,26 @@ }  fail-let etaUnit' : +let etaUnit' :     [F : [b : Bool] -> (U b -> U b) -> Bool -> Set] ->-    (g : F false (\ x -> x) true -> Bool) -> +    (g : F false (\ x -> x) true -> Bool) ->     (h : (a : Bool) -> F true (\ x -> unit) a) ->     Bool   = \ F g h -> g (h true) -{- +{-     F false (\ x -> x) true ?= F true (\ x -> unit) true     x : Bool |- x : Bool    ?= x : Unit |- unit : Unit -} -let etaUnit : +let etaUnit :     [F : [b : Bool] -> (U b -> U b) -> Set] ->-    (g : F false (\ x -> x) -> Bool) -> +    (g : F false (\ x -> x) -> Bool) ->     (a : F true (\ x -> unit)) ->     Bool   = \ F g a -> g a -{- +{-     F false (\ x -> x) true ?= F true (\ x -> unit) true     x : Bool |- x : Bool    ?= x : Unit |- unit : Unit -}
test/fail/IrrHeterogeneousFun.ma view
@@ -18,32 +18,32 @@ ; T false = Bool } -fun good : +fun good :   [F : Nat -> Set] ->   [f : [b : Bool] -> ([T b] -> Nat) -> Nat] ->   (g : (n : Nat) -> F (f true (\ x -> n))) ->-  (h : F (f false (\ x -> zero)) -> Bool) -> +  (h : F (f false (\ x -> zero)) -> Bool) ->   Bool { good F f g h = h (g zero) } -let good' : +let good' :     [F : [b : Bool] -> ([T b] -> Nat) -> Set] ->-    (g : F false (\ x -> zero) -> Bool) -> +    (g : F false (\ x -> zero) -> Bool) ->     (h : (n : Nat) -> F true (\ x -> n)) ->     Bool   = \ F g h -> g (h zero)  -- fails with "Nat has different shape than Bool" trustme-let bad1 : +let bad1 :     [F : [b : Bool] -> (T b -> T b) -> Nat -> Set] ->-    (g : F false (\ x -> x) zero -> Bool) -> +    (g : F false (\ x -> x) zero -> Bool) ->     (h : (n : Nat) -> F true (\ x -> x) n) ->     Bool   = \ F g h -> g (h zero) -{- compare  +{- compare     F false (\ x -> x) zero ?= F true (\ x -> x) zero     x : Bool |- x : Bool    ?= x : Nat |- x : Nat -}@@ -52,14 +52,13 @@ { f true  x     =  x ; f false true  = false ; f false  false = true-} +}  -- this should of course fail-let bad2 : +let bad2 :     [F : [b : Bool] -> (T b -> T b) -> Nat -> Set] ->-    (g : F false (\ x -> f false x) zero -> Bool) -> +    (g : F false (\ x -> f false x) zero -> Bool) ->     (h : (n : Nat) -> F true (\ x -> f true x) n) ->     Bool   = \ F g h -> g (h zero)- 
test/fail/MeasureInTelescope.ma view
test/fail/MeasureInValue.ma view
@@ -1,10 +1,9 @@--- 2010-07-17 +-- 2010-07-17  -- measures can only appear in fun-decls -- caught by the scope-checker -fun f : (i,j : Size) -> |i| -> Set 1 +fun f : (i,j : Size) -> |i| -> Set 1 { f i j = |i| -> Set }- 
test/fail/MeasuresTypo.ma view
@@ -24,10 +24,10 @@   fun even' : [i : Size] -> |i,0|  -> Nat i -> Bool   { even' i (zero (i > j))   = true   ; even' i (succ (i > j) n) = odd' i n  -- typo here, should be j-  } +  }    fun odd'  : [i : Size] -> |i,0|  -> Nat i -> Bool   { odd' i (zero (i > j))   = false   ; odd' i (succ (i > j) n) = even j n-  } +  } }
test/fail/MixedMeasureLength.ma view
@@ -1,4 +1,4 @@--- 2010-07-17 +-- 2010-07-17  -- measured functions need to have the same length measure -- caught by the scope-checker
test/fail/MixedMeasuredUnmeasured.ma view
@@ -1,6 +1,6 @@--- 2010-07-17 +-- 2010-07-17 --- mixing measured functions with unmeasured is illegal, +-- mixing measured functions with unmeasured is illegal, -- caught by the scope-checker  mutual {
test/fail/MustBeCofun.ma view
@@ -1,6 +1,6 @@ -- 2010-08-18 -sized codata CoList (A : Set) : Size -> Set +sized codata CoList (A : Set) : Size -> Set { conil  : [i : Size] -> CoList A $i ; cocons : [i : Size] -> A -> CoList A i -> CoList A $i }
test/fail/MutualDataNotMon.ma view
@@ -2,7 +2,7 @@  mutual { -  data L +(A : Set) : Set +  data L +(A : Set) : Set   { l1 : A -> L A -> L A   ; l2 : T A -> L A   }
test/fail/MutualNeg.ma view
test/fail/MutualNeg2.ma view
test/fail/NatToSize.ma view
@@ -1,6 +1,6 @@ -- 2010-11-01 -data Nat : Set +data Nat : Set { zero : Nat ; suc : Nat -> Nat }
test/fail/NonLinearPatterns.ma view
test/fail/NonPosBoundedData.ma view
test/fail/NotForcedConstructors.ma view
@@ -16,4 +16,4 @@ fun f : (b : Bool) -> [Nat b] -> Bool { f true zero = true ; f false (succ n) = false-} +}
test/fail/NumbersAsIds.ma view
@@ -1,5 +1,5 @@ --2010-06-25 feature "numbers as ids" removed, numbers are now sizes-data 3 : Set +data 3 : Set { 0 : 3 ; 1 : 3 ; 2 : 3
test/fail/OverlappingPatternIndFam-sound.ma view
@@ -3,17 +3,17 @@ ; false : Bool } -data Id (A : Set) (a : A) : A -> Set -{ refl : Id A a a +data Id (A : Set) (a : A) : A -> Set+{ refl : Id A a a } -fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> +fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b ->   (P : A -> Set) -> P a -> P b { subst A a .a refl P x = x }  -- an overlapping ind. fam.-data DecEq (A : Set)(a : A) : A -> Set +data DecEq (A : Set)(a : A) : A -> Set { eq    : DecEq A a a ; notEq : (b : A) -> DecEq A a b }
test/fail/OverlappingPatternIndFam.ma view
@@ -1,4 +1,4 @@--- 2009-09-19 +-- 2009-09-19 -- unsound eta-expansion as noted by Anton Setzer  data Bool : Set@@ -6,17 +6,17 @@ ; false : Bool } -data Id (A : Set) (a : A) : A -> Set -{ refl : Id A a a +data Id (A : Set) (a : A) : A -> Set+{ refl : Id A a a } -fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> +fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b ->   (P : A -> Set) -> P a -> P b { subst A a .a (refl) P x = x }  -- an overlapping ind. fam.-data DecEq (A : Set)(a : A) : A -> Set +data DecEq (A : Set)(a : A) : A -> Set { eq    : DecEq A a a ; notEq : (b : A) -> DecEq A a b }@@ -24,12 +24,12 @@ -- every function into DecEq is the constant notEq one -- that is provable in the current implementation of eta, but is unsound let offDiag : (A : Set) -> (f : (a : A) -> (b : A) -> DecEq A a b) ->-              (a : A) -> (b : A) -> +              (a : A) -> (b : A) ->               Id (DecEq A a b) (f a b) (notEq A a b)   = \ A -> \ f -> \ a -> \ b -> refl -- (DecEq A a b) (notEq A a b)  -- let incons : (A : Set) -> (a : A) -> Id (DecEq A a a) (eq A a) (notEq A a a)---   = \ A -> \ a -> offDiag (\ A' -> \ a' -> \ b -> eq A' a') A a a +--   = \ A -> \ a -> offDiag (\ A' -> \ a' -> \ b -> eq A' a') A a a  fun f : (x : Bool) -> (y : Bool) -> DecEq Bool x y { f true true = eq Bool true
test/fail/ResurrectFromErasedPattern.ma view
@@ -11,4 +11,4 @@ fun f : (b : Bool) -> [Nat b] -> Nat false { f true zero = succ true zero ; f false (succ b n) = succ false (succ b n)-} +}
test/fail/SizedDataWrongPol.ma view
test/fail/StoreSize.ma view
@@ -1,4 +1,4 @@--- 2010-09-20 +-- 2010-09-20  data WrapSize : Set 1 { inn : (out : Size) -> WrapSize
test/fail/StreamDupl.ma view
@@ -1,9 +1,9 @@--- 2010-11-01 +-- 2010-11-01 -sized codata Stream ++(A : Set) : -Size -> Set +sized codata Stream ++(A : Set) : -Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A $i }- + cofun evens : [A : Set] -> [i, j : Size] -> Stream A (i + j) -> Stream A i { evens A ($i) j (cons .(i + j + 1) a (cons .(i + j) b as)) =    cons i a (evens A i as)
test/fail/StreamNotSemiCont.ma view
@@ -1,8 +1,8 @@ -- 2010-07-01  Following a question of Nisse, this example explains --   the need for continuity check. -data Unit : Set -{ unit : Unit +data Unit : Set+{ unit : Unit }  sized codata Stream +(A : Set) : Size -> Set@@ -16,5 +16,5 @@  let undef : Stream Unit # = bad # Unit (tail #) -eval let diverge : Unit = head # undef +eval let diverge : Unit = head # undef 
test/fail/Tm.ma view
@@ -4,15 +4,15 @@ { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A $i } fields head, tail -cofun iterate +cofun iterate   : [A : Set ] -> (step : A -> A) -> (start : A) ->     [i : Size] -> Stream A i { iterate A step start ($ i) = cons i start (iterate A step (step start) i) }-               + -- this might be accepted without trustme in future versions?! trustme-data Tm : Set +data Tm : Set { abs : ^(^Tm -> Tm) -> Tm ; app : ^Tm -> ^Tm -> Tm }@@ -30,12 +30,12 @@ fun step : Tm -> Tm { step (app (abs f) t) = f t ; step (app t u) = app (step t) u-; step (abs f)   = abs (\ x -> step (f x)) +; step (abs f)   = abs (\ x -> step (f x))   -- rejected, since x not parametric   -- think of f=id, then step would analyze x ! }  let steps : Tm -> Stream Tm #-  = \ start -> iterate Tm step start # +  = \ start -> iterate Tm step start #  eval let omegas : Stream Tm # = steps omega
test/fail/UlfsCounterexample.ma view
@@ -15,11 +15,11 @@  -- type checking fails with message "zero != false" -- can be harmful if constructors can be reused in different types-fun bad : +fun bad :   [F : Nat -> Set] ->   [f : [x : Bool] -> T x -> Nat] ->   (g : (n : Nat) -> F (f true n)) ->-  (h : F (f false false) -> Bool) -> +  (h : F (f false false) -> Bool) ->   Bool { bad F f g h = h (g zero) }
test/fail/UlfsCounterexample2.ma view
@@ -9,19 +9,19 @@ }  data T : Bool -> Set-{ nat  : Nat  -> T true +{ nat  : Nat  -> T true ; bool : Bool -> T false }  -- type checking fails with message "nat != bool" -- can be harmful if constructors can be reused in different types-fun bad : +fun bad :   [F : Nat -> Set] ->   ^(f : [x : Bool] -> T x -> Nat) ->   (g : (n : Nat) -> F (f true (nat n))) ->-  (h : F (f false (bool false)) -> Bool) -> +  (h : F (f false (bool false)) -> Bool) ->   Bool { bad F f g h = h (g zero) }--- 2010-10-01 now it is checked before that +-- 2010-10-01 now it is checked before that -- nat and bool are in the same family T
test/fail/VectorPatternNotForced.ma view
@@ -5,7 +5,7 @@  fun add : Nat -> Nat -> Nat { add zero     y = y-; add (succ x) y = succ (add x y) +; add (succ x) y = succ (add x y) }  data Vec (A : Set) : Nat -> Set@@ -18,7 +18,7 @@ ; length A .(succ n) (cons n a v) = succ (length A n v) } -fun head : [A : Set] -> [n : Nat] -> Vec A (succ n) -> A +fun head : [A : Set] -> [n : Nat] -> Vec A (succ n) -> A { head A .n (cons n a v) = a } fun tail : [A : Set] -> [n : Nat] -> Vec A (succ n) -> Vec A n@@ -26,7 +26,7 @@ }  fun zeroes : (n : Nat) -> Vec Nat n-{ zeroes zero     = nil +{ zeroes zero     = nil ; zeroes (succ x) = cons x zero (zeroes x) } 
test/fail/absurdPatUnit.ma view
test/fail/adm/adm1.ma view
@@ -8,7 +8,7 @@ -- size not used fun foo : (i : Size ) -> Nat i {---foo ($ i) = foo i -- subtyping +--foo ($ i) = foo i -- subtyping }  @@ -18,5 +18,4 @@ foo2 i (zero .i) = foo2 i (zero i); foo2 i (succ .i x) = Nat # }- 
test/fail/adm/adm2.ma view
test/fail/adm/adm3.ma view
@@ -1,4 +1,4 @@-data Maybe (A : Set) : Set +data Maybe (A : Set) : Set { nothing : Maybe A ; just : A -> Maybe A }@@ -13,7 +13,7 @@ fun bla : (i : Size ) -> SNat ($ i) -> SNat i { bla .($ i) (zero ($ i)) = zero i; -- no complete pattern matching-bla .i (succ i x) = x +bla .i (succ i x) = x } -- 2010-08-18 new error: successor pattern only allowed in cofun 
test/fail/bfSizePatternIncomplete.ma view
@@ -3,13 +3,13 @@   pair : A -> B -> Prod A B } -fun split : (A : Set) -> (B : Set) -> Prod A B ->  -            (C : Set) -> (A -> B -> C) -> C  +fun split : (A : Set) -> (B : Set) -> Prod A B ->+            (C : Set) -> (A -> B -> C) -> C {   split A B (pair a b) C f = f a b } -sized data List (+ A : Set) : Size -> Set +sized data List (+ A : Set) : Size -> Set {   nil  : (i : Size) -> List A ($ i) ;   cons : (i : Size) -> A -> List A i -> List A ($ i)@@ -29,35 +29,35 @@   fun step : (j : Size) -> (A : Set) -> (i : Size) ->-           List (Rose A ($ i)) j -> -           Prod (List A j) (List (Rose A i) #) +           List (Rose A ($ i)) j ->+           Prod (List A j) (List (Rose A i) #)  {-  step .($ j) A i (nil {- .(Rose A ($ i)) -} j) = +  step .($ j) A i (nil {- .(Rose A ($ i)) -} j) =     pair {- (List A _) (List (Rose A _) _) -}-      (nil _) +      (nil _)       (nil {- (Rose A i) -} _);    step .($ j) A .i (cons {- .(Rose A ($ i)) -} j (rose i a rs') rs) =-    split (List A j) (List (Rose A i) #) -       (step j A i rs) +    split (List A j) (List (Rose A i) #)+       (step j A i rs)           (Prod (List A ($ j)) (List (Rose A i) #))        (\ as -> \ rs'' -> pair {- (List A _) (List (Rose A _) #) -}-           (cons _ a as) -           (append (Rose A i) rs' rs'')) +           (cons _ a as)+           (append (Rose A i) rs' rs''))  }  -- 2010-08-18 new error: successor pattern only allowed in cofun-fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A # +fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A # {   bf' A ($ i) as (nil {-.(Rose A ($ i))-} .#) = as;-  bf' A ($ i) as (cons {-.(Rose A ($ i))-} .# r rs) = append A as +  bf' A ($ i) as (cons {-.(Rose A ($ i))-} .# r rs) = append A as     (split-        (List A #) (List (Rose A i) #) +        (List A #) (List (Rose A i) #)       (step # A i (cons {-(Rose A ($ i))-} _ r rs))-        (List A #) -      (bf' A i) +        (List A #)+      (bf' A i)     ) } 
test/fail/bfTypeNotAdmissible.ma view
@@ -3,13 +3,13 @@   pair : A -> B -> Prod A B } -fun split : (A : Set) -> (B : Set) -> Prod A B ->  -            (C : Set) -> (A -> B -> C) -> C  +fun split : (A : Set) -> (B : Set) -> Prod A B ->+            (C : Set) -> (A -> B -> C) -> C {   split A B (pair a b) C f = f a b } -sized data List (+ A : Set) : Size -> Set +sized data List (+ A : Set) : Size -> Set {   nil  : (i : Size) -> List A ($ i) ;   cons : (i : Size) -> A -> List A i -> List A ($ i)@@ -29,56 +29,56 @@   fun step : (j : Size) -> (A : Set) -> (i : Size) ->-           List (Rose A ($ i)) j -> -           Prod (List A j) (List (Rose A i) #) +           List (Rose A ($ i)) j ->+           Prod (List A j) (List (Rose A i) #)  {   step .($ j) A i (nil j) = pair (nil _) (nil _);    step .($ j) A .i (cons j (rose i a rs') rs) =-    split (List A j) (List (Rose A i) #) -       (step j A i rs) +    split (List A j) (List (Rose A i) #)+       (step j A i rs)           (Prod (List A ($ j)) (List (Rose A i) #))        (\ as -> \ rs'' -> pair-           (cons _ a as) -           (append (Rose A i) rs' rs'')) +           (cons _ a as)+           (append (Rose A i) rs' rs''))  } -fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A # +fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A # {   bf' A i as (nil .#) = as;-  bf' A .($ i) as (cons .# (rose i a r) rs) = append A as +  bf' A .($ i) as (cons .# (rose i a r) rs) = append A as     (split-        (List A #) (List (Rose A i) #) +        (List A #) (List (Rose A i) #)       (step # A i (cons  _ (rose _ a r) rs))-        (List A #) -      (bf' A i) +        (List A #)+      (bf' A i)     ) }  {- mutual { -  fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A # +  fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A #   {     bf' A ($ i) as (nil .(Rose A ($ i)) .#) = as;     bf' A ($ i) as (cons .(Rose A ($ i)) .# r rs) =       append A as (bf A i r rs)   }-  +   fun bf : (A : Set) -> (i : Size) -> Rose A i -> List (Rose A i) # -> List A #   {-  -    bf A i r rs = ++    bf A i r rs =       (split-          (List A #) (List (Rose A i) #) +          (List A #) (List (Rose A i) #)         (step # A i (cons (Rose A ($ i)) _ r rs))-          (List A #) -        (bf' A i) +          (List A #)+        (bf' A i)       )   }-  + }  -}
test/fail/bigData.ma view
@@ -1,6 +1,6 @@ -- 2010-06-25 removed Set:Set, so this should not pass -data Any : Set +data Any : Set { inn : (Out : Set) -> Any }  data Big : Set -> Set
test/fail/coSetOmega.ma view
@@ -2,7 +2,7 @@ { D ($ i) = D i -> D i } -let sapp : D # -> D # +let sapp : D # -> D #     = \ x -> x x  eval let omega : D # -> D #
test/fail/coSizeInFun.ma view
test/fail/codataNotMonotone.ma view
@@ -1,12 +1,12 @@ -- 2010-05-06 -sized data SNat : Size -> Set +sized data SNat : Size -> Set { zero : [i : Size] -> SNat ($ i)-; succ : [i : Size] -> SNat i -> SNat ($ i) +; succ : [i : Size] -> SNat i -> SNat ($ i) }  sized codata NatEq : (i : Size) -> SNat i -> SNat i -> Set { eqz : [i : Size] -> NatEq ($ i) (zero i) (zero i)-; eqs : [i : Size] -> (n : SNat i) -> (m : SNat i) -> +; eqs : [i : Size] -> (n : SNat i) -> (m : SNat i) ->    NatEq i n m -> NatEq ($ i) (succ i n) (succ i m) }
test/fail/codyPatternConditionExplicit.ma view
@@ -3,8 +3,8 @@    M below) does not allow to express the precise sizes in a deep    match involving a limit ordinal (see L below).  From this I could    construct a non-looping term in MiniAgda.- -   2010-03-09  ++   2010-03-09    This file tests whether the loop is still accepted after the fix.  -} @@ -42,21 +42,21 @@     ; (S .($ i) x) -> x     ; (L .($ i) g) -> g n     ; (M .($ i) a b) -> a-    } +    }  fun deep : [i : Size] -> O i -> Nat -> Nat-{ deep i4 -   (M (i4 > i3) -        (L (i3 > j2) f) -        (S (i3 > i2)  -             (S (i2 > i1) +{ deep i4+   (M (i4 > i3)+        (L (i3 > j2) f)+        (S (i3 > i2)+             (S (i2 > i1)                   (S (i1 > i) x)))) n   = deep ($$$ i) (M ($$ i) (L ($ i) (pre i f)) (S j2 (f n))) (succ (succ (succ n)))-; deep i x n = n   +; deep i x n = n }  -let four : Nat +let four : Nat   = succ (succ (succ (succ zero)))  eval let loop : Nat = deep # (M # (L # emb) (emb four)) four
test/fail/codyPatternConditionExplicit2.ma view
@@ -3,8 +3,8 @@    M below) does not allow to express the precise sizes in a deep    match involving a limit ordinal (see L below).  From this I could    construct a non-looping term in MiniAgda.- -   2010-03-09  ++   2010-03-09    This file tests whether the loop is still accepted after the fix.  -} @@ -42,22 +42,22 @@     ; (S .($ i) x) -> x     ; (L .($ i) g) -> g n     ; (M .($ i) a b) -> a-    } +    }  fun deep : [i : Size] -> O i -> Nat -> Nat-{ deep i4 -   (M (i4 > i3) -        (L (i3 > j2) f) -        (S (i3 > i2)  -             (S (i2 > i1) +{ deep i4+   (M (i4 > i3)+        (L (i3 > j2) f)+        (S (i3 > i2)+             (S (i2 > i1)                   (S (i1 > i) x)))) n                        -- illtyped! vv   = deep (max ($$$ i) ($$ j2)) (M (max ($$ i) ($ j2)) (L ($ i) (pre ($$ i) f)) (S j2 (f n))) (succ (succ (succ n)))       --   8          9        10        11       12-; deep i x n = n   +; deep i x n = n }  -let four : Nat +let four : Nat   = succ (succ (succ (succ zero)))  eval let loop : Nat = deep # (M # (L # emb) (emb four)) four
test/fail/cofunIntoBoolTimesStream.ma view
@@ -1,6 +1,6 @@ -- 2010-05-19 -data Bool : Set +data Bool : Set { true  : Bool ; false : Bool }@@ -11,7 +11,7 @@ fields fst, snd  sized codata BStr : Size -> Set-{ cons : [i : Size] -> (head : Bool) -> (tail : BStr i) -> BStr ($ i) +{ cons : [i : Size] -> (head : Bool) -> (tail : BStr i) -> BStr ($ i) } fields head, tail 
test/fail/cofunIntoStreamPlusStream.ma view
@@ -4,7 +4,7 @@ { unit : Unit } -data Bool : Set +data Bool : Set { true  : Bool ; false : Bool }@@ -20,12 +20,12 @@ }  sized codata BStr : Size -> Set-{ cons : [i : Size] -> (head : Bool) -> (tail : BStr i) -> BStr ($ i) +{ cons : [i : Size] -> (head : Bool) -> (tail : BStr i) -> BStr ($ i) }  -- this code needs to be rejected by the type checker! : -- a "function" returning the input stream plus its "last" bit-cofun idAndLast : [i : Size] -> BStr i -> Twice (BStr i) +cofun idAndLast : [i : Size] -> BStr i -> Twice (BStr i) { idAndLast ($ i) (cons .i b bs) = fmap (BStr i) (BStr ($ i))    (cons i b) (idAndLast i bs) }@@ -35,6 +35,6 @@ }  -- this will loop:-eval let last : Twice Unit = +eval let last : Twice Unit =   fmap (BStr #) Unit (\ x -> unit) (idAndLast # (trues #)) 
test/fail/countingBT.ma view
@@ -1,11 +1,11 @@-data BT : Set +data BT : Set { lf : BT ; node : BT -> BT -> BT }  mutual {  fun f : BT -> BT- { f (node l (node rl rr)) = g l rr + { f (node l (node rl rr)) = g l rr  }  fun g : BT -> BT -> BT  { g t u = f (node t u)
test/fail/countingMerge.ma view
@@ -9,7 +9,7 @@ }  data List : Set-{ nil  : List  +{ nil  : List ; cons : Nat -> List -> List } @@ -24,13 +24,13 @@   }   fun merge_aux : Nat -> List -> Nat -> List -> Bool -> List   { merge_aux x xs y ys true  = cons x (merge xs (cons y ys))-  ; merge_aux x xs y ys false = cons y (merge (cons x xs) ys) +  ; merge_aux x xs y ys false = cons y (merge (cons x xs) ys)   } } -{- this is not recognized terminating since +{- this is not recognized terminating since    cons y ys  is in no relation with y or ys -its size is max(y,ys) + 1, but we do not honor max in termination checking +its size is max(y,ys) + 1, but we do not honor max in termination checking -}
test/fail/dataNotMonotone.ma view
@@ -7,4 +7,4 @@  sized data NotMon (A : Set) : Size -> Set { consBla : (i : Size) -> Stream A i -> NotMon A i -> NotMon A ($ i)-} +}
test/fail/erased1.ma view
@@ -1,5 +1,5 @@ -- invalid use of erased data -let id : (A : Set) -> [A] -> A +let id : (A : Set) -> [A] -> A        = \ A -> \ x -> x 
test/fail/f_x_is_f_0.ma view
@@ -7,5 +7,5 @@  fun f : (i : Size) -> SNat i -> SNat # {-f ($ ($ i)) x = f ($ i) (zero i) +f ($ ($ i)) x = f ($ i) (zero i) }
test/fail/fibStream.ma view
@@ -1,7 +1,7 @@  data Nat : Set {   zero : Nat;-  succ : Nat -> Nat +  succ : Nat -> Nat }  fun add : Nat -> Nat -> Nat {@@ -12,7 +12,7 @@ sized codata Stream (+ A : Set) : Size -> Set {   cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }- + fun tail : (A : Set) -> (i : Size) -> Stream A ($ i) -> Stream A i {   tail A i (cons .i x xs) = xs@@ -20,10 +20,10 @@  cofun zipWith : (A : Set) -> (B : Set) -> (C : Set) ->                 (A -> B -> C) -> (i : Size) ->-		Stream A i -> Stream B i -> Stream C i +                Stream A i -> Stream B i -> Stream C i {-  zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) = -	cons i (f a b)  (zipWith A B C f i as bs) +  zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) =+        cons i (f a b)  (zipWith A B C f i as bs) }  let n0 : Nat = zero
test/fail/hang2.ma view
@@ -2,7 +2,7 @@ { } -mutual +mutual {  fun F : Empty -> Empty@@ -10,7 +10,7 @@ F x = F x } --- should this scope check ? +-- should this scope check ? fun f  : Empty -> Empty { f x = f (F x)
test/fail/huetHullotReverse.ma view
@@ -1,43 +1,43 @@ data Enum : Set {-	aa : Enum ;-	bb : Enum ; -	cc : Enum +        aa : Enum ;+        bb : Enum ;+        cc : Enum } -data List ( A : Set ) : Set +data List ( A : Set ) : Set {  nil : List A;-cons : A -> List A -> List A   +cons : A -> List A -> List A } -let list : List Enum = cons aa (cons bb (cons cc (nil ))) -mutual +let list : List Enum = cons aa (cons bb (cons cc (nil )))+mutual { -	fun rev : ( A : Set ) -> List A  -> List A -	{+        fun rev : ( A : Set ) -> List A  -> List A+        { -	rev A (nil ) = nil ;-	rev A (cons x xs) = cons (rev1 A x xs) (rev2 A x xs)+        rev A (nil ) = nil ;+        rev A (cons x xs) = cons (rev1 A x xs) (rev2 A x xs) -	}+        } -	fun rev1 : ( A : Set ) -> A -> List A -> A-	{+        fun rev1 : ( A : Set ) -> A -> List A -> A+        { -	rev1 A a (nil ) = a; -	rev1 A a (cons x xs) = rev1 A x xs+        rev1 A a (nil ) = a;+        rev1 A a (cons x xs) = rev1 A x xs -	}+        } -	fun rev2 : (A : Set ) -> A -> List A -> List A -	{+        fun rev2 : (A : Set ) -> A -> List A -> List A+        { -	rev2 A a (nil ) = nil ;-	rev2 A a (cons x xs) = rev A (cons a (rev A (rev2 A x xs)))	-	}+        rev2 A a (nil ) = nil ;+        rev2 A a (cons x xs) = rev A (cons a (rev A (rev2 A x xs)))+        } }  let revlist : List Enum = rev Enum list
test/fail/incompleteSizePattern2.ma view
test/fail/inconsistentAssumption.ma view
@@ -1,7 +1,7 @@ sized data SNat : Size -> Set {-	zero : (i : Size) -> SNat ($ i);-	succ : (i : Size) -> SNat i -> SNat ($ i)+        zero : (i : Size) -> SNat ($ i);+        succ : (i : Size) -> SNat i -> SNat ($ i) }  data Eq (A : Set) (a : A) : A -> Set@@ -22,17 +22,17 @@ }  -let loop : (ass : (i : Size) -> Eq Size ($ i) i) -> SNat # -         = \ ass -> h ass # (zero #) +let loop : (ass : (i : Size) -> Eq Size ($ i) i) -> SNat #+         = \ ass -> h ass # (zero #)  --- the following program has to be rejected +-- the following program has to be rejected -- because of incomplete pattern matching fun g : (ass : (i : Size) -> Eq Size ($ i) i) -> (i : Size) -> SNat i -> SNat # {   g ass ($ i) x = g ass i (subst Size SNat ($ i) i (ass i) x) } --- let  yy : (ass : (i : Size) -> Eq Size ($ i) i) -> ---	     Eq (SNat #) (zero #) (g ass # (zero #)) +-- let  yy : (ass : (i : Size) -> Eq Size ($ i) i) ->+--           Eq (SNat #) (zero #) (g ass # (zero #)) --         = \ ass -> refl (SNat #) (zero #)
test/fail/inconsistentAssumption2.ma view
@@ -1,7 +1,7 @@ sized data SNat : Size -> Set {-	zero : (i : Size) -> SNat ($ i);-	succ : (i : Size) -> SNat i -> SNat ($ i)+        zero : (i : Size) -> SNat ($ i);+        succ : (i : Size) -> SNat i -> SNat ($ i) }  data Eq (A : Set) (a : A) : A -> Set@@ -24,9 +24,9 @@ }  -let loop : (ass : (i : Size) -> Eq Size ($ i) i) -> SNat # -         = \ ass -> h ass # (zero #) +let loop : (ass : (i : Size) -> Eq Size ($ i) i) -> SNat #+         = \ ass -> h ass # (zero #) -let  yy : (ass : (i : Size) -> Eq Size ($ i) i) -> -	     Eq (SNat #) (zero #) (h ass # (zero #)) +let  yy : (ass : (i : Size) -> Eq Size ($ i) i) ->+             Eq (SNat #) (zero #) (h ass # (zero #))         = \ ass -> refl
test/fail/inductiveNotDotPattern.ma view
@@ -8,7 +8,7 @@ cofun bla : (i : Size ) -> SNat ($ i) -> SNat i { bla .($ i) (zero ($ i)) = zero _; -- no complete pattern matching-bla .i (succ i x) = x +bla .i (succ i x) = x }  fun loop : (i : Size ) -> (SNat i) -> Set
test/fail/lengthCoList.ma view
@@ -16,7 +16,7 @@ olist' ($ i) = cons i (zero #) (olist' i) } --- not allowed because no inductive argument with i +-- not allowed because no inductive argument with i fun length : [i : Size] -> [A : Set] -> Colist A i -> Nat i { length .($ i) A (nil i) = zero i ;@@ -40,7 +40,7 @@ cofun length2 : [i : Size] -> [A : Set] -> Colist A i -> CoNat i { length2 ($ i) A (nil .i) = cozero i;-length2 ($ i) A (cons .i a as) = cosucc i (length2 i A as) +length2 ($ i) A (cons .i a as) = cosucc i (length2 i A as) }  cofun omega' : [i : Size] -> CoNat i@@ -50,18 +50,18 @@  let omega : CoNat # = omega' # --- not ok because size not used in inductive argument +-- not ok because size not used in inductive argument -- fun convert1 : [i : Size] -> CoNat i -> Nat i -- { -- convert1 ($ i) (cozero .i) = zero i;--- convert1 ($ i) (cosucc i x) = succ i (convert1 i x) +-- convert1 ($ i) (cosucc i x) = succ i (convert1 i x) -- } --- ok +-- ok fun convert2 : [i : Size] -> Nat i -> CoNat i { convert2 ($ i) (zero .i) = cozero i;-convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) +convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) }  -- also ok@@ -81,6 +81,6 @@ cofun convert4 : [i : Size] -> Nat i -> CoNat i { convert4 ($ i) (zero .i) = cozero ($ i) ;-convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) +convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) } 
test/fail/lengthCoList2.ma view
@@ -12,11 +12,11 @@  let z : CoNat # = cozero # --- ok +-- ok fun convert2 : [i : Size] -> Nat i -> CoNat i { convert2 ($ i) (zero .i) = cozero i;-convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) +convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) }  -- NOT ok@@ -37,6 +37,6 @@ cofun convert4 : [i : Size] -> Nat i -> CoNat i { convert4 ($ i) (zero .i) = cozero ($ i) ;-convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) +convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) } 
test/fail/loopAdmStream-Nat.ma view
@@ -5,7 +5,7 @@ ; succ : Nat -> Nat } -sized codata Stream (+ A : Set) : Size -> Set +sized codata Stream (+ A : Set) : Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A ($ i) } fields head, tail@@ -14,7 +14,7 @@                        -> (Stream Nat j     -> Stream Nat #) { guard j g xs = g (cons j zero xs) }- + -- the type of f is not admissible cofun f : [i : Size] -> (Stream Nat i -> Stream Nat #) -> Stream Nat i { f ($ j) g = guard j g (f j (guard j g))@@ -23,14 +23,14 @@ -- LOOP! eval let loop : Nat = head # (f # (tail #)) -{- +{- -- the type of f is not admissible cofun f : (Stream Nat # -> Stream Nat #) ->   [i : Size] -> (Stream Nat i -> Stream Nat #) -> Stream Nat i-{ f h ($ j) g = h (g (cons j zero -    (f (\ x -> h (h x)) -       j -       (\ x -> g (cons j zero x))))) +{ f h ($ j) g = h (g (cons j zero+    (f (\ x -> h (h x))+       j+       (\ x -> g (cons j zero x))))) }  -}
test/fail/loopAdmStream-simplified.ma view
@@ -1,14 +1,14 @@ -- 2010-05-11 -sized codata StreamUnit : Size -> Set +sized codata StreamUnit : Size -> Set { cons : [i : Size] -> (tail : StreamUnit i) -> StreamUnit ($ i) } fields tail- + -- the type of f is not admissible cofun f : (StreamUnit # -> StreamUnit #) ->   (i : Size) -> (StreamUnit i -> StreamUnit #) -> StreamUnit i-{ f h ($ j) g = h (g (cons j (f (\ x -> h (h x)) j (\ x -> g (cons j x))))) +{ f h ($ j) g = h (g (cons j (f (\ x -> h (h x)) j (\ x -> g (cons j x))))) }  let bla : StreamUnit # = f (tail #) # (\ x -> x)
test/fail/loopAdmStream.ma view
@@ -1,19 +1,19 @@ -- 2010-05-11  data Unit : Set-{ unit : Unit +{ unit : Unit } -sized codata Stream (+ A : Set) : Size -> Set +sized codata Stream (+ A : Set) : Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A ($ i) } fields head, tail- + -- the type of f is not admissible cofun f : (Stream Unit # -> Stream Unit #) ->   (i : Size) -> (Stream Unit i -> Stream Unit #) -> Stream Unit i-{ f h ($ j) g = -    h (g (cons j unit (f (\ x -> h (h x)) j (\ x -> g (cons j unit x))))) +{ f h ($ j) g =+    h (g (cons j unit (f (\ x -> h (h x)) j (\ x -> g (cons j unit x))))) }  let bla : Stream Unit # = f (tail #) # (\ x -> x)
test/fail/loopBadTypesHidden.ma view
@@ -1,7 +1,7 @@ sized data SNat : Size -> Set {-	zero : (i : Size) -> SNat ($ i);-	succ : (i : Size) -> SNat i -> SNat ($ i)+        zero : (i : Size) -> SNat ($ i);+        succ : (i : Size) -> SNat i -> SNat ($ i) }  data Maybe (+ A : Set) : Set@@ -21,17 +21,17 @@  } -let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) -> Nat -> Maybe (SNat i) = +let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) -> Nat -> Maybe (SNat i) = \i -> \f -> \n -> shift_case i (f (succ # n))  let inc : Nat -> Maybe Nat = \n -> just (succ # n)  data Unit : Set {-	unit : Unit+        unit : Unit } -fun loopType : Unit -> Set +fun loopType : Unit -> Set { loopType unit = (i : Size) -> SNat i -> (Nat -> Maybe (SNat i)) -> Unit }@@ -43,20 +43,20 @@   -- hide bad types ....-mutual +mutual { -fun loop : (u : Unit) -> loopType u  +fun loop : (u : Unit) -> loopType u {-loop unit .($ i) (zero i) f = loop_case unit ($ i) f (f (zero i)); +loop unit .($ i) (zero i) f = loop_case unit ($ i) f (f (zero i)); loop unit .($ i) (succ i n) f = loop unit i n (shift i f) } -fun loop_case : (u : Unit) -> loopCaseType u +fun loop_case : (u : Unit) -> loopCaseType u { loop_case unit i       f (nothing) = unit; loop_case unit .($ i)  f (just  (zero i)) = unit;-loop_case unit .($ i)  f (just (succ i y)) = loop unit i y (shift i f) +loop_case unit .($ i)  f (just (succ i y)) = loop unit i y (shift i f) } } 
test/fail/loopBounded.ma view
@@ -5,7 +5,7 @@ data Maybe ++(A : Set) { nothing ; just (a : A) }  cofun Nat : +Size -> Set-{ Nat i = Maybe ([j < i] & Nat j) +{ Nat i = Maybe ([j < i] & Nat j) } pattern zero    = nothing pattern suc i n = just (i, n)@@ -22,7 +22,7 @@ } -} -fun wfix : [A : Size -> Set] (f : [i : Size] -> ([j < i] -> A j) -> A i)  +fun wfix : [A : Size -> Set] (f : [i : Size] -> ([j < i] -> A j) -> A i)   [i : Size]  -> |i| -> A i { wfix A f i = f i (wfix A f) }
test/fail/loopOldNoSizePattern.ma view
@@ -12,16 +12,16 @@  let Nat : Set = SNat # -fun shift_case : (i : Size) -> Maybe (SNat ($ i)) -> +fun shift_case : (i : Size) -> Maybe (SNat ($ i)) ->                                Maybe (SNat i) {   shift_case  i nothing           = nothing;   shift_case .i (just (zero i))   = nothing;-  shift_case .i (just (succ i x)) = just x  +  shift_case .i (just (succ i x)) = just x } -let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) -> -                           Nat -> Maybe (SNat i) = +let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) ->+                           Nat -> Maybe (SNat i) = \i -> \f -> \n -> shift_case i (f (succ # n))  let inc : Nat -> Maybe Nat = \n -> just (succ # n)@@ -31,21 +31,21 @@   unit : Unit } -mutual +mutual {-  +   fun loop : (i : Size) -> SNat i -> (Nat -> Maybe (SNat i)) -> Unit   {-    loop .($ i) (zero i)   f = loop_case ($ i) f (f (zero i)); +    loop .($ i) (zero i)   f = loop_case ($ i) f (f (zero i));     loop .($ i) (succ i n) f = loop i n (shift i f)   }-  -  fun loop_case : (i : Size) -> (Nat -> Maybe (SNat i)) -> ++  fun loop_case : (i : Size) -> (Nat -> Maybe (SNat i)) ->                                 Maybe (SNat i) -> Unit   {     loop_case i       f (nothing) = unit;     loop_case .($ i)  f (just (zero i)) = unit;-    loop_case .($ i)  f (just (succ i y)) = loop i y (shift i f) +    loop_case .($ i)  f (just (succ i y)) = loop i y (shift i f)   } } 
test/fail/loopTypesHiddenInData.ma view
@@ -1,7 +1,7 @@ sized data SNat : Size -> Set {-	zero : [i : Size] -> SNat ($ i);-	succ : [i : Size] -> SNat i -> SNat ($ i)+        zero : [i : Size] -> SNat ($ i);+        succ : [i : Size] -> SNat i -> SNat ($ i) }  data Maybe ( + A : Set ) : Set@@ -21,17 +21,17 @@  } -let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) -> Nat -> Maybe (SNat i) = +let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) -> Nat -> Maybe (SNat i) = \i -> \f -> \n -> shift_case i (f (succ # n))  let inc : Nat -> Maybe Nat = \n -> just (succ # n)  data Unit : Set {-	unit : Unit+        unit : Unit } -data loopType : Set +data loopType : Set { lt : [i : Size] -> SNat i -> (Nat -> Maybe (SNat i)) -> loopType }@@ -43,20 +43,20 @@   -- hide bad types ....-mutual +mutual {  fun loop : loopType -> Unit {-loop (lt .($ i) (zero i) f) = loop_case (lct ($ i) f (f (zero i))); +loop (lt .($ i) (zero i) f) = loop_case (lct ($ i) f (f (zero i))); loop (lt .($ i) (succ i n) f) = loop (lt i n (shift i f)) } -fun loop_case : loopCaseType -> Unit +fun loop_case : loopCaseType -> Unit { loop_case (lct i f (nothing) = unit; loop_case (lct .($ i)  f (just  (zero i))) = unit;-loop_case (lct .($ i)  f (just (succ i y))) = loop (lt i y (shift i f)) +loop_case (lct .($ i)  f (just (succ i y))) = loop (lt i y (shift i f)) } } 
test/fail/mapStream2.ma view
@@ -2,27 +2,27 @@ sized codata Stream (+ A : Set) : Size -> Set {   cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }- + data Nat : Set {   zero : Nat;-  succ : Nat -> Nat +  succ : Nat -> Nat }  -- THIS SHOULD NOT TYPECHECK!!-cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 .($ ($ i)) f (cons .($ i) u (cons i x xl)) = +map2 .($ ($ i)) f (cons .($ i) u (cons i x xl)) =   cons _ (f u) (cons _ (f x) (map2 _ f xl)) }  {- a better explanation why this does not work:  - the quantification  (i : Size) -> ... Stream Nat i  is a CoSize quant.-- disallow dot patterns for CoSize +- disallow dot patterns for CoSize -cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 ($ ($ i)) f (cons .Nat .($ i) u (cons .Nat .i x xl)) = +map2 ($ ($ i)) f (cons .Nat .($ i) u (cons .Nat .i x xl)) =   cons Nat _ (f u) (cons Nat _ (f x) (map2 _ f xl)) } 
test/fail/mapStream2sizeMatchDepth2.ma view
@@ -2,17 +2,17 @@ sized codata Stream (+ A : Set) : Size -> Set {   cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }- + data Nat : Set {   zero : Nat;-  succ : Nat -> Nat +  succ : Nat -> Nat }  {- -- This is now illegal since cosize patterns must be dotted in coconstructors.-cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 .($ ($ i)) f (cons .Nat .($ i) u (cons .Nat i x xl)) = +map2 .($ ($ i)) f (cons .Nat .($ i) u (cons .Nat i x xl)) =   cons Nat _ (f u) (cons Nat _ (f x) (map2 _ f xl)) } -}@@ -20,12 +20,12 @@ {- a better explanation why this does not work:  - the quantification  (i : Size) -> ... Stream Nat i  is a CoSize quant.-- disallow dot patterns for CoSize +- disallow dot patterns for CoSize -} -cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 ($ ($ i)) f (cons .Nat .($ i) u (cons .Nat .i x xl)) = +map2 ($ ($ i)) f (cons .Nat .($ i) u (cons .Nat .i x xl)) =   cons Nat _ (f u) (cons Nat _ (f x) (map2 _ f xl)) } 
test/fail/matchOnNatSuccI.ma view
@@ -8,7 +8,7 @@ -- size not used fun foo : (i : Size ) -> Nat i {---foo ($ i) = foo i -- subtyping +--foo ($ i) = foo i -- subtyping }  
test/fail/negativeFam.ma view
@@ -4,7 +4,7 @@   suc : Nat -> Nat } -data D : Nat -> Set +data D : Nat -> Set {   abs : (D zero -> D zero) -> D zero;   app : (n : Nat) -> D n -> D n -> D n
test/fail/notAdmMonotoneArg.ma view
@@ -6,8 +6,8 @@ data Unit : Set {   triv : Unit }- + cofun bla : (i : Size) -> (Stream Unit i -> Stream Unit i) -> Stream Unit i {- bla ($ i) f = f (cons Unit i triv (bla i f)) + bla ($ i) f = f (cons Unit i triv (bla i f)) }
test/fail/omegaInst.ma view
@@ -13,5 +13,5 @@ let bot [F : Size -> Set] (f : [j < #] -> F j) : F #   = f # -- DOUBTS: is this so bad after all?--- each descending chain f has a limit.  --- If # is that closure ordinal, this should be ok. +-- each descending chain f has a limit.+-- If # is that closure ordinal, this should be ok.
test/fail/onesStreamUnguarded.ma view
@@ -2,10 +2,10 @@ sized codata Stream (+ A : Set) : Size -> Set {   cons : [i : Size] -> A -> Stream A i -> Stream A ($ i) }- + data Nat : Set {   zero : Nat;-  succ : Nat -> Nat +  succ : Nat -> Nat }  -- the following needs to be rejected
test/fail/partialFunction.ma view
@@ -1,6 +1,6 @@ data Subset (A : Set) (P : A -> Set) : Set {-  put : (a : A) -> [P a] -> Subset A P +  put : (a : A) -> [P a] -> Subset A P }  data PFun (A : Set)(B : Set) : Set
test/fail/relevantArgErasedMagicVec.ma view
@@ -16,7 +16,7 @@  -- magic = abort  does not need the inhabitant p : Empty fun magic : [A : Set] -> [p : Empty] -> A-{ +{ }  data Unit : Set
test/fail/scolist_not_lsc1.ma view
@@ -13,7 +13,7 @@   cons : (i : Size ) -> A -> Colist A i -> Colist A ($ i) } --- not allowed because no inductive argument with i +-- not allowed because no inductive argument with i fun length : (i : Size ) -> (A : Set) -> Colist A i -> Nat i { length .($ i) A (nil i) = zero i ;@@ -32,7 +32,7 @@ cofun length2 : (i : Size ) -> ( A : Set ) -> Colist A i -> CoNat i { length2 .($ i) A (nil i) = cozero i;-length2 .($ i) A (cons i a as) = cosucc i (length2 i A as) +length2 .($ i) A (cons i a as) = cosucc i (length2 i A as) }  cofun omega' : ( i : Size ) -> CoNat i@@ -49,18 +49,18 @@  eval let diverge : Nat # = length # (Nat #) (olist' #) --- not ok because size not used in inductive argument +-- not ok because size not used in inductive argument -- fun convert1 : (i : Size ) -> CoNat i -> Nat i -- { -- convert1 .($ i) (cozero i) = zero i;--- convert1 .($ i) (cosucc i x) = succ i (convert1 i x) +-- convert1 .($ i) (cosucc i x) = succ i (convert1 i x) -- } --- ok +-- ok fun convert2 : ( i : Size ) -> Nat i -> CoNat i { convert2 .($ i) (zero i) = cozero i;-convert2 .($ i) (succ i x) = cosucc i (convert2 i x) +convert2 .($ i) (succ i x) = cosucc i (convert2 i x) }  -- also ok@@ -74,6 +74,6 @@ cofun convert4 : ( i : Size ) -> Nat i -> CoNat i { convert4 .($ i) (zero i) = cozero ($ i) ;-convert4 .($ i) (succ i x) = cosucc i (convert4 i x) +convert4 .($ i) (succ i x) = cosucc i (convert4 i x) } 
test/fail/scolist_not_lsc2.ma view
@@ -11,7 +11,7 @@   cons : (i : Size ) -> A -> Colist A i -> Colist A ($ i) } --- -- not allowed because no inductive argument with i +-- -- not allowed because no inductive argument with i -- fun length : (i : Size ) -> (A : Set) -> Colist A i -> Nat i -- { -- length .($ i) .A (nil A i) = zero i ;@@ -31,7 +31,7 @@ cofun length2 : (i : Size ) -> ( A : Set ) -> Colist A i -> CoNat i { length2 .($ i) A (nil i) = cozero i;-length2 .($ i) A (cons i a as) = cosucc i (length2 i A as) +length2 .($ i) A (cons i a as) = cosucc i (length2 i A as) }  cofun omega' : ( i : Size ) -> CoNat i@@ -49,18 +49,18 @@ -- Diverges: -- eval let diverge : Nat # = length # (Nat #) (olist' #) --- not ok because size not used in inductive argument +-- not ok because size not used in inductive argument -- fun convert1 : (i : Size ) -> CoNat i -> Nat i -- { -- convert1 .($ i) (cozero i) = zero i;--- convert1 .($ i) (cosucc i x) = succ i (convert1 i x) +-- convert1 .($ i) (cosucc i x) = succ i (convert1 i x) -- } --- ok +-- ok fun convert2 : ( i : Size ) -> Nat i -> CoNat i { convert2 .($ i) (zero i) = cozero i;-convert2 .($ i) (succ i x) = cosucc i (convert2 i x) +convert2 .($ i) (succ i x) = cosucc i (convert2 i x) }  -- also ok@@ -74,6 +74,6 @@ cofun convert4 : ( i : Size ) -> Nat i -> CoNat i { convert4 .($ i) (zero i) = cozero ($ i) ;-convert4 .($ i) (succ i x) = cosucc i (convert4 i x) +convert4 .($ i) (succ i x) = cosucc i (convert4 i x) } 
test/fail/shouldBeDotPattern_snat.ma view
@@ -1,7 +1,7 @@ sized data SNat : Size -> Set {-	zero : (i : Size) -> SNat ($ i);-	succ : (i : Size) -> SNat i -> SNat ($ i)+        zero : (i : Size) -> SNat ($ i);+        succ : (i : Size) -> SNat i -> SNat ($ i) }  let z : SNat # = zero #@@ -15,8 +15,8 @@ fun add : (i : Size) -> (j : Size) -> SNat i -> SNat j -> SNat # { -add ($ i) j (zero .i) y = y; -add ($ i) j (succ .i x) y = succ # (add i j x y) +add ($ i) j (zero .i) y = y;+add ($ i) j (succ .i x) y = succ # (add i j x y)  } @@ -34,7 +34,7 @@  let min4_2 : SNat # = minus # #  four two --- not structurally recursive without sizes ... +-- not structurally recursive without sizes ... fun div : (i : Size) -> (j : Size) ->  SNat i -> SNat j -> SNat i { @@ -59,7 +59,7 @@ { gcd ($ i)  j    (zero .i)    y         = y ; gcd  i    ($ j)  x         (zero .j)   = x ;-gcd ($ i) ($ j) (succ .i x) (succ .j y) = +gcd ($ i) ($ j) (succ .i x) (succ .j y) =     compare i j x y (SNat #)                (gcd i ($ j) (minus i j x y) (succ j y))                (gcd ($ i) j (succ i x) (minus j i y x))
test/fail/singleton.ma view
@@ -1,6 +1,5 @@--- 2009-11-29 +-- 2009-11-29  let K : (A : Set) -> (x : A) -> (y : A) -> <x : A>       = \ A -> \ x -> \ y -> y - 
test/fail/stream.ma view
@@ -12,12 +12,12 @@ }  - + cofun lookbad : (i : Size ) -> Stream i {-lookbad ($ i) = -	first (Stream _) (Stream _) -	  (cons _ zero (lookbad _))+lookbad ($ i) =+        first (Stream _) (Stream _)+          (cons _ zero (lookbad _))           (lookbad _) } 
test/fail/streamMisc.ma view
@@ -1,7 +1,7 @@-data Nat : Set  +data Nat : Set {-	zero : Nat ;-	succ : Nat -> Nat+        zero : Nat ;+        succ : Nat -> Nat }  fun add : Nat -> Nat -> Nat@@ -12,7 +12,7 @@  eval let one : Nat = succ zero -sized codata Stream (A : Set) : Size -> Set +sized codata Stream (A : Set) : Size -> Set {   cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }@@ -21,7 +21,7 @@ { zeroes ($ i) = cons Nat i zero (zeroes i) }- + cofun ones : (i : Size) -> Stream Nat i { ones ($ i) = cons Nat i one (ones i)@@ -33,7 +33,7 @@           (A -> B) -> Stream A # -> Stream B i { map A B ($ i) f (cons .A .# a as) = cons B i (f a) (map A B i f as)-} +}  eval let twos : Stream Nat # = map Nat Nat # ( \ x -> succ x) ones' @@ -53,16 +53,16 @@ head A (cons .A .# a as) = a } -eval let two : Nat = head Nat twos +eval let two : Nat = head Nat twos eval let two' : Nat = head Nat twos'  eval let twos2 : Stream Nat # = map Nat Nat # ( \ x -> succ x) ones' eval let twos2' : Stream Nat # = tail Nat twos2  cofun zipWith : ( A : Set ) -> ( B : Set ) -> (C : Set) -> ( i : Size ) ->-	(A -> B -> C) -> Stream A # -> Stream B # -> Stream C i+        (A -> B -> C) -> Stream A # -> Stream B # -> Stream C i {-zipWith A B C ($ i) f (cons .A .# a as) (cons .B .# b bs) = +zipWith A B C ($ i) f (cons .A .# a as) (cons .B .# b bs) =   cons C i (f a b) (zipWith A B C i f as bs) } @@ -71,7 +71,7 @@ fun nth : Nat -> Stream Nat # -> Nat { nth zero ns = head Nat ns;-nth (succ x) ns = nth x (tail Nat ns) +nth (succ x) ns = nth x (tail Nat ns) }  eval let fours : Stream Nat # = zipWith Nat Nat Nat # add twos twos@@ -82,9 +82,9 @@ cofun fib : (x : Nat ) -> (y : Nat ) -> (i : Size ) -> Stream Nat i { fib x y ($ i) = (cons Nat ($ i) x (cons Nat i y (fib y (add x y) i)))-} +} -eval let fib' : Stream Nat # = tail Nat (fib zero zero #) +eval let fib' : Stream Nat # = tail Nat (fib zero zero #)   eval let fib8 : Nat = nth (add four four) (fib zero zero #)@@ -105,12 +105,12 @@ -- should be ok but does not pass admissibility check cofun wkStream_ok : ( A : Set ) -> (i : Size ) -> Stream A ($ i) -> Stream A i {-wkStream_ok A ($ i) (cons .A .($ i) x xs) = cons A i x (wkStream A i xs) +wkStream_ok A ($ i) (cons .A .($ i) x xs) = cons A i x (wkStream A i xs) }  -     ---bad ++--bad --not admissble cofun wkStream2 : ( A : Set ) -> ( i : Size ) -> Stream A i -> Stream A ($ i) {@@ -119,7 +119,7 @@   -- an unproductive stream-cofun unp : (i : Size ) -> Stream Nat i +cofun unp : (i : Size ) -> Stream Nat i { unp i = unp i }@@ -130,7 +130,7 @@ { unp2 ($ i) = cons Nat i zero (tail Nat (unp2 ($ i))) }--} +-}   --eval let bla2 : Nat = nth four (unp #)@@ -164,15 +164,15 @@ twozeroes (cons .Nat .# (succ x) str) = ff } -eval let twozeroes'zeroes : Bool = twozeroes (zeroes #) +eval let twozeroes'zeroes : Bool = twozeroes (zeroes #)  data Eq ( A : Set ) : A -> A -> Set {-refl : (a : A) -> Eq A a a +refl : (a : A) -> Eq A a a }  -- hangs on unproductive stream---  let zz : Eq (Stream Nat #) (unp #) (cons Nat # zero (unp #)) = refl (Stream Nat #) (unp #) +--  let zz : Eq (Stream Nat #) (unp #) (cons Nat # zero (unp #)) = refl (Stream Nat #) (unp #)  sized data Unit : Size -> Set {@@ -182,7 +182,6 @@ -- bad.  2010-03-10 WHY?  I think it is ok! fun head2 : (i : Size ) -> Unit i -> Stream Nat i -> Nat {-head2 .($ i) (unit i) (cons .Nat .i x xl) = x +head2 .($ i) (unit i) (cons .Nat .i x xl) = x }- 
test/fail/stream_x_is_cons_x_tail_x.ma view
@@ -1,7 +1,7 @@  data Nat : Set {   zero : Nat;-  succ : Nat -> Nat +  succ : Nat -> Nat }  let n0 : Nat = zero@@ -14,7 +14,7 @@ sized codata Stream (+ A : Set) : Size -> Set {   cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }- + fun tail : (A : Set) -> (i : Size) -> Stream A ($ i) -> Stream A i {   tail A i (cons .i x xs) = xs
test/fail/subtyping_erased.ma view
@@ -3,4 +3,4 @@  let id : [A : Set] -> ([A] -> A) -> (A -> A)        = \ A -> \ x -> x- +
test/fail/subtyping_erased_wrongdir.ma view
@@ -3,4 +3,4 @@  let id : [A : Set] -> (A -> A) -> ([A] -> A)        = \ A -> \ x -> x- +
test/fail/vec_eta.ma view
@@ -13,7 +13,7 @@ data Vec (+A : Set) : Nat -> Set {   vnil  : Vec A zero;-  vcons : (head : A) -> [n : Nat] -> (tail : Vec A n) -> Vec A (succ n)  +  vcons : (head : A) -> [n : Nat] -> (tail : Vec A n) -> Vec A (succ n) }  data Id (A : Set)(a : A) : A -> Set@@ -24,4 +24,3 @@                Id (Vec A n) v v'              = \ A -> \ n -> \ v -> \ v' -> refl -- (Vec A n) v - 
test/fail/vec_length.ma view
@@ -13,7 +13,7 @@ data Vec (+A : Set) : Nat -> Set {   vnil  : Vec A zero;-  vcons : A -> [n : Nat] -> Vec A n -> Vec A (succ n)  +  vcons : A -> [n : Nat] -> Vec A n -> Vec A (succ n) }  fun length : [A : Set] -> [n : Nat] -> Vec A n -> Nat
+ test/should-fail.goldplate view
@@ -0,0 +1,9 @@+{ "command"           : "miniagda"+, "working_directory" : "should-fail"+, "input_files"       : "*.ma"+, "arguments"         : [ "${GOLDPLATE_INPUT_FILE}" ]+, "asserts"           :+    [ { "exit_code"   : 0 }+    , { "stdout"      : "${GOLDPLATE_INPUT_NAME}.golden" }+    ]+}
+ test/should-fail/AgdaIssue1015.golden view
@@ -0,0 +1,25 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AgdaIssue1015.ma" ---+--- scope checking ---+--- type checking ---+type  D : -(i : Size) -> Set+term  D.inn : .[i : Size] -> ^(out : R i) -> < D.inn out : D i >+term  out : .[i : Size] -> (inn : D i) -> R i+{ out [i] (D.inn #out) = #out+}+type  R : -(i : Size) -> Set+term  R.delay : .[i : Size] -> ^(force : .[j < i] -> D j) -> < R.delay force : R i >+term  force : .[i : Size] -> (delay : R i) -> .[j < i] -> D j+{ force [i] (R.delay #force) = #force+}+term  inh : .[i : Size] -> R i+{ inh [i] .force [j < i] = D.inn (inh [j])+}+type  Empty : Set+term  elim : D # -> Empty+{ elim (D.inn r) = elim (r .force [#])+}+term  absurd : Empty+term  absurd = elim (D.inn (inh [#]))+--- evaluating ---+--- closing "AgdaIssue1015.ma" ---
+ test/should-fail/AgdaIssue1015.ma view
@@ -0,0 +1,26 @@+-- 2014-01-09++mutual {+  data D -(i : Size)+  { inn (out : R i) }++  data R -(i : Size)+  { delay (force : [j < i] -> D j)+  } fields force+}++fun inh : [i : Size] -> R i+{ inh i .force j = inn (inh j)+}++data Empty : Set {}++fun elim : D # -> Empty+{ elim (inn r) = elim (r .force #)+}++-- OLD comment:+-- Stack overflow because MiniAgda thinks D and R are not recursive+-- and does eta-expansion into all eternity++let absurd : Empty = elim (inn (inh #))
+ test/should-fail/AgdaIssue1015NonMutual.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AgdaIssue1015NonMutual.ma" ---+--- scope checking ---+--- type checking ---+type  R : -(i : Size) -> Set+term  R.delay : .[i : Size] -> ^(force : .[j < i] -> R j) -> < R.delay force : R i >+term  force : .[i : Size] -> (delay : R i) -> .[j < i] -> R j+{ force [i] (R.delay #force) = #force+}+term  inh : .[i : Size] -> R i+{ inh [i] .force [j < i] = inh [j]+}+type  Empty : Set+term  elim : R # -> Empty+{ elim (R.delay r) = elim (r [#])+}+term  absurd : Empty+term  absurd = elim (inh [#])+--- evaluating ---+--- closing "AgdaIssue1015NonMutual.ma" ---
+ test/should-fail/AgdaIssue1015NonMutual.ma view
@@ -0,0 +1,25 @@+-- 2014-01-09+-- Treating a type as both inductive and coinductive bears trouble...++data R -(i : Size)+{ delay (force : [j < i] -> R j)+} fields force++-- Coinductive interpretation:++fun inh : [i : Size] -> R i+{ inh i .force j = inh j+}++data Empty : Set {}++-- Inductive interpretation:++fun elim : R # -> Empty+{ elim (delay r) = elim (r #)+}++-- Trouble:++let absurd : Empty = elim (inh #)+
+ test/should-fail/StrictInfty.golden view
@@ -0,0 +1,23 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "StrictInfty.ma" ---+--- scope checking ---+--- type checking ---+type  D : Size -> Set+{ D i = .[j < i] -> |i| <= |$j| -> D j -> D j+}+term  app_ : .[i : Size] -> D $i -> D i -> D i+{ app_ [i] f = f [i]+}+term  app : D # -> D # -> D #+term  app = app_ [#]+term  abs_ : .[i : Size] -> (D i -> D i) -> D $i+{ abs_ [i] f [j < $i] x = f x+}+term  abs : (D # -> D #) -> D #+term  abs = abs_ [#]+term  delta : D #+term  delta = abs (\ x -> app x x)+term  Omega : D #+term  Omega = app delta delta+--- evaluating ---+--- closing "StrictInfty.ma" ---
+ test/should-fail/StrictInfty.ma view
@@ -0,0 +1,67 @@+-- 2013-04-02  Careful with $# = # !++cofun D : Size -> Set+{ D i = [j < i] -> |i| <= |$j| -> D j -> D j+}+-- This constrains j = $i.+--+-- Note that D # = [j < #] -> # <= $j -> D j -> D j+-- should never be usable, since there is no such j.+-- The quantifier [j < #] must not be instantiated with #,+-- since the body F j is not continuous in j, due to the+-- constraint # <= $j.+--+-- However, if MiniAgda does not honour that i < $i is only valid+-- for i < #, then we can create a looping program.++fun app_ : [i : Size] -> D $i -> D i -> D i+{ app_ i f = f i+}+-- Here, f of type+--+--   [j < $i] -> |$i| <= |$j| -> D j -> D j+--+-- is instantiated with i < $i,+-- which is invalid with for i = # under # = $#, to+--+--   |$i| <= |$i| -> D i -> D i+--+-- which is just  D i -> D i.+--+-- Thus app_ should only have type [i < #] -> D $i -> D i -> D i.+-- In this case, we could not make the following instantiation i = #.++let app : D # -> D # -> D # = app_ #++fun abs_ : [i : Size] -> (D i -> D i) -> D $i+{ abs_ i f j x = f x+}+-- Here, we have+--+--   j < $i+--   $i <= $j+--   f : D i -> D i+--   x : D j+--+-- Subtyping x   : D j <= D i  needs i = j+-- Subtyping f x : D i <= D j  needs i = j+--+-- i = j is derived from+--   $i <= $j which entails i <= j (valid)+--   j < $i   which entails j <= i (valid)+--+-- When introducing j < $i then $i <= $j is eagerly introduced into+-- the context.  Here, MiniAgda should complain since the latter+-- constraint is unsatisfiable if i = #.+--+-- Thus, abs_ should also be restricted to type [i < #],+-- making the following instantiation impossible.++let abs : (D # -> D #) -> D # = abs_ #++-- Now we can construct the usual counterexample to normalization of+-- untyped lambda-calculus.++let delta : D # = abs (\ x -> app x x)+let Omega : D # = app delta delta+-- evaluation of Omega loops
+ test/should-succeed.goldplate view
@@ -0,0 +1,9 @@+{ "command"           : "miniagda"+, "working_directory" : "should-succeed"+, "input_files"       : "*.ma"+, "arguments"         : [ "${GOLDPLATE_INPUT_FILE}" ]+, "asserts"           :+    [ { "exit_code"   : 1 }+    , { "stdout"      : "${GOLDPLATE_INPUT_NAME}.err" }+    ]+}
+ test/should-succeed/Umlaut.err view
@@ -0,0 +1,3 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Umlaut.ma" ---+--- scope checking ---
+ test/should-succeed/Umlaut.ma view
@@ -0,0 +1,1 @@+data Ä {}
+ test/succeed.goldplate view
@@ -0,0 +1,9 @@+{ "command"           : "miniagda"+, "working_directory" : "succeed"+, "input_files"       : "*.ma"+, "arguments"         : [ "${GOLDPLATE_INPUT_FILE}" ]+, "asserts"           :+    [ { "exit_code"   : 0 }+    , { "stdout"      : "${GOLDPLATE_INPUT_NAME}.golden" }+    ]+}
+ test/succeed/AbsurdMatchNonLin.golden view
@@ -0,0 +1,27 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AbsurdMatchNonLin.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  BB : ^ Bool -> Set+term  BB.tt : < BB.tt : BB Bool.true >+term  BB.ff : < BB.ff : BB Bool.false >+type  Empty : Set+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  True : Bool -> Set+{ True Bool.true = Unit+; True Bool.false = Empty+}+term  not : Bool -> Bool+{ not Bool.true = Bool.false+; not Bool.false = Bool.true+}+term  bla : (b : Bool) -> True b -> True (not b) -> BB b -> Empty+{ bla .Bool.false () x BB.ff+; bla .Bool.true x () BB.tt+}+--- evaluating ---+--- closing "AbsurdMatchNonLin.ma" ---
+ test/succeed/AccDestructorErasedIndex.golden view
@@ -0,0 +1,69 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AccDestructorErasedIndex.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type  R : ^ Nat -> ^ Nat -> Set+term  R.r1 : .[x : Nat] -> < R.r1 x : R (Nat.succ (Nat.succ x)) (Nat.succ Nat.zero) >+term  R.r2 : < R.r2 : R (Nat.succ Nat.zero) Nat.zero >+type  Acc : ^(A : Set) -> ^(Lt : A -> A -> Set) -> (b : A) -> Set+term  Acc.acc : .[A : Set] -> .[Lt : A -> A -> Set] -> .[b : A] -> ^(accParOut : (a : A) -> Lt a b -> Acc A Lt a) -> < Acc.acc accParOut : Acc A Lt b >+term  accParOut : .[A : Set] -> .[Lt : A -> A -> Set] -> (b : A) -> (acc : Acc A Lt b) -> (a : A) -> Lt a b -> Acc A Lt a+{ accParOut [A] [Lt] b (Acc.acc #accParOut) = #accParOut+}+term  acc_dest : (n : Nat) -> (p : Acc Nat R n) -> (m : Nat) -> R m n -> Acc Nat R m+{ acc_dest n (Acc.acc p) = p+}+term  acc2 : (n : Nat) -> Acc Nat R (Nat.succ (Nat.succ n))+term  acc2 = \ n -> Acc.acc (\ a -> \ p -> case p : R a (Nat.succ (Nat.succ n))+                              {})+term  aux1 : (a : Nat) -> (p : R a (Nat.succ Nat.zero)) -> Acc Nat R a+{ aux1 (Nat.succ (Nat.succ x)) (R.r1 [.x]) = acc2 x+}+term  acc1 : Acc Nat R (Nat.succ Nat.zero)+term  acc1 = Acc.acc aux1+term  aux0 : (a : Nat) -> (p : R a Nat.zero) -> Acc Nat R a+{ aux0 .(succ zero) R.r2 = acc1+}+term  acc0 : Acc Nat R Nat.zero+term  acc0 = Acc.acc aux0+term  accR : (n : Nat) -> Acc Nat R n+{ accR Nat.zero = acc0+; accR (Nat.succ Nat.zero) = acc1+; accR (Nat.succ (Nat.succ n)) = acc2 n+}+term  f : (x : Nat) -> Acc Nat R x -> Nat+{ f x (Acc.acc p) = case x : Nat+                    { Nat.zero -> f (Nat.succ x) (p (Nat.succ x) R.r2)+                    ; Nat.succ Nat.zero -> f (Nat.succ x) (p (Nat.succ x) (R.r1 [Nat.zero]))+                    ; Nat.succ (Nat.succ y) -> Nat.zero+                    }+}+term  h : (x : Nat) -> .[Acc Nat R x] -> Nat+{ h Nat.zero [Acc.acc [p]] = h (Nat.succ Nat.zero) [p (Nat.succ Nat.zero) R.r2]+; h (Nat.succ Nat.zero) [Acc.acc [p]] = h (Nat.succ (Nat.succ Nat.zero)) [p (Nat.succ (Nat.succ Nat.zero)) (R.r1 [Nat.zero])]+; h (Nat.succ (Nat.succ y)) [p] = Nat.zero+}+term  bla : Nat+term  bla = h Nat.zero [acc0]+type  Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+block fails as expected, error message:+p1+/// checkExpr 0 |- \ p -> refl : (p : Acc Nat R Nat.zero) -> Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// checkForced fromList [] |- \ p -> refl : (p : Acc Nat R Nat.zero) -> Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// new p : (Acc Nat R Nat.zero)+/// checkExpr 1 |- refl : Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// checkForced fromList [(p,0)] |- refl : Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// leqVal' (subtyping)  < Id.refl : Id Nat (h Nat.zero [p]) (h Nat.zero [p]) >  <=+  Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// leqVal' (subtyping)  Id Nat (h Nat.zero [p]) (h Nat.zero [p])  <=+  Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// leqVal'  h Nat.zero p  <=^  Nat.zero : Nat+/// leqApp: head mismatch h != Nat.zero+--- evaluating ---+acc0 has whnf (acc (aux0 Up ((a : Nat::Tm) -> (p : R a Nat.zero) -> Acc Nat R a)))+acc0 evaluates to acc (\ a~0 -> \ p~1 -> aux0 ~0 ~1)+bla has whnf (h zero acc0)+bla evaluates to h zero (Acc.acc (\ a~0 -> \ p~1 -> aux0 ~0 ~1))+--- closing "AccDestructorErasedIndex.ma" ---
test/succeed/AccDestructorErasedIndex.ma view
@@ -2,35 +2,35 @@ -- 2010-07-08 bug fixed -- 2012-01-22 parameters gone from constructors -data Nat : Set  -{ zero : Nat +data Nat : Set+{ zero : Nat ; succ : Nat -> Nat }  {- R (S x) x  if x < 2- -} + -} data R : Nat -> Nat -> Set { r1 : (x : Nat) -> R (succ (succ x)) (succ zero)-; r2 : R (succ zero) zero -} +; r2 : R (succ zero) zero+}  -- ERROR: data AccPar [A : Set](Lt : A -> A -> Set)(b : A) : Set data Acc (A : Set) (Lt : A -> A -> Set) *(b : A) : Set { acc :  (accParOut : (a : A) -> Lt a b -> Acc A Lt a) -> Acc A Lt b-} +}  {- 2011-04-23 does not work due to new polarities data AccOk (A : Set)(Lt : A -> A -> Set) : A -> Set { accOk :  [b : A] -> (accOkOut : (a : A) -> Lt a b -> AccOk A Lt a) -> AccOk A Lt b-} +} -- WAS: BUG -- destructor generation does not work if indices are not erased data Acc (A : Set) (Lt : A -> A -> Set) : A -> Set { acc :  (b : A) -> (accOut : (a : A) -> Lt a b -> Acc A Lt a) -> Acc A Lt b-} +} -} -fun acc_dest : (n : Nat) -> (p : Acc Nat R n) -> +fun acc_dest : (n : Nat) -> (p : Acc Nat R n) ->                (m : Nat) -> R m n -> Acc Nat R m { acc_dest n (acc p) = p }@@ -38,11 +38,11 @@ {- fun succR : (n : Nat) -> R (succ n) n { succR zero = r2-; succR (succ n) = +; succR (succ n) = -}  let acc2 : (n : Nat) -> Acc Nat R (succ (succ n))-  = \ n -> acc -- Nat R (succ (succ n)) +  = \ n -> acc -- Nat R (succ (succ n))              (\ a -> \ p -> case p {})  fun aux1 : (a : Nat) -> (p : R a (succ zero)) -> Acc Nat R a@@ -50,7 +50,7 @@ }  let acc1 : Acc Nat R (succ zero)-  = acc -- Nat R (succ zero) +  = acc -- Nat R (succ zero)         aux1  fun aux0 : (a : Nat) -> (p : R a zero) -> Acc Nat R a@@ -58,16 +58,16 @@ }  eval let acc0 : Acc Nat R zero-  = acc -- Nat R zero +  = acc -- Nat R zero         aux0- + fun accR : (n : Nat) -> Acc Nat R n { accR zero = acc0 ; accR (succ zero) = acc1-; accR (succ (succ n)) = acc2 n   +; accR (succ (succ n)) = acc2 n } -fun f : (x : Nat) -> Acc Nat R x -> Nat +fun f : (x : Nat) -> Acc Nat R x -> Nat { f x (acc {-.Nat .R .x-} p) = case x   { zero -> f (succ x) (p (succ x) r2)   ; (succ zero) -> f (succ x) (p (succ x) (r1 zero))@@ -77,7 +77,7 @@  {- -- In Coq, g and h are accepted by the termination checker-fun g : (x : Nat) -> [Acc Nat R x] -> Nat +fun g : (x : Nat) -> [Acc Nat R x] -> Nat { g x p = case x   { zero -> g (succ x) (acc_dest zero p (succ x) r2)   ; (succ zero) -> g (succ x) (acc_dest (succ zero) p (succ x) (r1 zero))@@ -85,7 +85,7 @@   } } -fun h : (x : Nat) -> [Acc Nat R x] -> Nat +fun h : (x : Nat) -> [Acc Nat R x] -> Nat { h zero p = h (succ zero) (acc_dest zero p (succ zero) r2) ; h (succ zero) p = h (succ (succ zero)) (acc_dest (succ zero) p (succ (succ zero)) (r1 zero)) ; h (succ (succ y)) p = zero@@ -93,7 +93,7 @@ -}  -- h needs to be rejected, Acc cannot be erased at compile-time!-fun h : (x : Nat) -> [Acc Nat R x] -> Nat +fun h : (x : Nat) -> [Acc Nat R x] -> Nat { h zero (acc {-.Nat .R .zero-} p) = h (succ zero) (p (succ zero) r2) ; h (succ zero) (acc {-.Nat .R .(succ zero)-} p) = h (succ (succ zero)) (p (succ (succ zero)) (r1 zero)) ; h (succ (succ y)) p = zero
+ test/succeed/AgdaIssue1052.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AgdaIssue1052.ma" ---+--- scope checking ---+--- type checking ---+type  Eq : .[A : Set] -> ^(a : A) -> ^(b : A) -> Set+term  Eq.refl : .[A : Set] -> .[a : A] -> .[a : A] -> < Eq.refl : Eq [A] a a >+type  X : Set+{}+none  f : X -> X+{}+type  StepsTo : ^(x : X) -> ^(z : X) -> Set+term  StepsTo.done : .[x : X] -> .[x : X] -> < StepsTo.done : StepsTo x x >+term  StepsTo.next : .[x : X] -> .[z : X] -> ^(y : X) -> ^(y1 : Eq [X] (f y) z) -> ^(y2 : StepsTo x y) -> < StepsTo.next y y1 y2 : StepsTo x z >+term  trans : (x : X) -> (y : X) -> (z : X) -> StepsTo x y -> StepsTo y z -> StepsTo x z+{ trans x y .y p StepsTo.done = p+; trans x y z p (StepsTo.next z' r q) = StepsTo.next z' r (trans x y z' p q)+}+term  const : (x : X) -> (y : X) -> StepsTo x y -> Eq [X] (f x) x -> Eq [X] x y+{ const x .x StepsTo.done q = Eq.refl+}+--- evaluating ---+--- closing "AgdaIssue1052.ma" ---
test/succeed/AgdaIssue1052.ma view
+ test/succeed/AgdaIssue1055.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AgdaIssue1055.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(n : Nat) -> < Nat.suc n : Nat >+term  p : (m : Nat) -> (n : Nat) -> (r : Nat) -> Nat+{ p m n (Nat.suc r) = p m r n+; p m (Nat.suc n) Nat.zero = p Nat.zero n m+; p m Nat.zero Nat.zero = m+}+--- evaluating ---+--- closing "AgdaIssue1055.ma" ---
test/succeed/AgdaIssue1055.ma view
+ test/succeed/AppendAddSize.golden view
@@ -0,0 +1,15 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AppendAddSize.ma" ---+--- scope checking ---+--- type checking ---+type  List : ^(A : Set) -> + Size -> Set+term  List.nil : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> List A s!ze+term  List.nil : .[A : Set] -> .[i : Size] -> < List.nil i : List A $i >+term  List.cons : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ List A i -> List A s!ze+term  List.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : List A i) -> < List.cons i y1 y2 : List A $i >+term  append : .[A : Set] -> .[i : Size] -> .[j : Size] -> List A i -> List A $j -> List A (i + j)+{ append [A] [i] [j] (List.nil [i' < i]) l = l+; append [A] [i] [j] (List.cons [i' < i] a as) l = List.cons [i' + j] a (append [A] [i'] [j] as l)+}+--- evaluating ---+--- closing "AppendAddSize.ma" ---
+ test/succeed/BelowLeInfty.golden view
@@ -0,0 +1,52 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "BelowLeInfty.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : +(i <= #) -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i <= #] -> < Nat.zero i : Nat $i >+term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^(n : Nat i) -> Nat s!ze+term  Nat.succ : .[i <= #] -> ^(n : Nat i) -> < Nat.succ i n : Nat $i >+term  sib00 : (.[i : Size] -> Nat i) -> .[i : Size] -> Nat i+term  sib00 = \ x -> x+term  sib01 : (.[i : Size] -> Nat i) -> .[i < #] -> Nat i+term  sib01 = \ x -> x+term  sib11 : (.[i < #] -> Nat i) -> .[i < #] -> Nat i+term  sib11 = \ x -> x+block fails as expected, error message:+sib10+/// checkExpr 0 |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i+/// checkForced fromList [] |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i+/// new x : (.[i < #] -> Nat i)+/// checkExpr 1 |- x : .[i : Size] -> Nat i+/// leqVal' (subtyping)  .[i < #] -> < x i : Nat i >  <=+  .[i : Size] -> Nat i+/// leqVal' (subtyping)  < #  <=-  Size+/// leSize # <- #+/// leSize: # < # failed+term  sub00 : (.[i <= #] -> Nat i) -> .[i <= #] -> Nat i+term  sub00 = \ x -> x+term  sub01 : (.[i <= #] -> Nat i) -> .[i < #] -> Nat i+term  sub01 = \ x -> x+term  sub11 : (.[i < #] -> Nat i) -> .[i < #] -> Nat i+term  sub11 = \ x -> x+block fails as expected, error message:+sub10+/// checkExpr 0 |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i+/// checkForced fromList [] |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i+/// new x : (.[i < #] -> Nat i)+/// checkExpr 1 |- x : .[i : Size] -> Nat i+/// leqVal' (subtyping)  .[i < #] -> < x i : Nat i >  <=+  .[i : Size] -> Nat i+/// leqVal' (subtyping)  < #  <=-  Size+/// leSize # <- #+/// leSize: # < # failed+term  sub1 : (.[i : Size] -> Nat i) -> .[i <= #] -> Nat i+term  sub1 = \ x -> x+term  sub2 : (.[i <= #] -> Nat i) -> .[i : Size] -> Nat i+term  sub2 = \ x -> x+type  MNat : +(i <= #) -> Set+term  MNat.mzero : .[s!ze : Size] -> .[i < s!ze] -> MNat s!ze+term  MNat.mzero : .[i : Size] -> < MNat.mzero i : MNat $i >+term  MNat.msucc : .[s!ze : Size] -> .[i < s!ze] -> ^(n : MNat i) -> MNat s!ze+term  MNat.msucc : .[i <= #] -> ^(n : MNat i) -> < MNat.msucc i n : MNat $i >+--- evaluating ---+--- closing "BelowLeInfty.ma" ---
test/succeed/BelowLeInfty.ma view
@@ -3,17 +3,17 @@ ; succ [i <= #] (n : Nat i) : Nat $i } -let sib00 : ([i : Size] -> Nat i) -> ([i : Size] -> Nat i)  = \ x -> x -let sib01 : ([i : Size] -> Nat i) -> ([i <  #] -> Nat i)  = \ x -> x +let sib00 : ([i : Size] -> Nat i) -> ([i : Size] -> Nat i)  = \ x -> x+let sib01 : ([i : Size] -> Nat i) -> ([i <  #] -> Nat i)  = \ x -> x let sib11 : ([i <  #] -> Nat i) -> ([i <  #] -> Nat i)  = \ x -> x -fail let sib10 : ([i <  #] -> Nat i) -> ([i : Size] -> Nat i)  = \ x -> x +fail let sib10 : ([i <  #] -> Nat i) -> ([i : Size] -> Nat i)  = \ x -> x -let sub00 : ([i <= #] -> Nat i) -> ([i <= #] -> Nat i)  = \ x -> x -let sub01 : ([i <= #] -> Nat i) -> ([i <  #] -> Nat i)  = \ x -> x +let sub00 : ([i <= #] -> Nat i) -> ([i <= #] -> Nat i)  = \ x -> x+let sub01 : ([i <= #] -> Nat i) -> ([i <  #] -> Nat i)  = \ x -> x let sub11 : ([i <  #] -> Nat i) -> ([i <  #] -> Nat i)  = \ x -> x -fail let sub10 : ([i <  #] -> Nat i) -> ([i <= #] -> Nat i)  = \ x -> x +fail let sub10 : ([i <  #] -> Nat i) -> ([i <= #] -> Nat i)  = \ x -> x  let sub1 : ([i : Size] -> Nat i) -> ([i <= #] -> Nat i)   = \ x -> x
+ test/succeed/BigWrap.golden view
@@ -0,0 +1,33 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "BigWrap.ma" ---+--- scope checking ---+--- type checking ---+ty-u  BigWrap : Set 1+term  BigWrap.inn : ^(out : Set) -> < BigWrap.inn out : BigWrap >+type  out : (inn : BigWrap) -> Set+{ out (BigWrap.inn #out) = #out+}+type  NotBig : ^ Set -> Set+term  NotBig.notBig : .[A : Set] -> < NotBig.notBig A : NotBig A >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+ty-u  NAT : Set 1+term  NAT.ZERO : < NAT.ZERO : NAT >+term  NAT.SUCC : ^(y0 : NAT) -> < NAT.SUCC y0 : NAT >+term  NATnat : NAT -> Nat+{ NATnat NAT.ZERO = Nat.zero+; NATnat (NAT.SUCC n) = Nat.succ (NATnat n)+}+type  Exists : Set+term  Exists.inEx : .[A : Set] -> ^(outEx : A) -> < Exists.inEx A outEx : Exists >+ty-u  EXISTS : Set 1+term  EXISTS.inEX : ^(OutType : Set) -> ^(outValue : OutType) -> < EXISTS.inEX OutType outValue : EXISTS >+type  OutType : (inEX : EXISTS) -> Set+{ OutType (EXISTS.inEX #OutType #outValue) = #OutType+}+term  outValue : (inEX : EXISTS) -> OutType inEX+{ outValue (EXISTS.inEX #OutType #outValue) = #outValue+}+--- evaluating ---+--- closing "BigWrap.ma" ---
+ test/succeed/BoundedQ.golden view
@@ -0,0 +1,21 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "BoundedQ.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : + Size -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term  Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+term  mySucc : .[i : Size] -> .[j < i] -> Nat j -> Nat i+{ mySucc [i] [j < i] n = Nat.succ [j] n+}+term  boundedId : .[i : Size] -> .[j <= i] -> (n : Nat j) -> Nat j+term  boundedId = [\ i ->] [\ j ->] \ n -> n+term  explicitCast : .[i : Size] -> .[j <= i] -> Nat j -> Nat i+term  explicitCast = [\ i ->] [\ j ->] \ n -> n+term  explicitCast' : .[i : Size] -> .[j : Size] -> |j| <= |i| -> Nat j -> Nat i+{ explicitCast' [i] [j] n = n+}+--- evaluating ---+--- closing "BoundedQ.ma" ---
+ test/succeed/BuiltinSigma.golden view
@@ -0,0 +1,36 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "BuiltinSigma.ma" ---+--- scope checking ---+--- type checking ---+term  fst' : .[A : Set] -> .[B : Set] -> (A & B) -> A+{ fst' [A] [B] (a, b) = a+}+term  snd' : .[A : Set] -> .[B : Set] -> (A & B) -> B+{ snd' [A] [B] (a, b) = b+}+term  swap : .[A : Set] -> .[B : Set] -> (A & B) -> B & A+term  swap = [\ A ->] [\ B ->] \ p -> (snd' [A] [B] p , fst' [A] [B] p)+term  reassoc' : .[A : Set] -> .[B : Set] -> .[C : Set] -> ((A & B) & C) -> A & B & C+{ reassoc' [A] [B] [C] ((a, b), c) = let bc : B & C+                                            = (b , c)+                                     in (a , bc)+}+term  reassoc'' : .[A : Set] -> .[B : Set] -> .[C : Set] -> ((A & B) & C) -> A & B & C+{ reassoc'' [A] [B] [C] ((a, b), c) = (a , (b , c))+}+term  reassoc3 : .[A : Set] -> .[B : Set] -> .[C : Set] -> .[D : Set] -> (((A & B) & C) & D) -> A & B & C & D+{ reassoc3 [A] [B] [C] [D] (((a, b), c), d) = (a , (b , (c , d)))+}+term  fst : .[A : Set] -> .[B : A -> Set] -> ((x : A) & B x) -> A+{ fst [A] [B] (a, b) = a+}+term  snd : .[A : Set] -> .[B : A -> Set] -> (p : (x : A) & B x) -> B (fst [A] [B] p)+{ snd [A] [B] (a, b) = b+}+term  curry : .[A : Set] -> .[B : A -> Set] -> .[C : (x : A) -> B x -> Set] -> ((p : (x : A) & B x) -> C (fst [A] [B] p) (snd [A] [B] p)) -> (x : A) -> (y : B x) -> C x y+term  curry = [\ A ->] [\ B ->] [\ C ->] \ f -> \ x -> \ y -> f (x , y)+term  uncurry : .[A : Set] -> .[B : A -> Set] -> .[C : (x : A) -> B x -> Set] -> ((x : A) -> (y : B x) -> C x y) -> (p : (x : A) & B x) -> C (fst [A] [B] p) (snd [A] [B] p)+{ uncurry [A] [B] [C] f (x, y) = f x y+}+--- evaluating ---+--- closing "BuiltinSigma.ma" ---
test/succeed/BuiltinSigma.ma view
@@ -13,7 +13,7 @@   = \ A B p -> (snd' A B p, fst' A B p)  fun reassoc' : (A, B, C : Set) -> (A & B) & C -> A & B & C-{ reassoc' A B C ((a , b) , c) = let bc : B & C = b , c in a , bc +{ reassoc' A B C ((a , b) , c) = let bc : B & C = b , c in a , bc }  fun reassoc'' : (A, B, C : Set) -> (A & B) & C -> A & B & C@@ -34,13 +34,13 @@ { snd A B (a, b) = b } -let curry : (A : Set) -> (B : A -> Set) -> (C : (x : A) -> B x -> Set) -> -   ((p : (x : A) & B x) -> C (fst A B p) (snd A B p)) -> -   ((x : A) -> (y : B x) -> C x y) +let curry : (A : Set) -> (B : A -> Set) -> (C : (x : A) -> B x -> Set) ->+   ((p : (x : A) & B x) -> C (fst A B p) (snd A B p)) ->+   ((x : A) -> (y : B x) -> C x y)   = \ A B C f x y -> f (x , y) -fun uncurry : (A : Set) -> (B : A -> Set) -> (C : (x : A) -> B x -> Set) -> -  ((x : A) -> (y : B x) -> C x y) -> +fun uncurry : (A : Set) -> (B : A -> Set) -> (C : (x : A) -> B x -> Set) ->+  ((x : A) -> (y : B x) -> C x y) ->   (p : (x : A) & B x) -> C (fst A B p) (snd A B p) { uncurry A B C f (x , y) = f x y }
+ test/succeed/CoFunReturnsProduct.golden view
@@ -0,0 +1,67 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "CoFunReturnsProduct.ma" ---+--- scope checking ---+--- type checking ---+type  Prod : ++(A : Set) -> ++(B : Set) -> Set+term  Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term  fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+type  Stream : ++(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(head : A) -> ^(tail : Stream A i) -> < Stream.cons i head tail : Stream A $i >+term  head : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> A+{ head [A] [i] (Stream.cons [.i] #head #tail) = #head+}+term  tail : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> Stream A i+{ tail [A] [i] (Stream.cons [.i] #head #tail) = #tail+}+type  Tree : ++(A : Set) -> - Size -> Set+term  Tree.leaf : .[A : Set] -> .[i : Size] -> < Tree.leaf i : Tree A $i >+term  Tree.node : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Tree A i) -> ^(y3 : Tree A i) -> < Tree.node i y1 y2 y3 : Tree A $i >+term  lab : .[i : Size] -> .[A : Set] -> .[B : Set] -> Tree A i -> Stream (Stream B #) i -> Prod (Tree B i) (Stream (Stream B #) i)+{ lab $[i < #] [A] [B] (Tree.leaf [.i]) bss = Prod.pair (Tree.leaf [i]) bss+; lab $[i < #] [A] [B] (Tree.node [.i] x l r) (Stream.cons [.i] (Stream.cons [.#] b bs) bss) = let pl : Prod (Tree B i) (Stream (Stream B #) i)+                                                                                                      = lab [i] [A] [B] l bss+                                                                                               in let pr : Prod (Tree B i) (Stream (Stream B #) i)+                                                                                                         = lab [i] [A] [B] r (snd pl)+                                                                                                  in Prod.pair (Tree.node [i] b (fst pl) (fst pr)) (Stream.cons [i] bs (snd pr))+}+term  label2 : .[i : Size] -> .[A : Set] -> .[B : Set] -> Tree A i -> Stream B # -> Stream (Stream B #) i+{ label2 $[i < #] [A] [B] t bs = snd (lab [$i] [A] [B] t (Stream.cons [i] bs (label2 [i] [A] [B] t bs)))+}+term  label : .[i : Size] -> .[A : Set] -> .[B : Set] -> Tree A i -> Stream B # -> Tree B i+{ label [i] [A] [B] t bs = fst (lab [i] [A] [B] t (Stream.cons [i] bs (label2 [i] [A] [B] t bs)))+}+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  Nat : Set+term  Nat.Z : < Nat.Z : Nat >+term  Nat.S : ^(y0 : Nat) -> < Nat.S y0 : Nat >+term  nats : .[i : Size] -> Nat -> Stream Nat i+{ nats $[i < #] n = Stream.cons [i] n (nats [i] (Nat.S n))+}+term  finTree : Nat -> Tree Unit #+{ finTree Nat.Z = Tree.leaf [#]+; finTree (Nat.S n) = Tree.node [#] Unit.unit (finTree n) (finTree n)+}+term  t0 : Tree Nat #+term  t0 = label [#] [Unit] [Nat] (finTree Nat.Z) (nats [#] Nat.Z)+term  t1 : Tree Nat #+term  t1 = label [#] [Unit] [Nat] (finTree (Nat.S Nat.Z)) (nats [#] Nat.Z)+term  t2 : Tree Nat #+term  t2 = label [#] [Unit] [Nat] (finTree (Nat.S (Nat.S Nat.Z))) (nats [#] Nat.Z)+term  t3 : Tree Nat #+term  t3 = label [#] [Unit] [Nat] (finTree (Nat.S (Nat.S (Nat.S Nat.Z)))) (nats [#] Nat.Z)+--- evaluating ---+t0 has whnf (lab # Unit Nat (finTree Z) {Stream.cons [i] bs (label2 [i] [A] [B] t bs) {bs = ((nats # Z) Up (Stream {Nat {i = #}} #)), t = (finTree Z), B = Nat, A = Unit, i = #}} .fst)+t0 evaluates to lab # Unit Nat (finTree Z) (Stream.cons # (nats # Z) (label2 # Unit Nat (finTree Z) (nats # Z))) .fst+t1 has whnf (lab # Unit Nat (finTree (S Z)) {Stream.cons [i] bs (label2 [i] [A] [B] t bs) {bs = ((nats # Z) Up (Stream {Nat {i = #}} #)), t = (finTree (S Z)), B = Nat, A = Unit, i = #}} .fst)+t1 evaluates to lab # Unit Nat (finTree (S Z)) (Stream.cons # (nats # Z) (label2 # Unit Nat (finTree (S Z)) (nats # Z))) .fst+t2 has whnf (lab # Unit Nat (finTree (S (S Z))) {Stream.cons [i] bs (label2 [i] [A] [B] t bs) {bs = ((nats # Z) Up (Stream {Nat {i = #}} #)), t = (finTree (S (S Z))), B = Nat, A = Unit, i = #}} .fst)+t2 evaluates to lab # Unit Nat (finTree (S (S Z))) (Stream.cons # (nats # Z) (label2 # Unit Nat (finTree (S (S Z))) (nats # Z))) .fst+t3 has whnf (lab # Unit Nat (finTree (S (S (S Z)))) {Stream.cons [i] bs (label2 [i] [A] [B] t bs) {bs = ((nats # Z) Up (Stream {Nat {i = #}} #)), t = (finTree (S (S (S Z)))), B = Nat, A = Unit, i = #}} .fst)+t3 evaluates to lab # Unit Nat (finTree (S (S (S Z)))) (Stream.cons # (nats # Z) (label2 # Unit Nat (finTree (S (S (S Z)))) (nats # Z))) .fst+--- closing "CoFunReturnsProduct.ma" ---
test/succeed/CoFunReturnsProduct.ma view
@@ -3,7 +3,7 @@ -- see Nils Anders Danielsson, Beating the Productivity Checker (PAR 2010, FLoC) -- 2012-01-22 parameters gone from constructors -data Prod (+ A : Set)(+ B : Set) : Set +data Prod (+ A : Set)(+ B : Set) : Set { pair : (fst : A) -> (snd : B) -> Prod A B } fields fst, snd @@ -11,7 +11,7 @@ { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A ($ i) } fields head, tail -sized codata Tree (+ A : Set) : Size -> Set +sized codata Tree (+ A : Set) : Size -> Set { leaf : [i : Size] -> Tree A ($ i) ; node : [i : Size] -> A -> Tree A i -> Tree A i -> Tree A ($ i) }@@ -19,40 +19,40 @@ -- this definition is fine since the result type is a product -- where each of its components is coinductive in i (TLCA, 2003) cofun lab : [i : Size] -> [A : Set] -> [B : Set] ->-   Tree A i -> Stream (Stream B #) i -> +   Tree A i -> Stream (Stream B #) i ->    Prod (Tree B i) (Stream (Stream B #) i) {-  lab ($ i) A B (leaf {-.A-} .i) bss = +  lab ($ i) A B (leaf {-.A-} .i) bss =     pair {- (Tree B ($ i)) (Stream (Stream B #) ($ i)) -} (leaf {-B-} i) bss -; lab ($ i) A B (node {-.A-} .i x l r) +; lab ($ i) A B (node {-.A-} .i x l r)     (cons {- .(Stream B #) -} .i (cons {-.B-} .# b bs) bss) =        -- recursive call on left subtree       let    pl   : Prod (Tree B i) (Stream (Stream B #) i)-                  = lab i A B l bss +                  = lab i A B l bss        -- recursive call on right subtree, threading the label stream-stream       in let pr   : Prod (Tree B i) (Stream (Stream B #) i)-                  = lab i A B r (snd {- (Tree B i) (Stream (Stream B #) i) -} pl) +                  = lab i A B r (snd {- (Tree B i) (Stream (Stream B #) i) -} pl)        in pair {- (Tree B ($ i)) (Stream (Stream B #) ($ i)) -}            (node {-B-} i b (fst {- (Tree B i) (Stream (Stream B #) i) -} pl)                        (fst {- (Tree B i) (Stream (Stream B #) i) -} pr))-           (cons {- (Stream B #) -} i bs +           (cons {- (Stream B #) -} i bs                        (snd {- (Tree B i) (Stream (Stream B #) i) -} pr)) }   -- this auxiliary function replaces the original circular program-cofun label2 : [i : Size] -> [A : Set] -> [B : Set] -> -  Tree A i -> Stream B # -> Stream (Stream B #) i +cofun label2 : [i : Size] -> [A : Set] -> [B : Set] ->+  Tree A i -> Stream B # -> Stream (Stream B #) i { label2 ($ i) A B t bs = snd {- (Tree B ($ i)) (Stream (Stream B #) ($ i)) -}     (lab ($ i) A B t (cons {- (Stream B #)-} i bs (label2 i A B t bs))) }  -- main program-fun label : [i : Size] -> [A : Set] -> [B : Set] -> +fun label : [i : Size] -> [A : Set] -> [B : Set] ->   Tree A i -> Stream B # -> Tree B i { label i A B t bs = fst {- (Tree B i) (Stream (Stream B #) i) -}    (lab i A B t (cons {-(Stream B #)-} i bs (label2 i A B t bs)))@@ -64,7 +64,7 @@ { unit : Unit } -data Nat : Set +data Nat : Set { Z : Nat ; S : Nat -> Nat }@@ -82,7 +82,4 @@ eval let t1 : Tree Nat # = label # Unit Nat (finTree (S Z)) (nats # Z) eval let t2 : Tree Nat # = label # Unit Nat (finTree (S (S Z))) (nats # Z) eval let t3 : Tree Nat # = label # Unit Nat (finTree (S (S (S Z)))) (nats # Z)--- 
+ test/succeed/ConorMcBrideCalco09inflationary.golden view
@@ -0,0 +1,49 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ConorMcBrideCalco09inflationary.ma" ---+--- scope checking ---+--- type checking ---+type  Map : (F : Set -> Set) -> Set 1+type  Map = \ F -> .[A : Set] -> .[B : Set] -> (A -> B) -> F A -> F B+type  Nu : (F : Set -> Set) -> -(i : Size) -> Set+{ Nu F i = .[j < i] -> F (Nu F j)+}+type  Inf : (G : Size -> Set) -> -(i : Size) -> Set+{ Inf G i = .[j < i] -> G j+}+term  usc : .[F : Set -> Set] -> (r : Inf (Nu F) #) -> Nu F #+term  usc = [\ F ->] \ r -> r [#]+term  toInf : .[F : Set -> Set] -> (r : Nu F #) -> Inf (Nu F) #+{ toInf [F] r [i < #] [j < i] = r [j]+}+type  All : (G : Size -> Set) -> Set+type  All = \ G -> .[i : Size] -> G i+term  fromAll : .[F : Set -> Set] -> (r : All (Nu F)) -> Nu F #+term  fromAll = [\ F ->] \ r -> r [#]+term  toAll : .[F : Set -> Set] -> (r : Nu F #) -> All (Nu F)+{ toAll [F] r [i] [j < i] = r [j]+}+term  postfp : .[F : Set -> Set] -> (r : Nu F #) -> F (Nu F #)+block fails as expected, error message:+postfp+/// clause 1+/// right hand side+/// checkExpr 2 |- r # : F (Nu (F ) #)+/// inferExpr' r #+/// checkApp (.[j < #] -> F (Nu F j){i = #, F = (v0 Up (Set -> Set))}) eliminated by #+/// leqVal' (subtyping)  < # : Size >  <=+  < #+/// leSize # <+ #+/// leSize: # < # failed+term  out : .[F : Set -> Set] -> .[i : Size] -> (r : Nu F $i) -> F (Nu F i)+term  out = [\ F ->] [\ i ->] \ r -> r [i]+term  inn : .[F : + Set -> Set] -> .[i : Size] -> F (Nu F i) -> Nu F $i+{ inn [F] [i] t [j < $i] = t+}+term  inn : .[F : + Set -> Set] -> .[i : Size] -> (t : F (Nu F i)) -> Nu F $i+term  inn = [\ F ->] [\ i ->] \ t -> [\ j ->] t+term  coit : .[F : + Set -> Set] -> (map : Map F) -> .[S : Set] -> (step : S -> F S) -> .[i : Size] -> (start : S) -> Nu F i+{ coit [F] map [S] step [i] = \ start -> [\ j ->] map [S] [Nu F j] (coit [F] map [S] step [j]) (step start)+}+term  caseNu : .[F : + Set -> Set] -> .[P : (i : Size) -> Nu F i -> Set] -> (f : .[i : Size] -> (t : F (Nu F i)) -> P $i (inn [F] [i] t)) -> .[i : Size] -> (x : Nu F $i) -> P $i x+term  caseNu = [\ F ->] [\ P ->] \ f -> [\ i ->] \ x -> f [i] (x [i])+--- evaluating ---+--- closing "ConorMcBrideCalco09inflationary.ma" ---
+ test/succeed/ConstructorTelescopes.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ConstructorTelescopes.ma" ---+--- scope checking ---+--- type checking ---+type  List : ++(A : Set) -> ++(i : Size) -> Set+term  List.nil : .[A : Set] -> .[i : Size] -> .[j < i] -> < List.nil j : List A i >+term  List.cons : .[A : Set] -> .[i : Size] -> .[j < i] -> ^(x : A) -> ^(xs : List A j) -> < List.cons j x xs : List A i >+type  SList : ++(A : Set) -> + Size -> Set+term  SList.snil : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> SList A s!ze+term  SList.snil : .[A : Set] -> .[i : Size] -> < SList.snil i : SList A $i >+term  SList.scons : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^(x : A) -> ^(xs : SList A i) -> SList A s!ze+term  SList.scons : .[A : Set] -> .[i : Size] -> ^(x : A) -> ^(xs : SList A i) -> < SList.scons i x xs : SList A $i >+--- evaluating ---+--- closing "ConstructorTelescopes.ma" ---
+ test/succeed/ConstructorVeiledTarget.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ConstructorVeiledTarget.ma" ---+--- scope checking ---+--- type checking ---+type  Id : ++(A : Set) -> Set+type  Id = \ A -> A+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Id Bool >+--- evaluating ---+--- closing "ConstructorVeiledTarget.ma" ---
+ test/succeed/DataTypesNotFamilies.golden view
@@ -0,0 +1,27 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DataTypesNotFamilies.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  List : ++(A : Set) -> Set+term  List.nil : .[A : Set] -> < List.nil : List A >+term  List.cons : .[A : Set] -> ^(head : A) -> ^(tail : List A) -> < List.cons head tail : List A >+type  Prod : ++(A : Set) -> ++(B : Set) -> Set+term  Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term  fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+type  Id : ^(a : Bool) -> ^ Bool -> Set+block fails as expected, error message:+Id+/// constructor Id.refl+/// new Id : (^(a : Bool::Tm) -> ^ Bool -> Set)+/// new a : Bool+/// inferExpr: expected Id a to be a type!+--- evaluating ---+--- closing "DataTypesNotFamilies.ma" ---
test/succeed/DataTypesNotFamilies.ma view
@@ -4,7 +4,7 @@  data List ++(A : Set) : Set { nil ; cons (head : A) (tail : List A)-} +}  record Prod ++(A, B : Set) : Set { pair (fst : A) (snd : B)
+ test/succeed/DeepMatch.golden view
@@ -0,0 +1,18 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DeepMatch.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.Z : < Nat.Z : Nat >+term  Nat.S : ^(y0 : Nat) -> < Nat.S y0 : Nat >+term  plus : Nat -> Nat -> Nat+{ plus Nat.Z m = m+; plus (Nat.S n) m = Nat.S (plus n m)+}+term  fib : Nat -> Nat+{ fib Nat.Z = Nat.S Nat.Z+; fib (Nat.S Nat.Z) = Nat.S Nat.Z+; fib (Nat.S (Nat.S n)) = plus (fib n) (fib (Nat.S n))+}+--- evaluating ---+--- closing "DeepMatch.ma" ---
test/succeed/DeepMatch.ma view
@@ -1,5 +1,5 @@ -data Nat : Set +data Nat : Set { Z : Nat ; S : Nat -> Nat }
+ test/succeed/DescendAscendTerm.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DescendAscendTerm.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  plus : Nat -> Nat -> Nat+{}+term  f : Nat -> Nat+term  g : Nat -> Nat -> Nat+{ f (Nat.succ (Nat.succ (Nat.succ n))) = g n n+}+{ g (Nat.succ n) m = plus (g n (Nat.succ m)) (f n)+}+--- evaluating ---+--- closing "DescendAscendTerm.ma" ---
test/succeed/DescendAscendTerm.ma view
+ test/succeed/DotPatternNotLeftToRightBinding.golden view
@@ -0,0 +1,25 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DotPatternNotLeftToRightBinding.ma" ---+--- scope checking ---+--- type checking ---+type  A : Set+{}+type  B : Set+{}+none  f : A -> A+{}+type  Fix : (a : A) -> ^ A -> Set+term  Fix.fix : .[a : A] -> < Fix.fix : Fix a (f a) >+term  eta : (a : A) -> (b : A) -> Fix a b -> Fix a b+{ eta a .(f a) Fix.fix = Fix.fix+}+none  bla : (b : A) -> (a : A) -> Fix a b -> A+{ bla .(f a) a Fix.fix = a+}+type  Inv : ^(g : A -> B) -> ^ B -> Set+term  Inv.mkInv : .[g : A -> B] -> ^(getInv : A) -> < Inv.mkInv getInv : Inv g (g getInv) >+none  getInv : (g : A -> B) -> (b : B) -> Inv g b -> A+{ getInv g .(g a) (Inv.mkInv a) = a+}+--- evaluating ---+--- closing "DotPatternNotLeftToRightBinding.ma" ---
test/succeed/DotPatternNotLeftToRightBinding.ma view
@@ -12,12 +12,12 @@ -- eta not definable unconditionally (like for Id) fun eta : (a, b : A) -> Fix a b -> Fix a b { eta a .(f a) (fix) = fix-} +}  -- variable a used in dot pattern left of its binding fun bla : (b, a : A) -> Fix a b -> A { bla .(f a) a (fix) = a-} +}  -- Function inverse @@ -27,7 +27,7 @@ -- MiniAgda does not generate destructor getInv  fun getInv : (g : A -> B) -> (b : B) -> Inv g b -> A-  { getInv g .(g a) (mkInv a) = a +  { getInv g .(g a) (mkInv a) = a   }  {- Analysis:
+ test/succeed/DottedConstructors.golden view
@@ -0,0 +1,68 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DottedConstructors.ma" ---+--- scope checking ---+--- type checking ---+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(n : Nat) -> < Nat.suc n : Nat >+term  plus : Nat -> Nat -> Nat+{ plus Nat.zero m = m+; plus (Nat.suc n) m = Nat.suc (plus n m)+}+type  List : ++(A : Set) -> Set+term  List.nil : .[A : Set] -> < List.nil : List A >+term  List.cons : .[A : Set] -> ^(x : A) -> ^(xs : List A) -> < List.cons x xs : List A >+type  Vec : ++(A : Set) -> ^(n : Nat) -> Set+term  Vec.vnil : .[A : Set] -> < Vec.vnil : Vec A Nat.zero >+term  Vec.vcons : .[A : Set] -> .[n : Nat] -> ^(vhead : A) -> ^(vtail : Vec A n) -> < Vec.vcons vhead vtail : Vec A (Nat.suc n) >+term  vhead : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> A+{ vhead [A] [n] (Vec.vcons #vhead #vtail) = #vhead+}+term  vtail : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> Vec A n+{ vtail [A] [n] (Vec.vcons #vhead #vtail) = #vtail+}+term  append : .[A : Set] -> .[n : Nat] -> .[m : Nat] -> Vec A n -> Vec A m -> Vec A (plus n m)+{ append [A] [.Nat.zero] [m] Vec.vnil ys = ys+; append [A] [.Nat.suc [n]] [m] (Vec.vcons x xs) ys = Vec.vcons x (append [A] [n] [m] xs ys)+}+type  Fin : ^(n : Nat) -> Set+term  Fin.fzero : .[n : Nat] -> < Fin.fzero : Fin (Nat.suc n) >+term  Fin.fsuc : .[n : Nat] -> ^(i : Fin n) -> < Fin.fsuc i : Fin (Nat.suc n) >+term  lookup : .[A : Set] -> .[n : Nat] -> (i : Fin n) -> (xs : Vec A n) -> A+{ lookup [A] [.Nat.zero] () Vec.vnil+; lookup [A] [.Nat.suc [n]] Fin.fzero (.Vec.vcons x xs) = x+; lookup [A] [.Nat.suc [n]] (Fin.fsuc i) (.Vec.vcons x xs) = lookup [A] [n] i xs+}+type  Ty : Set+term  Ty.nat : < Ty.nat : Ty >+term  Ty.arr : ^(a : Ty) -> ^(b : Ty) -> < Ty.arr a b : Ty >+type  Cxt : Set+type  Cxt = List Ty+type  Var : ^(cxt : Cxt) -> ^(a : Ty) -> Set+term  Var.vzero : .[a : Ty] -> .[cxt : List Ty] -> .[a : Ty] -> < Var.vzero : Var (List.cons a cxt) a >+term  Var.vsuc : .[a : Ty] -> .[cxt : List Ty] -> .[b : Ty] -> ^(x : Var cxt b) -> < Var.vsuc x : Var (List.cons a cxt) b >+type  Tm : ^(cxt : Cxt) -> ^(a : Ty) -> Set+term  Tm.var : .[cxt : Cxt] -> .[a : Ty] -> ^(x : Var cxt a) -> < Tm.var x : Tm cxt a >+term  Tm.app : .[cxt : List Ty] -> .[b : Ty] -> .[a : Ty] -> ^(r : Tm cxt (Ty.arr a b)) -> ^(s : Tm cxt a) -> < Tm.app a r s : Tm cxt b >+term  Tm.abs : .[cxt : List Ty] -> .[a : Ty] -> .[b : Ty] -> ^(t : Tm (List.cons a cxt) b) -> < Tm.abs t : Tm cxt (Ty.arr a b) >+type  Sem : Ty -> Set+{ Sem Ty.nat = Nat+; Sem (Ty.arr a b) = Sem a -> Sem b+}+type  Env : Cxt -> Set+{ Env List.nil = Unit+; Env (List.cons a as) = Sem a & Env as+}+term  val : .[cxt : Cxt] -> .[a : Ty] -> Var cxt a -> Env cxt -> Sem a+{ val [.List.cons [a] [cxt]] [.a] Var.vzero (v, vs) = v+; val [.List.cons [a] [cxt]] [b] (Var.vsuc x) (v, vs) = val [cxt] [b] x vs+}+term  sem : .[cxt : Cxt] -> .[a : Ty] -> Tm cxt a -> Env cxt -> Sem a+{ sem [cxt] [a] (Tm.var x) rho = val [cxt] [a] x rho+; sem [cxt] [b] (Tm.app [a] r s) rho = sem [cxt] [Ty.arr a b] r rho (sem [cxt] [a] s rho)+; sem [cxt] [.Ty.arr [a] [b]] (Tm.abs t) rho v = sem [List.cons a cxt] [b] t (v , rho)+}+--- evaluating ---+--- closing "DottedConstructors.ma" ---
+ test/succeed/DottedPatSyn.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DottedPatSyn.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.false : < Bool.false : Bool >+term  Bool.true : < Bool.true : Bool >+type  Maybe : ^(A : Set) -> Set+term  Maybe.nothing : .[A : Set] -> < Maybe.nothing : Maybe A >+term  Maybe.just : .[A : Set] -> ^(fromJust : A) -> < Maybe.just fromJust : Maybe A >+type  Three : Set+type  Three = Maybe Bool+pattern one = nothing+pattern two = just false+pattern three = just true+type  D : ^(b : Three) -> Set+term  D.c : < D.c : D (Maybe.just Bool.true) >+ty-u  f : .[b : Three] -> D b -> Set 1+{ f [.Maybe.just [.Bool.true]] D.c = Set+}+--- evaluating ---+--- closing "DottedPatSyn.ma" ---
+ test/succeed/Empty.golden view
@@ -0,0 +1,35 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Empty.ma" ---+--- scope checking ---+--- type checking ---+type  Empty : Set+term  abort : .[A : Set] -> (x : Empty) -> A+term  abort = [\ A ->] \ x -> x+term  abort1 : .[A : Set] -> (x : Empty) -> A -> A+term  abort1 = [\ A ->] \ x -> x+term  abort2 : .[F : + Set -> Set] -> .[A : Set] -> (x : F Empty) -> F A+term  abort2 = [\ F ->] [\ A ->] \ x -> x+term  toEmp : .[A : Set] -> .[B : Set] -> (x : A -> B) -> Empty -> B+term  toEmp = [\ A ->] [\ B ->] \ x -> x+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+term  abort3 : (x : Empty) -> Unit+term  abort3 = \ x -> x+warning: ignoring error: hypothetical constraint |i| < |0| ignored+term  abort5 : (x : Empty) -> .[i < 0] -> Unit+term  abort5 = \ x -> x+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+term  f : Bool -> Unit+{ f x = x+}+term  noReturnNeeded : .[M : + Set -> Set] -> .[A : Set] -> (x : M A) -> M Unit+term  noReturnNeeded = [\ M ->] [\ A ->] \ x -> x+term  g : Unit -> Bool+{ g un!t = Bool.true+}+term  test : .[T : Bool -> Set] -> (x : T (g Unit.unit)) -> T Bool.true+term  test = [\ T ->] \ x -> x+--- evaluating ---+--- closing "Empty.ma" ---
+ test/succeed/EvalBoveCaprettaNotSized.golden view
@@ -0,0 +1,61 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "EvalBoveCaprettaNotSized.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type  List : ++(A : Set) -> Set+term  List.nil : .[A : Set] -> < List.nil : List A >+term  List.cons : .[A : Set] -> ^(y0 : A) -> ^(y1 : List A) -> < List.cons y0 y1 : List A >+type  Exp : Set+term  Exp.var : ^(y0 : Nat) -> < Exp.var y0 : Exp >+term  Exp.abs : ^(y0 : Exp) -> < Exp.abs y0 : Exp >+term  Exp.app : ^(y0 : Exp) -> ^(y1 : Exp) -> < Exp.app y0 y1 : Exp >+type  D : Set+term  D.clos : ^(y0 : Exp) -> ^(y1 : List D) -> < D.clos y0 y1 : D >+type  Env : Set+type  Env = List D+term  empty : Env+term  empty = List.nil+term  update : Env -> D -> Env+term  update = \ rho -> \ d -> List.cons d rho+term  dummy : D+term  dummy = D.clos (Exp.var Nat.zero) empty+term  lookup : Env -> Nat -> D+{ lookup List.nil n = dummy+; lookup (List.cons d rho) Nat.zero = d+; lookup (List.cons d rho) (Nat.succ n) = lookup rho n+}+type  Eval : ^ Exp -> ^ Env -> ^ D -> Set+term  Eval.evVar : .[k : Nat] -> .[rho : Env] -> < Eval.evVar k rho : Eval (Exp.var k) rho (lookup rho k) >+term  Eval.evAbs : .[e : Exp] -> .[rho : Env] -> < Eval.evAbs e rho : Eval (Exp.abs e) rho (D.clos e rho) >+term  Eval.evApp : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> ^(evldFun : Exp) -> ^(evldEnv : Env) -> ^(evldArg : D) -> .[d' : D] -> ^(theFun : Eval f rho (D.clos evldFun evldEnv)) -> ^(theArg : Eval e rho evldArg) -> ^(theApp : Eval evldFun (update evldEnv evldArg) d') -> < Eval.evApp f e rho evldFun evldEnv evldArg d' theFun theArg theApp : Eval (Exp.app f e) rho d' >+term  evldFun : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> Exp+{ evldFun [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #evldFun+}+term  evldEnv : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> Env+{ evldEnv [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #evldEnv+}+term  evldArg : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> D+{ evldArg [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #evldArg+}+term  theFun : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> Eval f rho (D.clos (evldFun [f] [e] [rho] [d'] evApp) (evldEnv [f] [e] [rho] [d'] evApp))+{ theFun [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #theFun+}+term  theArg : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> Eval e rho (evldArg [f] [e] [rho] [d'] evApp)+{ theArg [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #theArg+}+term  theApp : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> Eval (evldFun [f] [e] [rho] [d'] evApp) (update (evldEnv [f] [e] [rho] [d'] evApp) (evldArg [f] [e] [rho] [d'] evApp)) d'+{ theApp [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #theApp+}+term  evaluate : (e : Exp) -> (rho : Env) -> .[d : D] -> .[Eval e rho d] -> < d : D >+term  apply : .[f' : Exp] -> .[rho' : Env] -> < D.clos f' rho' : D > -> (d : D) -> .[d' : D] -> .[Eval f' (update rho' d) d'] -> < d' : D >+{ evaluate (Exp.var k) rho [.(lookup rho k)] [Eval.evVar [.k] [.rho]] = lookup rho k+; evaluate (Exp.abs e) rho [.(clos e rho)] [Eval.evAbs [.e] [.rho]] = D.clos e rho+; evaluate (Exp.app f e) rho [.d'] [Eval.evApp [.f] [.e] [.rho] [f'] [rho'] [d] [d'] [evF] [evE] [evF']] = apply [f'] [rho'] (evaluate f rho [D.clos f' rho'] [evF]) (evaluate e rho [d] [evE]) [d'] [evF']+}+{ apply [.f'] [.rho'] (D.clos f' rho') d [d'] [p] = evaluate f' (update rho' d) [d'] [p]+}+--- evaluating ---+--- closing "EvalBoveCaprettaNotSized.ma" ---
test/succeed/EvalBoveCaprettaNotSized.ma view
@@ -1,7 +1,7 @@ -- 2009-11-29  A partial normalizer for untyped lambda calculus in MiniAgda -- 2012-01-22 parameters gone from constructors -data Nat : Set +data Nat : Set { zero : Nat ; succ : Nat -> Nat }@@ -15,7 +15,7 @@  data Exp : Set { var : Nat -> Exp-; abs : Exp -> Exp +; abs : Exp -> Exp ; app : Exp -> Exp -> Exp } @@ -34,7 +34,7 @@       = nil  let update : Env -> D -> Env-      = \ rho -> \ d -> cons d rho       +      = \ rho -> \ d -> cons d rho  let dummy : D           = clos (var zero) empty@@ -48,23 +48,23 @@ -- inductive graph of the evaluation function  data Eval : Exp -> Env -> D -> Set-{ evVar : [k : Nat] -> [rho : Env] ->  +{ evVar : [k : Nat] -> [rho : Env] ->            -------------------------------           Eval (var k) rho (lookup rho k) -; evAbs : [e : Exp] -> [rho : Env] -> +; evAbs : [e : Exp] -> [rho : Env] ->            ------------------------------          Eval (abs e) rho (clos e rho)  +          Eval (abs e) rho (clos e rho) -; evApp : [f : Exp] -> [e : Exp] -> [rho : Env] -> -          (evldFun : Exp) -> (evldEnv : Env) -> (evldArg : D) -> [d' : D] -> +; evApp : [f : Exp] -> [e : Exp] -> [rho : Env] ->+          (evldFun : Exp) -> (evldEnv : Env) -> (evldArg : D) -> [d' : D] ->            (theFun : Eval f rho (clos evldFun evldEnv)) ->           (theArg : Eval e rho evldArg) ->           (theApp : Eval evldFun (update evldEnv evldArg) d') ->-          -----------------------------  +          -----------------------------           Eval (app f e) rho d' } @@ -76,7 +76,7 @@  mutual { -  fun evaluate : (e : Exp) -> (rho : Env) -> +  fun evaluate : (e : Exp) -> (rho : Env) ->                  [d : D] -> [Eval e rho d] -> <d : D>   { evaluate (var k) rho .(lookup rho k) (evVar .k .rho) = lookup rho k   ; evaluate (abs e) rho .(clos e rho)   (evAbs .e .rho) = clos e rho@@ -85,9 +85,9 @@                       (evaluate e rho d evE)  d' evF'   } -  fun apply : [f' : Exp] -> [rho' : Env] -> <clos f' rho' : D> -> -              (d : D) -> [d' : D] -> [Eval f' (update rho' d) d'] -> <d' : D> -  { apply .f' .rho' (clos f' rho') d d' p = evaluate f' (update rho' d) d' p  +  fun apply : [f' : Exp] -> [rho' : Env] -> <clos f' rho' : D> ->+              (d : D) -> [d' : D] -> [Eval f' (update rho' d) d'] -> <d' : D>+  { apply .f' .rho' (clos f' rho') d d' p = evaluate f' (update rho' d) d' p   } } 
+ test/succeed/EvenOdd.golden view
@@ -0,0 +1,21 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "EvenOdd.ma" ---+--- scope checking ---+--- type checking ---+type  Even : Set+term  Even.ev0 : < Even.ev0 : Even >+term  Even.evS : ^(y0 : Odd) -> < Even.evS y0 : Even >+type  Odd : Set+term  Odd.oddS : ^(y0 : Even) -> < Odd.oddS y0 : Odd >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+term  evenToNat : Even -> Nat+term  oddToNat : Odd -> Nat+{ evenToNat Even.ev0 = Nat.zero+; evenToNat (Even.evS o) = Nat.suc (oddToNat o)+}+{ oddToNat (Odd.oddS e) = Nat.suc (evenToNat e)+}+--- evaluating ---+--- closing "EvenOdd.ma" ---
test/succeed/EvenOdd.ma view
@@ -2,7 +2,7 @@  mutual { -  data Even : Set +  data Even : Set   { ev0 : Even   ; evS : Odd -> Even   }@@ -28,4 +28,4 @@   fun oddToNat : Odd -> Nat   { oddToNat (oddS e) = suc (evenToNat e)   }-} +}
+ test/succeed/Evens.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Evens.ma" ---+--- scope checking ---+--- type checking ---+type  Stream : ++(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(head : A) -> ^(tail : Stream A i) -> < Stream.cons i head tail : Stream A $i >+term  head : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> A+{ head [A] [i] (Stream.cons [.i] #head #tail) = #head+}+term  tail : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> Stream A i+{ tail [A] [i] (Stream.cons [.i] #head #tail) = #tail+}+term  evens : .[A : Set] -> .[i : Size] -> Stream A (i + i) -> Stream A i+{ evens [A] $[i < #] (Stream.cons [.(i + i + 1)] a (Stream.cons [.(i + i)] b as)) = Stream.cons [i] a (evens [A] [i] as)+}+term  map2 : .[A : Set] -> .[B : Set] -> (A -> B) -> .[i : Size] -> Stream A (i + i) -> Stream B (i + i)+{ map2 [A] [B] f $[i < #] (Stream.cons [.$(i + i)] a1 (Stream.cons [.(i + i)] a2 as)) = Stream.cons [$(i + i)] (f a1) (Stream.cons [i + i] (f a2) (map2 [A] [B] f [i] as))+}+--- evaluating ---+--- closing "Evens.ma" ---
test/succeed/Evens.ma view
@@ -1,7 +1,7 @@--- 2010-11-01 +-- 2010-11-01 -- 2012-01-22 parameters gone from constructors -sized codata Stream ++(A : Set) : -Size -> Set +sized codata Stream ++(A : Set) : -Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A $i } @@ -11,7 +11,7 @@    cons i a (evens A i as) } -cofun map2 : [A, B : Set] -> (A -> B) -> +cofun map2 : [A, B : Set] -> (A -> B) ->              [i : Size] -> Stream A (2 * i) -> Stream B (2 * i) { map2 A B f ($ i) (cons .$(2 * i) a1 (cons .(2 * i) a2 as)) =     cons $(2 * i) (f a1) (cons (2 * i) (f a2) (map2 A B f i as))
+ test/succeed/ExtractLets.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ExtractLets.ma" ---+--- scope checking ---+--- type checking ---+term  id : .[A : Set] -> A -> A+term  id = [\ A ->] \ x -> x+term  s : .[A : Set] -> .[B : Set] -> .[C : Set] -> (A -> B -> C) -> (A -> B) -> A -> C+term  s = [\ A ->] [\ B ->] [\ C ->] \ x -> \ y -> \ z -> x z (y z)+term  k : .[A : Set] -> .[B : Set] -> A -> B -> A+term  k = [\ A ->] [\ B ->] \ x -> \ y -> x+term  skk : .[A : Set] -> A -> A+term  skk = [\ A ->] s [A] [A -> A] [A] (k [A] [A -> A]) (k [A] [A])+--- evaluating ---+--- closing "ExtractLets.ma" ---
test/succeed/ExtractLets.ma view
+ test/succeed/FakeMutual.golden view
@@ -0,0 +1,28 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "FakeMutual.ma" ---+--- scope checking ---+--- type checking ---+type  E : Set+term  E.e0 : < E.e0 : E >+term  E.eS : ^(y0 : O) -> < E.eS y0 : E >+type  O : Set+term  O.oS : ^(y0 : E) -> < O.oS y0 : O >+type  D1 : Set+term  D1.d1 : ^(y0 : D2) -> < D1.d1 y0 : D1 >+type  D2 : Set+term  D2.d2 : ^(y0 : D3) -> < D2.d2 y0 : D2 >+type  D3 : Set+term  D3.d3 : ^(y0 : D1) -> < D3.d3 y0 : D3 >+type  A : Set+term  A.a1 : < A.a1 : A >+term  A.a2 : ^(y0 : A) -> < A.a2 y0 : A >+type  B : Set+term  B.b1 : < B.b1 : B >+term  B.b2 : ^(y0 : A -> B) -> < B.b2 y0 : B >+type  D : Set+term  D.c : < D.c : D >+term  D.d : ^(y0 : D) -> < D.d y0 : D >+{ T X = D -> X+}+--- evaluating ---+--- closing "FakeMutual.ma" ---
test/succeed/FakeMutual.ma view
@@ -2,7 +2,7 @@  -- real mutuals -mutual { +mutual {   data E : Set { e0 : E                ; eS : O -> E }   data O : Set { oS : E -> O }@@ -17,16 +17,16 @@  -- fake mutuals -mutual {  +mutual {    -- A is spos in its def.-  data A : Set +  data A : Set   { a1 : A   ; a2 : A -> A   }    -- but not in B-  data B : Set +  data B : Set   { b1  : B   ; b2  : (A -> B) -> B   }@@ -35,7 +35,7 @@ mutual {    -- D is spos in its definition-  data D : Set +  data D : Set   { c : D   ; d : D -> D   }
+ test/succeed/Fields.golden view
@@ -0,0 +1,13 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Fields.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+term  f : Nat -> Nat+{}+type  D : ++(A : Nat -> Set) -> ^ Nat -> Set+term  D.mkD : .[A : Nat -> Set] -> ^(index : Nat) -> ^(content : A index) -> < D.mkD index content : D A (f index) >+--- evaluating ---+--- closing "Fields.ma" ---
test/succeed/Fields.ma view
@@ -10,7 +10,7 @@ -- but it is not computable from D A (f index) data D ++(A : Nat -> Set) : Nat -> Set { mkD : (index : Nat) -> (content : A index) -> D A (f index)-} +}  {- generates fun content : [A : Nat -> Set] -> (index : Nat) -> (d : D A (_f index)) -> A index
+ test/succeed/FinBranchMutual.golden view
@@ -0,0 +1,24 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "FinBranchMutual.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  Prod : ++(A : Set) -> ++(B : Set) -> Set+term  Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term  fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+type  Tree : Set+term  Tree.node : ^(numBranches : Nat) -> ^(y1 : VecTree numBranches) -> < Tree.node numBranches y1 : Tree >+{ VecTree Nat.zero = Unit+; VecTree (Nat.suc n) = Prod Tree (VecTree n)+}+--- evaluating ---+--- closing "FinBranchMutual.ma" ---
test/succeed/FinBranchMutual.ma view
+ test/succeed/Fix.golden view
@@ -0,0 +1,9 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Fix.ma" ---+--- scope checking ---+--- type checking ---+term  fix : .[A : Size -> Set] -> (f : .[i : Size] -> (.[j < i] -> A j) -> A i) -> .[i : Size] -> A i+{ fix [A] f [i] = f [i] (fix [A] f)+}+--- evaluating ---+--- closing "Fix.ma" ---
test/succeed/Fix.ma view
@@ -1,7 +1,7 @@ -- 2012-01-27  fix-point principle -fun fix : [A : Size -> Set] -> +fun fix : [A : Size -> Set] ->   (f : [i : Size] -> ([j < i] -> A j) -> A i) ->-  [i : Size] -> |i| -> A i +  [i : Size] -> |i| -> A i { fix A f i = f i (fix A f) }
+ test/succeed/ForceInConType.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ForceInConType.ma" ---+--- scope checking ---+--- type checking ---+type  Id : ++(A : Set) -> ^(x : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[x : A] -> < Id.refl : Id A x x >+type  Either : ++(A : Set) -> ++(B : Set) -> Set+term  Either.left : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> < Either.left y0 : Either A B >+term  Either.right : .[A : Set] -> .[B : Set] -> ^(y0 : B) -> < Either.right y0 : Either A B >+type  P : ++(A : Set) -> Set+{ P A = Either A A+}+type  Foo : ++(A : Set) -> P A -> Set+{ Foo A x = (z : A) & Id (P A) x (Either.left z)+}+term  foo : .[A : Set] -> (x : P A) -> Foo A x+{ foo [A] (Either.left x) = (x , Id.refl)+}+--- evaluating ---+--- closing "ForceInConType.ma" ---
+ test/succeed/ForcedMatch.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ForcedMatch.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  D : ^ Bool -> ^ Bool -> Set+term  D.d00 : < D.d00 : D Bool.false Bool.false >+term  D.d01 : < D.d01 : D Bool.false Bool.true >+term  D.d11 : < D.d11 : D Bool.true Bool.true >+term  f : (b : Bool) -> .[D b b] -> Bool+{ f Bool.false [D.d00] = Bool.false+; f Bool.true [D.d11] = Bool.true+}+--- evaluating ---+--- closing "ForcedMatch.ma" ---
test/succeed/ForcedMatch.ma view
+ test/succeed/ForcedMatchIdType.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ForcedMatchIdType.ma" ---+--- scope checking ---+--- type checking ---+type  Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+term  subst : .[A : Set] -> .[a : A] -> .[b : A] -> .[Id A a b] -> .[P : A -> Set] -> P a -> P b+{ subst [A] [a] [.a] [Id.refl] [P] h = h+}+term  p1 : .[A : Set] -> .[a : A] -> .[p : Id A a a] -> .[P : A -> Set] -> (h : P a) -> Id (P a) (subst [A] [a] [a] [p] [P] h) (subst [A] [a] [a] [Id.refl] [P] h)+term  p1 = [\ A ->] [\ a ->] [\ p ->] [\ P ->] \ h -> Id.refl+term  p2 : .[A : Set] -> .[a : A] -> .[p : Id A a a] -> .[P : A -> Set] -> (h : P a) -> Id (P a) (subst [A] [a] [a] [p] [P] h) h+term  p2 = [\ A ->] [\ a ->] [\ p ->] [\ P ->] \ h -> Id.refl+term  p3 : .[A : Set] -> .[a : A] -> .[b : A] -> .[p : Id A a b] -> .[q : Id A a b] -> .[P : A -> Set] -> (h : P a) -> Id (P b) (subst [A] [a] [b] [p] [P] h) (subst [A] [a] [b] [q] [P] h)+term  p3 = [\ A ->] [\ a ->] [\ b ->] [\ p ->] [\ q ->] [\ P ->] \ h -> Id.refl+--- evaluating ---+--- closing "ForcedMatchIdType.ma" ---
+ test/succeed/ForestRose.golden view
@@ -0,0 +1,19 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ForestRose.ma" ---+--- scope checking ---+--- type checking ---+type  List : ++(A : Set) -> Set+term  List.nil : .[A : Set] -> < List.nil : List A >+term  List.cons : .[A : Set] -> ^(y0 : A) -> ^(y1 : List A) -> < List.cons y0 y1 : List A >+type  Rose : ++(A : Set) -> Set+term  Rose.rose : .[A : Set] -> ^(label : A) -> ^(subtrees : Forest A) -> < Rose.rose label subtrees : Rose A >+term  label : .[A : Set] -> (rose : Rose A) -> A+{ label [A] (Rose.rose #label #subtrees) = #label+}+term  subtrees : .[A : Set] -> (rose : Rose A) -> Forest A+{ subtrees [A] (Rose.rose #label #subtrees) = #subtrees+}+{ Forest A = List (Rose A)+}+--- evaluating ---+--- closing "ForestRose.ma" ---
test/succeed/ForestRose.ma view
@@ -3,7 +3,7 @@ data List ++(A : Set) : Set { nil  : List A ; cons : A -> List A -> List A-} +}  mutual { 
+ test/succeed/GADT.golden view
@@ -0,0 +1,18 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "GADT.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type  Pair : ^(A : Set) -> ^(B : Set) -> Set+term  Pair.pair : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> ^(y1 : B) -> < Pair.pair y0 y1 : Pair A B >+ty-u  Exp : ^ Set -> Set 1+term  Exp.nat : ^(y0 : Nat) -> < Exp.nat y0 : Exp Nat >+term  Exp.bool : ^(y0 : Bool) -> < Exp.bool y0 : Exp Bool >+term  Exp.tup : .[A : Set] -> .[B : Set] -> ^(y2 : Pair A B) -> < Exp.tup A B y2 : Exp (Pair A B) >+--- evaluating ---+--- closing "GADT.ma" ---
test/succeed/GADT.ma view
@@ -18,4 +18,4 @@ { nat  : Nat  -> Exp Nat ; bool : Bool -> Exp Bool ; tup  : (A, B : Set) -> Pair A B -> Exp (Pair A B)-} +}
+ test/succeed/GoodConstraint.golden view
@@ -0,0 +1,10 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "GoodConstraint.ma" ---+--- scope checking ---+--- type checking ---+term  f : .[A : Set] -> (.[i : Size] -> |i| < |i| -> A) -> A+{}+term  f : .[A : Set] -> (.[i : Size] -> |i| < |i| -> |i| < |i| -> A) -> A+{}+--- evaluating ---+--- closing "GoodConstraint.ma" ---
+ test/succeed/HEq.golden view
@@ -0,0 +1,10 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "HEq.ma" ---+--- scope checking ---+--- type checking ---+type  HEq : .[A : Set] -> ^(a : A) -> .[B : Set] -> ^ B -> Set+term  HEq.refl : .[A : Set] -> .[a : A] -> < HEq.refl : HEq [A] a [A] a >+type  HEq' : .[i : Size] -> .[A : Set i] -> ^(a : A) -> .[B : Set i] -> ^ B -> Set+term  HEq'.refl' : .[i : Size] -> .[A : Set i] -> .[a : A] -> < HEq'.refl' : HEq' [i] [A] a [A] a >+--- evaluating ---+--- closing "HEq.ma" ---
test/succeed/HEq.ma view
@@ -5,4 +5,4 @@ data HEq' [i : Size][A : Set i](a : A) : [B : Set i] -> B -> Set { refl' : HEq' i A a A a }- +
+ test/succeed/HVec.golden view
@@ -0,0 +1,29 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "HVec.ma" ---+--- scope checking ---+--- type checking ---+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+ty-u  Prod : .[i : Size] -> ^(A : Set i) -> ^(B : Set i) -> Set i+term  Prod.pair : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod [i] A B >+mixk  fst : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> (pair : Prod [i] A B) -> A+{ fst [i] [A] [B] (Prod.pair #fst #snd) = #fst+}+mixk  snd : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> (pair : Prod [i] A B) -> B+{ snd [i] [A] [B] (Prod.pair #fst #snd) = #snd+}+mixk  fst' : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> Prod [i] A B -> A+{ fst' [i] [A] [B] (Prod.pair a b) = a+}+ty-u  List : .[i : Size] -> ^(A : Set i) -> Set i+term  List.nil : .[i : Size] -> .[A : Set i] -> < List.nil : List [i] A >+term  List.cons : .[i : Size] -> .[A : Set i] -> ^(y0 : A) -> ^(y1 : List [i] A) -> < List.cons y0 y1 : List [i] A >+type  HVecR : List [1] Set -> Set+{ HVecR List.nil = Unit+; HVecR (List.cons A As) = Prod [0] A (HVecR As)+}+ty-u  HVec : ^ List [1] Set -> Set 1+term  HVec.vnil : < HVec.vnil : HVec List.nil >+term  HVec.vcons : .[A : Set] -> .[As : List [1] Set] -> ^(y2 : A) -> ^(y3 : HVec As) -> < HVec.vcons A As y2 y3 : HVec (List.cons A As) >+--- evaluating ---+--- closing "HVec.ma" ---
+ test/succeed/HungryEtaRecord.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "HungryEtaRecord.ma" ---+--- scope checking ---+--- type checking ---+type  Hungry : -(i : Size) -> Set+{ Hungry i = .[j < i] -> Hungry j+}+type  D : .[i : Size] -> Hungry i -> Set+{}+--- evaluating ---+--- closing "HungryEtaRecord.ma" ---
+ test/succeed/IdTypePos.golden view
@@ -0,0 +1,16 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "IdTypePos.ma" ---+--- scope checking ---+--- type checking ---+type  Id : ++(A : Set) -> ^(a : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+type  Exists : ^(A : Set) -> ++(P : A -> Set) -> Set+term  Exists.exI : .[A : Set] -> .[P : A -> Set] -> ^(witness : A) -> ^(proof : P witness) -> < Exists.exI witness proof : Exists A P >+term  witness : .[A : Set] -> .[P : A -> Set] -> (exI : Exists A P) -> A+{ witness [A] [P] (Exists.exI #witness #proof) = #witness+}+term  proof : .[A : Set] -> .[P : A -> Set] -> (exI : Exists A P) -> P (witness [A] [P] exI)+{ proof [A] [P] (Exists.exI #witness #proof) = #proof+}+--- evaluating ---+--- closing "IdTypePos.ma" ---
test/succeed/IdTypePos.ma view
@@ -6,4 +6,4 @@  data Exists (A : Set) ++(P : A -> Set) : Set { exI : (witness : A) -> (proof : P witness) -> Exists A P-} +}
+ test/succeed/IrrHeterogeneousFun.golden view
@@ -0,0 +1,21 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "IrrHeterogeneousFun.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type  T : Bool -> Set+{ T Bool.true = Nat+; T Bool.false = Bool+}+term  good : .[F : Nat -> Set] -> .[f : .[b : Bool] -> (.[T b] -> Nat) -> Nat] -> (g : (n : Nat) -> F (f [Bool.true] ([\ x ->] n))) -> (h : F (f [Bool.false] ([\ x ->] Nat.zero)) -> Bool) -> Bool+{ good [F] [f] g h = h (g Nat.zero)+}+term  good' : .[F : .[b : Bool] -> (.[T b] -> Nat) -> Set] -> (g : F [Bool.false] ([\ x ->] Nat.zero) -> Bool) -> (h : (n : Nat) -> F [Bool.true] ([\ x ->] n)) -> Bool+term  good' = [\ F ->] \ g -> \ h -> g (h Nat.zero)+--- evaluating ---+--- closing "IrrHeterogeneousFun.ma" ---
test/succeed/IrrHeterogeneousFun.ma view
@@ -18,20 +18,19 @@ ; T false = Bool } -fun good : +fun good :   [F : Nat -> Set] ->   [f : [b : Bool] -> ([T b] -> Nat) -> Nat] ->   (g : (n : Nat) -> F (f true (\ x -> n))) ->-  (h : F (f false (\ x -> zero)) -> Bool) -> +  (h : F (f false (\ x -> zero)) -> Bool) ->   Bool { good F f g h = h (g zero) } -let good' : +let good' :     [F : [b : Bool] -> ([T b] -> Nat) -> Set] ->-    (g : F false (\ x -> zero) -> Bool) -> +    (g : F false (\ x -> zero) -> Bool) ->     (h : (n : Nat) -> F true (\ x -> n)) ->     Bool   = \ F g h -> g (h zero)- 
+ test/succeed/IrrHeterogeneousSingleton.golden view
@@ -0,0 +1,19 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "IrrHeterogeneousSingleton.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type  T : Bool -> Set+{ T Bool.true = Nat+; T Bool.false = < Nat.zero : Nat >+}+term  good : .[F : Nat -> Set] -> .[f : .[x : Bool] -> T x -> Nat] -> (z : T Bool.false) -> (g : (n : Nat) -> F (f [Bool.true] n)) -> (h : F (f [Bool.false] z) -> Bool) -> Bool+{ good [F] [f] z g h = h (g Nat.zero)+}+--- evaluating ---+--- closing "IrrHeterogeneousSingleton.ma" ---
test/succeed/IrrHeterogeneousSingleton.ma view
@@ -17,12 +17,12 @@ ; T false = <zero : Nat> } -fun good : +fun good :   [F : Nat -> Set] ->   [f : [x : Bool] -> T x -> Nat] ->   (z : T false) ->   (g : (n : Nat) -> F (f true n)) ->-  (h : F (f false z) -> Bool) -> +  (h : F (f false z) -> Bool) ->   Bool { good F f z g h = h (g zero) }
+ test/succeed/IrrHeterogeneousSize.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "IrrHeterogeneousSize.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : + Size -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term  Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+type  good : .[Size] -> .[f : .[i : Size] -> Nat i -> Set] -> (g : .[i : Size] -> (n : Nat i) -> f [i] n) -> (h : f [#] (Nat.zero [#]) -> Set) -> Set+{ good [i] [f] g h = h (g [$i] (Nat.zero [i]))+}+--- evaluating ---+--- closing "IrrHeterogeneousSize.ma" ---
test/succeed/IrrHeterogeneousSize.ma view
@@ -7,11 +7,11 @@ ; succ : [i : Size] -> Nat i -> Nat $i } -fun good : -  [Size] -> +fun good :+  [Size] ->   [f : [i : Size] -> Nat i -> Set] ->   (g : [i : Size] -> (n : Nat i) -> f i n) ->-  (h : f # (zero #) -> Set) -> +  (h : f # (zero #) -> Set) ->   Set { good i f g h = h (g $i (zero i)) }
+ test/succeed/LargeElim.golden view
@@ -0,0 +1,33 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "LargeElim.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  add : Nat -> Nat -> Nat+{ add Nat.zero n = n+; add (Nat.succ m) n = Nat.succ (add m n)+}+type  Sum : Nat -> Set+{ Sum Nat.zero = Nat+; Sum (Nat.succ n) = Nat -> Sum n+}+term  sum : (n : Nat) -> Nat -> Sum n+{ sum Nat.zero x = x+; sum (Nat.succ n) x = \ y -> sum n (add x y)+}+term  one : Nat+term  one = Nat.succ Nat.zero+term  two : Nat+term  two = Nat.succ one+term  three : Nat+term  three = Nat.succ two+term  four : Nat+term  four = Nat.succ three+term  six : Nat+term  six = sum four three two one Nat.zero Nat.zero+--- evaluating ---+six has whnf Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = (add zero zero)}}}}}}+six evaluates to Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ (add zero zero))))))+--- closing "LargeElim.ma" ---
test/succeed/LargeElim.ma view
@@ -15,7 +15,7 @@ ; Sum (succ n) = Nat -> Sum n } -fun sum : (n : Nat) -> Nat -> Sum n +fun sum : (n : Nat) -> Nat -> Sum n { sum zero     x = x ; sum (succ n) x = \ y -> sum n (add x y) }
+ test/succeed/LetTele.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "LetTele.ma" ---+--- scope checking ---+--- type checking ---+mixk  id0 : .[i : Size] -> .[A : Set i] -> (a : A) -> A+mixk  id0 = [\ i ->] [\ A ->] \ a -> a+mixk  id : .[i : Size] -> .[A : Set i] -> (a : A) -> A+mixk  id = [\ i ->] [\ A ->] \ a -> a+mixk  id' : .[i : Size] -> .[A : Set i] -> (a : A) -> A+mixk  id' = [\ i ->] [\ A ->] \ a -> a+term  two : .[A : Set] -> (f : A -> A) -> (x : A) -> A+term  two = [\ A ->] \ f -> \ x -> let y : A+                             = f x+                       in f y+term  two' : .[A : Set] -> (f : A -> A) -> (x : A) -> A+term  two' = [\ A ->] \ f -> \ x -> let y : A+                             = f x+                       in f y+--- evaluating ---+--- closing "LetTele.ma" ---
test/succeed/LetTele.ma view
@@ -1,6 +1,6 @@ -- 2012-01-24 telescopes for let -let id0 : [i : Size] -> [A : Set i] -> (a : A) -> A +let id0 : [i : Size] -> [A : Set i] -> (a : A) -> A   = \ i A a -> a  let id [i : Size][A : Set i](a : A) : A = a@@ -11,9 +11,9 @@  let two [A : Set] (f : A -> A) (x : A) : A =   let y = f x-  in  f y +  in  f y  let two' : [A : Set] -> (f : A -> A) -> (x : A) -> A =   \ A f x ->   let y = f x-  in  f y +  in  f y
+ test/succeed/LowerSemiCont.golden view
@@ -0,0 +1,59 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "LowerSemiCont.ma" ---+--- scope checking ---+--- type checking ---+type  sup : (F : Size -> Set) -> +(i : Size) -> Set+{ sup F i = .[j < i] & F j+}+term  pairF : .[F : - Size -> Set] -> (a : F #) -> sup F #+term  pairF = [\ F ->] \ a -> ([#] , a)+term  supsup : .[F : Size -> Set] -> (a : sup F #) -> sup (sup F) #+term  supsup = [\ F ->] \ a -> ([#] , a)+type  bsup : (F : Size -> Set) -> +(i : Size) -> Set+{ bsup F i = .[j <= i] & F j+}+term  bsupsup : .[F : Size -> Set] -> (a : sup F #) -> bsup (sup F) #+term  bsupsup = [\ F ->] \ a -> ([#] , a)+type  SNat : + Size -> Set+term  SNat.szero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term  SNat.szero : .[i : Size] -> < SNat.szero i : SNat $i >+term  SNat.ssuc : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term  SNat.ssuc : .[i : Size] -> ^(y1 : SNat i) -> < SNat.ssuc i y1 : SNat $i >+term  pairSNat : (a : SNat #) -> .[j < #] & SNat j+term  pairSNat = \ a -> ([#] , a)+term  pairSNat2 : (a : SNat #) -> .[j < #] & SNat j & SNat j+term  pairSNat2 = \ a -> ([#] , (a , a))+type  Fork : ++(A : Set) -> Set+term  Fork.fork : .[A : Set] -> ^(fst : A) -> ^(snd : A) -> < Fork.fork fst snd : Fork A >+term  fst : .[A : Set] -> (fork : Fork A) -> A+{ fst [A] (Fork.fork #fst #snd) = #fst+}+term  snd : .[A : Set] -> (fork : Fork A) -> A+{ snd [A] (Fork.fork #fst #snd) = #snd+}+term  forkSNat : (a : SNat #) -> .[j < #] & Fork (SNat j)+term  forkSNat = \ a -> ([#] , Fork.fork a a)+type  Maybe : ++(A : Set) -> Set+term  Maybe.nothing : .[A : Set] -> < Maybe.nothing : Maybe A >+term  Maybe.just : .[A : Set] -> ^(fromJust : A) -> < Maybe.just fromJust : Maybe A >+term  maybeSNat : (a : SNat #) -> .[j < #] & Maybe (SNat j)+term  maybeSNat = \ a -> ([#] , Maybe.just a)+type  List : ++(A : Set) -> Set+term  List.nil : .[A : Set] -> < List.nil : List A >+term  List.cons : .[A : Set] -> ^(x : A) -> ^(xs : List A) -> < List.cons x xs : List A >+block fails as expected, error message:+listSNat+/// new a : (SNat #)+/// checkExpr 1 |- (# , cons a nil) : .[j < #] & List (SNat j)+/// checkForced fromList [(a,0)] |- (# , cons a nil) : .[j < #] & List (SNat j)+/// checkExpr 1 |- # : < #+/// leqVal' (subtyping)  < # : Size >  <=+  < #+/// leSize # <+ #+/// leSize: # < # failed+type  Nat : +(i : Size) -> Set+term  Nat.zero : .[i : Size] -> < Nat.zero : Nat i >+term  Nat.suc : .[i : Size] -> ^(jn : .[j < i] & Nat j) -> < Nat.suc jn : Nat i >+term  one : Nat #+term  one = Nat.suc ([#] , Nat.zero)+--- evaluating ---+--- closing "LowerSemiCont.ma" ---
+ test/succeed/MeasureInFunTele.golden view
@@ -0,0 +1,12 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MeasureInFunTele.ma" ---+--- scope checking ---+--- type checking ---+type  T : -(i : Size) -> Set+{ T i = .[j < i] -> T j+}+term  bla : .[i : Size] -> T i+{ bla [i] = bla+}+--- evaluating ---+--- closing "MeasureInFunTele.ma" ---
test/succeed/MeasureInFunTele.ma view
+ test/succeed/MeasuredHerSubst1.golden view
@@ -0,0 +1,77 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MeasuredHerSubst1.ma" ---+--- scope checking ---+--- type checking ---+type  Maybe : ^(A : Set) -> Set+term  Maybe.nothing : .[A : Set] -> < Maybe.nothing : Maybe A >+term  Maybe.just : .[A : Set] -> ^(y0 : A) -> < Maybe.just y0 : Maybe A >+term  just_ : .[A : Set] -> A -> Maybe A+term  just_ = [\ A ->] \ a -> Maybe.just a+term  mapMaybe : .[A : Set] -> .[B : Set] -> (A -> B) -> Maybe A -> Maybe B+{ mapMaybe [A] [B] f Maybe.nothing = Maybe.nothing+; mapMaybe [A] [B] f (Maybe.just a) = Maybe.just (f a)+}+type  Ty : + Size -> Set+term  Ty.base : .[s!ze : Size] -> .[i < s!ze] -> Ty s!ze+term  Ty.base : .[i : Size] -> < Ty.base i : Ty $i >+term  Ty.arr : .[s!ze : Size] -> .[i < s!ze] -> ^ Ty i -> ^ Ty i -> Ty s!ze+term  Ty.arr : .[i : Size] -> ^(y1 : Ty i) -> ^(y2 : Ty i) -> < Ty.arr i y1 y2 : Ty $i >+type  Tm : ^(A : Set) -> + Size -> Set+term  Tm.var : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> Tm A s!ze+term  Tm.var : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> < Tm.var i y1 : Tm A $i >+term  Tm.app : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ Tm A i -> ^ Tm A i -> Tm A s!ze+term  Tm.app : .[A : Set] -> .[i : Size] -> ^(y1 : Tm A i) -> ^(y2 : Tm A i) -> < Tm.app i y1 y2 : Tm A $i >+term  Tm.abs : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ Ty # -> ^ Tm (Maybe A) i -> Tm A s!ze+term  Tm.abs : .[A : Set] -> .[i : Size] -> ^(y1 : Ty #) -> ^(y2 : Tm (Maybe A) i) -> < Tm.abs i y1 y2 : Tm A $i >+term  mapTm : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Tm A i -> Tm B i+{ mapTm [A] [B] [i] f (Tm.var [j < i] x) = Tm.var [j] (f x)+; mapTm [A] [B] [i] f (Tm.app [j < i] r s) = Tm.app [j] (mapTm [A] [B] [j] f r) (mapTm [A] [B] [j] f s)+; mapTm [A] [B] [i] f (Tm.abs [j < i] a r) = Tm.abs [j] a (mapTm [Maybe A] [Maybe B] [j] (mapMaybe [A] [B] f) r)+}+term  shiftTm : .[A : Set] -> .[i : Size] -> Tm A i -> Tm (Maybe A) i+term  shiftTm = [\ A ->] [\ i ->] \ t -> mapTm [A] [Maybe A] [i] (just_ [A]) t+type  Res : ^(A : Set) -> +(i : Size) -> Set+term  Res.ne : .[A : Set] -> .[i : Size] -> ^(y0 : Tm A #) -> < Res.ne y0 : Res A i >+term  Res.nf : .[A : Set] -> .[i : Size] -> ^(y0 : Tm A #) -> ^(y1 : Ty i) -> < Res.nf y0 y1 : Res A i >+term  tm : .[A : Set] -> .[i : Size] -> Res A i -> Tm A #+{ tm [A] [i] (Res.ne t) = t+; tm [A] [i] (Res.nf t a) = t+}+term  shiftRes : .[A : Set] -> .[i : Size] -> Res A i -> Res (Maybe A) i+{ shiftRes [A] [i] (Res.ne t) = Res.ne (shiftTm [A] [#] t)+; shiftRes [A] [i] (Res.nf t a) = Res.nf (shiftTm [A] [#] t) a+}+term  varRes : .[A : Set] -> .[i : Size] -> A -> Res A i+term  varRes = [\ A ->] [\ i ->] \ x -> Res.ne (Tm.var [#] x)+term  absRes : .[A : Set] -> .[i : Size] -> Ty # -> Res (Maybe A) # -> Res A i+term  absRes = [\ A ->] [\ i ->] \ a -> \ r -> Res.ne (Tm.abs [#] a (tm [Maybe A] [#] r))+term  appRes : .[A : Set] -> .[i : Size] -> Res A # -> Res A # -> Res A i+term  appRes = [\ A ->] [\ i ->] \ t -> \ u -> Res.ne (Tm.app [#] (tm [A] [#] t) (tm [A] [#] u))+type  Env : Set -> Set -> Size -> Set+type  Env = \ A -> \ B -> \ i -> A -> Res B i+term  sg : .[A : Set] -> .[i : Size] -> Tm A # -> Ty i -> Env (Maybe A) A i+{ sg [A] [i] s a Maybe.nothing = Res.nf s a+; sg [A] [i] s a (Maybe.just y) = varRes [A] [i] y+}+term  lift : .[A : Set] -> .[B : Set] -> .[i : Size] -> Env A B i -> Env (Maybe A) (Maybe B) i+{ lift [A] [B] [i] rho Maybe.nothing = varRes [Maybe B] [i] Maybe.nothing+; lift [A] [B] [i] rho (Maybe.just x) = shiftRes [B] [i] (rho x)+}+term  subst : .[i : Size] -> Ty i -> .[A : Set] -> Tm A # -> Tm (Maybe A) # -> Tm A #+term  simsubst : .[i : Size] -> .[j : Size] -> .[A : Set] -> .[B : Set] -> Tm A j -> Env A B i -> Res B i+term  normApp : .[i : Size] -> .[B : Set] -> Res B i -> Res B i -> Res B i+{ subst [i] a [A] s t = tm [A] [i] (simsubst [i] [#] [Maybe A] [A] t (sg [A] [i] s a))+}+{ simsubst [i] [j] [A] [B] (Tm.var [j' < j] x) rho = rho x+; simsubst [i] [j] [A] [B] (Tm.abs [j' < j] b t) rho = absRes [B] [i] b (simsubst [i] [j'] [Maybe A] [Maybe B] t (lift [A] [B] [i] rho))+; simsubst [i] [j] [A] [B] (Tm.app [j' < j] t u) rho = let t' : Res B i+                                                              = simsubst [i] [j'] [A] [B] t rho+                                                       in let u' : Res B i+                                                                 = simsubst [i] [j'] [A] [B] u rho+                                                          in normApp [i] [B] t' u'+}+{ normApp [i] [B] (Res.nf (Tm.abs [.#] b' r') (Ty.arr [i' < i] b c)) u' = Res.nf (subst [i'] b [B] (tm [B] [i] u') r') c+; normApp [i] [B] t' u' = appRes [B] [i] t' u'+}+--- evaluating ---+--- closing "MeasuredHerSubst1.ma" ---
test/succeed/MeasuredHerSubst1.ma view
@@ -16,7 +16,7 @@ ; mapMaybe A B f (just a)  = just (f a) } -sized data Ty : Size -> Set +sized data Ty : Size -> Set { base : [i : Size] -> Ty $i ; arr  : [i : Size] -> Ty i -> Ty i -> Ty $i }@@ -30,7 +30,7 @@ fun mapTm : [A, B : Set] -> [i : Size] -> |i| -> (A -> B) -> Tm A i -> Tm B i { mapTm A B i f (var (i > j) x)   = var j (f x) ; mapTm A B i f (app (i > j) r s) = app j (mapTm A B j f r) (mapTm A B j f s)-; mapTm A B i f (abs (i > j) a r) = +; mapTm A B i f (abs (i > j) a r) =     abs j a (mapTm (Maybe A) (Maybe B) j (mapMaybe A B f) r) } @@ -76,29 +76,29 @@ fun lift : [A, B : Set] -> [i : Size] -> Env A B i -> Env (Maybe A) (Maybe B) i { lift A B i rho (nothing) = varRes (Maybe B) i (nothing) ; lift A B i rho (just x)  = shiftRes B i (rho x)-} +}  -- hereditary substitution  mutual { -fun subst : [i : Size] -> |i,$$0,#| -> Ty i -> +fun subst : [i : Size] -> |i,$$0,#| -> Ty i ->             [A : Set] -> Tm A # -> Tm (Maybe A) # -> Tm A # { subst i a A s t = tm A i (simsubst i # (Maybe A) A t (sg A i s a))-}  +} -fun simsubst : [i, j : Size] -> |i,$0,j| -> +fun simsubst : [i, j : Size] -> |i,$0,j| ->                [A, B : Set] -> Tm A j -> Env A B i -> Res B i { simsubst i j A B (var (j > j') x) rho = rho x-; simsubst i j A B (abs (j > j') b t) rho = -    absRes B i b (simsubst i j' (Maybe A) (Maybe B) t (lift A B i rho)) +; simsubst i j A B (abs (j > j') b t) rho =+    absRes B i b (simsubst i j' (Maybe A) (Maybe B) t (lift A B i rho)) ; simsubst i j A B (app (j > j') t u) rho =     let t' : Res B i = simsubst i j' A B t rho in     let u' : Res B i = simsubst i j' A B u rho in       normApp i B t' u' } -fun normApp : [i : Size] -> |i,0,#| -> +fun normApp : [i : Size] -> |i,0,#| ->               [B : Set] -> Res B i -> Res B i -> Res B i { normApp i B (nf (abs .# b' r') (arr (i > i') b c)) u' =     nf (subst i' b B (tm B i u') r') c
+ test/succeed/MeasuredRose.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MeasuredRose.ma" ---+--- scope checking ---+--- type checking ---+type  List : ++(A : Set) -> Set+term  List.nil : .[A : Set] -> < List.nil : List A >+term  List.cons : .[A : Set] -> ^(y0 : A) -> ^(y1 : List A) -> < List.cons y0 y1 : List A >+term  mapList : .[A : Set] -> .[B : Set] -> (A -> B) -> List A -> List B+{ mapList [A] [B] f List.nil = List.nil+; mapList [A] [B] f (List.cons a as) = List.cons (f a) (mapList [A] [B] f as)+}+type  Rose : ++(A : Set) -> + Size -> Set+term  Rose.rose : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ List (Rose A i) -> Rose A s!ze+term  Rose.rose : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : List (Rose A i)) -> < Rose.rose i y1 y2 : Rose A $i >+term  mapRose : .[A : Set] -> .[B : Set] -> (A -> B) -> .[i : Size] -> Rose A i -> Rose B i+{ mapRose [A] [B] f [i] (Rose.rose [j < i] a rs) = Rose.rose [j] (f a) (mapList [Rose A j] [Rose B j] (mapRose [A] [B] f [j]) rs)+}+term  mapRose' : .[A : Set] -> .[B : Set] -> (A -> B) -> .[i : Size] -> Rose A i -> Rose B i+{ mapRose' [A] [B] f [i] (Rose.rose [j < i] a rs) = Rose.rose [j] (f a) (mapList [Rose A j] [Rose B j] (mapRose' [A] [B] f [j]) rs)+}+--- evaluating ---+--- closing "MeasuredRose.ma" ---
test/succeed/MeasuredRose.ma view
@@ -14,18 +14,18 @@ -- sized Roses  sized data Rose (+ A : Set) : Size -> Set-{ rose : [i : Size] -> A -> List (Rose A i) -> Rose A ($ i) +{ rose : [i : Size] -> A -> List (Rose A i) -> Rose A ($ i) } -fun mapRose : [A : Set] -> [B : Set] -> (A -> B) -> +fun mapRose : [A : Set] -> [B : Set] -> (A -> B) ->               [i : Size] -> |i| -> Rose A i -> Rose B i-{ mapRose A B f i (rose (i > j) a rs) = +{ mapRose A B f i (rose (i > j) a rs) =     rose j (f a) (mapList (Rose A j) (Rose B j) (mapRose A B f j) rs) }  -- 2012-01-27 it is also possible to place the measure after the rec.arg.-fun mapRose' : [A : Set] -> [B : Set] -> (A -> B) -> +fun mapRose' : [A : Set] -> [B : Set] -> (A -> B) ->                [i : Size] -> Rose A i -> |i| -> Rose B i-{ mapRose' A B f i (rose (i > j) a rs) = +{ mapRose' A B f i (rose (i > j) a rs) =     rose j (f a) (mapList (Rose A j) (Rose B j) (mapRose' A B f j) rs) }
+ test/succeed/MergeWith.golden view
@@ -0,0 +1,26 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MergeWith.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type  List : Set+term  List.nil : < List.nil : List >+term  List.cons : ^(y0 : Nat) -> ^(y1 : List) -> < List.cons y0 y1 : List >+term  leq : Nat -> Nat -> Bool+{}+term  merge : List -> List -> List+term  merge_aux : Nat -> List -> List -> Nat -> List -> List -> Bool -> List+{ merge List.nil l = l+; merge l List.nil = l+; merge (List.cons x xs) (List.cons y ys) = merge_aux x xs (List.cons x xs) y ys (List.cons y ys) (leq x y)+}+{ merge_aux x xs xxs y ys yys Bool.true = List.cons x (merge xs yys)+; merge_aux x xs xxs y ys yys Bool.false = List.cons y (merge xxs ys)+}+--- evaluating ---+--- closing "MergeWith.ma" ---
test/succeed/MergeWith.ma view
@@ -9,7 +9,7 @@ }  data List : Set-{ nil  : List +{ nil  : List ; cons : Nat -> List -> List } @@ -24,6 +24,6 @@   }   fun merge_aux : Nat -> List -> List -> Nat -> List -> List -> Bool -> List   { merge_aux x xs xxs y ys yys true  = cons x (merge xs yys)-  ; merge_aux x xs xxs y ys yys false = cons y (merge xxs ys) +  ; merge_aux x xs xxs y ys yys false = cons y (merge xxs ys)   } }
+ test/succeed/MockSig.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MockSig.ma" ---+--- scope checking ---+--- type checking ---+type  MockSig : ++(A : Set) -> ++(B : .[A] -> Set) -> Set+term  MockSig.pair : .[A : Set] -> .[B : .[A] -> Set] -> ^(fst : A) -> ^(snd : B [fst]) -> < MockSig.pair fst snd : MockSig A B >+term  fst : .[A : Set] -> .[B : .[A] -> Set] -> (pair : MockSig A B) -> A+{ fst [A] [B] (MockSig.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : .[A] -> Set] -> (pair : MockSig A B) -> B [fst [A] [B] pair]+{ snd [A] [B] (MockSig.pair #fst #snd) = #snd+}+--- evaluating ---+--- closing "MockSig.ma" ---
test/succeed/MockSig.ma view
+ test/succeed/Mu.golden view
@@ -0,0 +1,44 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Mu.ma" ---+--- scope checking ---+--- type checking ---+type  Empty : Set+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  Sum : ++(A : Set) -> ++(B : Set) -> Set+term  Sum.inl : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> < Sum.inl y0 : Sum A B >+term  Sum.inr : .[A : Set] -> .[B : Set] -> ^(y0 : B) -> < Sum.inr y0 : Sum A B >+type  Prod : ++(A : Set) -> ++(B : Set) -> Set+term  Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term  fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+type  Mu : ++(F : ++ Set -> Set) -> + Size -> Set+term  Mu.inn : .[F : ++ Set -> Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^(out : F (Mu F i)) -> Mu F s!ze+term  Mu.inn : .[F : ++ Set -> Set] -> .[i : Size] -> ^(out : F (Mu F i)) -> < Mu.inn i out : Mu F $i >+term  out : .[F : ++ Set -> Set] -> .[i : Size] -> (inn : Mu F $i) -> F (Mu F i)+{ out [F] [i] (Mu.inn [.i] #out) = #out+}+term  myout : .[F : ++ Set -> Set] -> .[i : Size] -> Mu F $i -> F (Mu F i)+{ myout [F] [i] (Mu.inn [.i] t) = t+}+term  iter : .[F : ++ Set -> Set] -> (mapF : .[A : Set] -> .[B : Set] -> (A -> B) -> F A -> F B) -> .[G : Set] -> (step : F G -> G) -> .[i : Size] -> Mu F i -> G+{ iter [F] mapF [G] step [i] (Mu.inn [j < i] t) = step (mapF [Mu F j] [G] (iter [F] mapF [G] step [j]) t)+}+type  NatF : ++ Set -> Set+type  NatF = \ X -> Sum Unit X+type  Nat : + Size -> Set+type  Nat = Mu NatF+term  zero : .[i : Size] -> Nat $i+term  zero = [\ i ->] Mu.inn [i] (Sum.inl Unit.unit)+term  succ : .[i : Size] -> Nat i -> Nat $i+term  succ = [\ i ->] \ n -> Mu.inn [i] (Sum.inr n)+type  ListF : ++ Set -> ++ Set -> Set+type  ListF = \ A -> \ X -> Sum Unit (Prod A X)+type  List : ++ Set -> + Size -> Set+type  List = \ A -> Mu (ListF A)+--- evaluating ---+--- closing "Mu.ma" ---
test/succeed/Mu.ma view
@@ -9,7 +9,7 @@ ; inr : B -> Sum A B } data Prod ++(A : Set) ++(B : Set) : Set-{ pair : (fst : A) -> (snd : B) -> Prod A B +{ pair : (fst : A) -> (snd : B) -> Prod A B }  sized data Mu ++(F : ++Set -> Set) : +Size -> Set@@ -21,7 +21,7 @@ }  -- iteration (universal property of Mu)-fun iter : [F : ++Set -> Set] -> +fun iter : [F : ++Set -> Set] ->            (mapF : [A : Set] -> [B : Set] -> (A -> B) -> F A -> F B) ->            [G : Set] -> (step : F G -> G) ->            [i : Size] -> Mu F i -> G@@ -36,11 +36,11 @@ let Nat  : +Size -> Set         = Mu NatF  let zero : [i : Size] -> Nat ($ i)-         = \ i -> inn i (inl unit) +         = \ i -> inn i (inl unit)  let succ : [i : Size] -> Nat i -> Nat ($ i)-         = \ i -> \ n -> inn i (inr n) +         = \ i -> \ n -> inn i (inr n)   let ListF : ++Set -> ++Set -> Set = \ A -> \ X -> Sum Unit (Prod A X)-let List  : ++Set -> +Size -> Set = \ A -> Mu (ListF A)         +let List  : ++Set -> +Size -> Set = \ A -> Mu (ListF A)
+ test/succeed/MultiSigma.golden view
@@ -0,0 +1,8 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MultiSigma.ma" ---+--- scope checking ---+--- type checking ---+univ  test : Set 1+univ  test = (A : Set) & (B : Set) & Set+--- evaluating ---+--- closing "MultiSigma.ma" ---
test/succeed/MultiSigma.ma view
+ test/succeed/MutualBigDataKindInf.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MutualBigDataKindInf.ma" ---+--- scope checking ---+--- type checking ---+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+ty-u  MaybeBig : Set 1+term  MaybeBig.Nothing : < MaybeBig.Nothing : MaybeBig >+term  MaybeBig.Just : ^(y0 : Unit) -> ^(y1 : Big) -> < MaybeBig.Just y0 y1 : MaybeBig >+ty-u  Big : Set 1+term  Big.BigIn : ^(BigOut : Set) -> < Big.BigIn BigOut : Big >+type  BigOut : (BigIn : Big) -> Set+{ BigOut (Big.BigIn #BigOut) = #BigOut+}+type  Maybe : MaybeBig -> Set -> (Set -> Set) -> Set+{ Maybe MaybeBig.Nothing A F = A+; Maybe (MaybeBig.Just u B) A F = F (BigOut B)+}+--- evaluating ---+--- closing "MutualBigDataKindInf.ma" ---
test/succeed/MutualBigDataKindInf.ma view
@@ -2,7 +2,7 @@  data Unit : Set { unit : Unit } mutual {-  +   data MaybeBig : Set 1   { Nothing : MaybeBig   ; Just    : Unit -> Big -> MaybeBig@@ -17,4 +17,4 @@ fun Maybe : MaybeBig -> Set -> (Set -> Set) -> Set { Maybe Nothing A F = A ; Maybe (Just u B) A F = F (BigOut B)-} +}
+ test/succeed/MutualRecordsNoEta.golden view
@@ -0,0 +1,23 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MutualRecordsNoEta.ma" ---+--- scope checking ---+--- type checking ---+type  D : -(i : Size) -> Set+term  D.inn : .[i : Size] -> ^(out : R i) -> < D.inn out : D i >+term  out : .[i : Size] -> (inn : D i) -> R i+{ out [i] (D.inn #out) = #out+}+type  R : -(i : Size) -> Set+term  R.delay : .[i : Size] -> ^(force : .[j < i] -> D j) -> < R.delay force : R i >+term  force : .[i : Size] -> (delay : R i) -> .[j < i] -> D j+{ force [i] (R.delay #force) = #force+}+term  inh : .[i : Size] -> R i+{ inh [i] .force [j < i] = D.inn (inh [j])+}+type  Empty : Set+term  elim : D # -> (D # -> Empty) -> Empty+{ elim (D.inn r) f = f (r .force [#])+}+--- evaluating ---+--- closing "MutualRecordsNoEta.ma" ---
+ test/succeed/Nested.golden view
@@ -0,0 +1,15 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Nested.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : + Size -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term  Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+term  nested : .[i : Size] -> Nat i -> Nat i+{ nested [i] (Nat.zero [j < i]) = Nat.zero [j]+; nested [i] (Nat.succ [j < i] n) = nested [j] (nested [j] n)+}+--- evaluating ---+--- closing "Nested.ma" ---
test/succeed/Nested.ma view
+ test/succeed/NewSyntaxTour.golden view
@@ -0,0 +1,36 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "NewSyntaxTour.ma" ---+--- scope checking ---+--- type checking ---+term  two : .[A : Set] -> (f : A -> A) -> (a : A) -> A+term  two = [\ A ->] \ f -> \ a -> f (f a)+term  two1 : .[A : Set] -> (f : A -> A) -> (a : A) -> A+term  two1 = [\ A ->] \ f -> \ a -> f (f a)+term  two2 : .[A : Set] -> (f : A -> A) -> (a : A) -> A+term  two2 = [\ A ->] \ f -> \ a -> f (f a)+block fails as expected, error message:+boundedSize+/// new j <= #+/// new i < v0+/// adding size rel. v1 + 1 <= v0+/// cannot add hypothesis v1 + 1 <= v0 because it is not satisfyable under all possible valuations of the current hypotheses+term  twice : .[F : Set -> Set] -> (f : .[A : Set] -> A -> F A) -> .[A : Set] -> (a : A) -> F (F A)+term  twice = [\ F ->] \ f -> [\ A ->] \ a -> let [FA : Set]+                                        = F A+                                in let fa : F A+                                          = f [A] a+                                   in f [FA] fa+size  localLetTel : Size+size  localLetTel = let two1 : .[A : Set] -> (f : A -> A) -> (a : A) -> A+         = [\ A ->] \ f -> \ a -> f (f a)+in 0+size  localLetIrr : .[A : Set] -> (f : .[A -> A] -> Size) -> .[a : A] -> Size+size  localLetIrr = [\ A ->] \ f -> [\ a ->] let [g : (x : A) -> A]+                                = \ x -> a+                         in f [g]+size  localLetIrr1 : .[A : Set] -> (f : .[A -> A] -> Size) -> .[a : A] -> Size+size  localLetIrr1 = [\ A ->] \ f -> [\ a ->] let [g : (x : A) -> A]+                                = \ x -> a+                         in f [g]+--- evaluating ---+--- closing "NewSyntaxTour.ma" ---
+ test/succeed/Nisse2012-02-17.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Nisse2012-02-17.ma" ---+--- scope checking ---+--- type checking ---+type  Id : ++(A : Set) -> ^(x : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[x : A] -> < Id.refl : Id A x x >+type  Either : ++(A : Set) -> ++(B : Set) -> Set+term  Either.left : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> < Either.left y0 : Either A B >+term  Either.right : .[A : Set] -> .[B : Set] -> ^(y0 : B) -> < Either.right y0 : Either A B >+type  P : ++(A : Set) -> Set+{ P A = Either A A+}+type  Foo : ++(A : Set) -> P A -> Set+{ Foo A x = (z : A) & Id (P A) x (Either.left z)+}+term  foo : .[A : Set] -> (x : P A) -> Foo A x+{ foo [A] (Either.left x) = (x , Id.refl)+}+--- evaluating ---+--- closing "Nisse2012-02-17.ma" ---
+ test/succeed/Nisse2012-03-06.golden view
@@ -0,0 +1,36 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Nisse2012-03-06.ma" ---+--- scope checking ---+--- type checking ---+type  Id : ++(A : Set) -> ^(x : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[x : A] -> < Id.refl : Id A x x >+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  Either : ++(A : Set) -> ++(B : Set) -> Set+term  Either.left : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> < Either.left y0 : Either A B >+term  Either.right : .[A : Set] -> .[B : Set] -> ^(y0 : B) -> < Either.right y0 : Either A B >+type  Maybe : ++(A : Set) -> Set+type  Maybe = \ A -> Either Unit A+pattern nothing = left unit+pattern just x = right x+ty-u  Monad : ^(F : + Set -> Set) -> Set 1+term  Monad.monad : .[F : + Set -> Set] -> ^(return : .[A : Set] -> A -> F A) -> ^(bind : .[A : Set] -> .[B : Set] -> F A -> (A -> F B) -> F B) -> ^(leftIdentity : .[A : Set] -> .[B : Set] -> (x : A) -> (f : A -> F B) -> Id (F B) (bind [A] [B] (return [A] x) f) (f x)) -> < Monad.monad return bind leftIdentity : Monad F >+term  return : .[F : + Set -> Set] -> (monad : Monad F) -> .[A : Set] -> A -> F A+{ return [F] (Monad.monad #return #bind #leftIdentity) = #return+}+term  bind : .[F : + Set -> Set] -> (monad : Monad F) -> .[A : Set] -> .[B : Set] -> F A -> (A -> F B) -> F B+{ bind [F] (Monad.monad #return #bind #leftIdentity) = #bind+}+term  leftIdentity : .[F : + Set -> Set] -> (monad : Monad F) -> .[A : Set] -> .[B : Set] -> (x : A) -> (f : A -> F B) -> Id (F B) (bind [F] monad [A] [B] (return [F] monad [A] x) f) (f x)+{ leftIdentity [F] (Monad.monad #return #bind #leftIdentity) = #leftIdentity+}+term  maybeT : (F : + Set -> Set) -> (M : Monad F) -> Monad (\ A -> F (Maybe A))+term  maybeT = \ F -> \ M -> Monad.monad ([\ A ->] \ x -> return M [Maybe A] (Either.right x)) ([\ A ->] [\ B ->] \ m -> \ f -> bind M [Maybe A] [Maybe B] m (\ x -> case x : Either Unit A+                                                                                                                                                      { Either.left un!t -> return M [Maybe B] (Either.left Unit.unit)+                                                                                                                                                      ; Either.right x -> f x+                                                                                                                                                      })) ([\ A ->] [\ B ->] \ x -> \ f -> leftIdentity M [Maybe A] [Maybe B] (Either.right x) (\ x -> case x : Either Unit A+                                                                                                                                                                                                                                                       { Either.left un!t -> return M [Maybe B] (Either.left Unit.unit)+                                                                                                                                                                                                                                                       ; Either.right x -> f x+                                                                                                                                                                                                                                                       }))+--- evaluating ---+--- closing "Nisse2012-03-06.ma" ---
+ test/succeed/OverloadedConstructors.golden view
@@ -0,0 +1,52 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "OverloadedConstructors.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(n : Nat) -> < Nat.suc n : Nat >+term  one : Nat+term  one = Nat.suc Nat.zero+term  two : Nat+term  two = Nat.suc one+term  add : Nat -> Nat -> Nat+{ add Nat.zero n = n+; add (Nat.suc m) n = Nat.suc (add m n)+}+type  Fin : ^(n : Nat) -> Set+term  Fin.zero : .[n : Nat] -> < Fin.zero : Fin (Nat.suc n) >+term  Fin.suc : .[n : Nat] -> ^(i : Fin n) -> < Fin.suc i : Fin (Nat.suc n) >+term  weakF1 : .[m : Nat] -> Fin m -> Fin (Nat.suc m)+{ weakF1 [.Nat.suc [m]] Fin.zero = Fin.zero+; weakF1 [.Nat.suc [m]] (Fin.suc i) = Fin.suc (weakF1 [m] i)+}+term  weakF : (n : Nat) -> .[m : Nat] -> Fin m -> Fin (add n m)+{ weakF Nat.zero [m] i = i+; weakF (Nat.suc n) [m] i = weakF1 [add n m] (weakF n [m] i)+}+term  addF : (n : Nat) -> .[m : Nat] -> Fin n -> Fin m -> Fin (add n m)+{ addF (.Nat.suc n) [m] Fin.zero j = weakF (Nat.suc n) [m] j+; addF (.Nat.suc n) [m] (Fin.suc i) j = Fin.suc (addF n [m] i j)+}+type  List : ++(A : Set) -> Set+term  List.nil : .[A : Set] -> < List.nil : List A >+term  List.cons : .[A : Set] -> ^(x : A) -> ^(xs : List A) -> < List.cons x xs : List A >+term  lookupL : .[A : Set] -> (i : Nat) -> (xs : List A) -> A+{ lookupL [A] Nat.zero (List.cons x xs) = x+; lookupL [A] (Nat.suc i) (List.cons x xs) = lookupL [A] i xs+}+type  Vec : ++(A : Set) -> ^(n : Nat) -> Set+term  Vec.nil : .[A : Set] -> < Vec.nil : Vec A Nat.zero >+term  Vec.cons : .[A : Set] -> .[n : Nat] -> ^(head : A) -> ^(tail : Vec A n) -> < Vec.cons head tail : Vec A (Nat.suc n) >+term  head : .[A : Set] -> .[n : Nat] -> (cons : Vec A (Nat.suc n)) -> A+{ head [A] [n] (Vec.cons #head #tail) = #head+}+term  tail : .[A : Set] -> .[n : Nat] -> (cons : Vec A (Nat.suc n)) -> Vec A n+{ tail [A] [n] (Vec.cons #head #tail) = #tail+}+term  lookup : .[A : Set] -> .[n : Nat] -> (i : Fin n) -> (xs : Vec A n) -> A+{ lookup [A] [.Nat.suc [n]] Fin.zero (.Vec.cons x xs) = x+; lookup [A] [.Nat.suc [n]] (Fin.suc i) (.Vec.cons x xs) = lookup [A] [n] i xs+}+--- evaluating ---+--- closing "OverloadedConstructors.ma" ---
+ test/succeed/PTSRule.golden view
@@ -0,0 +1,10 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "PTSRule.ma" ---+--- scope checking ---+--- type checking ---+mixk  T : (i : Size) -> Set $$i+mixk  T = \ i -> Set $i -> Set i+mixk  U : (i : Size) -> Set ?0+mixk  U = \ i -> Set $?1 -> Set ?2+--- evaluating ---+--- closing "PTSRule.ma" ---
+ test/succeed/ParseMultBind.golden view
@@ -0,0 +1,16 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ParseMultBind.ma" ---+--- scope checking ---+--- type checking ---+type  K : (A : Set) -> (B : Set) -> Set+type  K = \ A -> \ B -> A+type  Prod : ++(A : Set) -> ++(B : Set) -> Set+term  Prod.pair : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> ^(y1 : B) -> < Prod.pair y0 y1 : Prod A B >+term  fst : .[A : Set] -> .[B : Set] -> Prod A B -> A+{ fst [A] [B] (Prod.pair a b) = a+}+term  snd : .[A : Set] -> .[B : Set] -> (p : Prod A B) -> B+{ snd [A] [B] (Prod.pair a b) = b+}+--- evaluating ---+--- closing "ParseMultBind.ma" ---
test/succeed/ParseMultBind.ma view
+ test/succeed/ParsePipeOperators.golden view
@@ -0,0 +1,54 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ParsePipeOperators.ma" ---+--- scope checking ---+--- type checking ---+term  three : .[A : Set] -> (f : A -> A) -> (x : A) -> A+term  three = [\ A ->] \ f -> \ x -> f (f (f x))+size  sbla : (f : Size -> Size) -> (x : Size) -> (y : Size) -> Size+size  sbla = \ f -> \ x -> \ y -> f (x + y)+term  threeId : (f : .[A : Set] -> A -> A) -> .[A : Set] -> (x : A) -> A+term  threeId = \ f -> [\ A ->] \ x -> f [A] (f [A] (f [A] x))+block fails as expected, error message:+failure+/// new F : (Size -> Set)+/// new i <= #+/// new B : Set+/// not a type: F (i -> B)+/// inferExpr' F (i -> B)+/// checkApp (Size -> Set) eliminated by i -> B+/// checkExpr 3 |- i -> B : Size+/// checkForced fromList [(i,1),(F,0),(B,2)] |- i -> B : Size+/// inferExpr' i -> B+/// inferExpr: expected i to be a type!+size  success : .[F : Size -> Set] -> .[i : Size] -> .[B : Set] -> (x : B -> F i) -> Size+size  success = [\ F ->] [\ i ->] [\ B ->] \ x -> 0+term  one : .[A : Set] -> (f : A -> A) -> A -> A+term  one = [\ A ->] \ f -> \ x -> f x+term  binApp : .[A : Set] -> .[B : Set] -> .[C : Set] -> (f : A -> B -> C) -> (x : A) -> (y : B) -> C+term  binApp = [\ A ->] [\ B ->] [\ C ->] \ f -> \ x -> \ y -> f x y+term  redex : .[A : Set] -> A -> A+term  redex = [\ A ->] \ x -> let y : A+                      = x+                in y+type  List : ^(A : Set) -> Set+term  List.nil : .[A : Set] -> < List.nil : List A >+term  List.cons : .[A : Set] -> ^(head : A) -> ^(tail : List A) -> < List.cons head tail : List A >+term  evens : .[A : Set] -> List A -> List A+{ evens [A] List.nil = List.nil+; evens [A] (List.cons x List.nil) = List.nil+; evens [A] (List.cons x (List.cons y xs)) = List.cons x (evens [A] xs)+}+type  Prod : ++(A : Set) -> ++(B : Set) -> Set+term  Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term  fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+term  fork : .[A : Set] -> (a : A) -> Prod A A+{ fork [A] a .fst = a+; fork [A] a .snd = a+}+--- evaluating ---+--- closing "ParsePipeOperators.ma" ---
test/succeed/ParsePipeOperators.ma view
@@ -27,7 +27,7 @@   = 0   -- parsed as B -> F i -let one [A : Set] (f : A -> A) : A -> A +let one [A : Set] (f : A -> A) : A -> A   = \ x -> f <| x   -- parsed as \ x -> f x @@ -41,7 +41,7 @@   = \ x -> x |> \ y -> y   -- parsed as \ x -> (\ y -> y) x -data List (A : Set) : Set +data List (A : Set) : Set { nil                             : List A ; cons (head : A) (tail : List A) : List A }@@ -51,7 +51,7 @@ { evens A nil = nil ; evens A <| cons x <| nil = nil ; evens A <| cons x <| cons y <| xs = cons x <| evens A xs-} +}  -- ever tried parens? {- fails@@ -60,7 +60,7 @@ } -} -record Prod ++(A, B : Set) : Set +record Prod ++(A, B : Set) : Set { pair (fst : A) (snd : B) : Prod A B } fields fst, snd @@ -76,5 +76,4 @@ ; fork' A <| a .snd = a } -}- 
+ test/succeed/Pattern.golden view
@@ -0,0 +1,44 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Pattern.ma" ---+--- scope checking ---+--- type checking ---+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+mixk  if : .[i : Size] -> (A : Set i) -> Bool -> ++(a : A) -> ++(b : A) -> A+{ if [i] A Bool.true a b = a+; if [i] A Bool.false a b = b+}+type  If : Bool -> ++(A : Set) -> ++(B : Set) -> Set+{ If Bool.true A B = A+; If Bool.false A B = B+}+type  Plus : ++(A : Set) -> ++(B : Set) -> Set+type  Plus = \ A -> \ B -> (b : Bool) & If b A B+pattern inl a = (true, a)+pattern inr b = (false, b)+term  casePlus : .[A : Set] -> .[B : Set] -> .[C : Set] -> (A -> C) -> (B -> C) -> Plus A B -> C+{ casePlus [A] [B] [C] f g (Bool.true, a) = f a+; casePlus [A] [B] [C] f g (Bool.false, b) = g b+}+type  Maybe : ++(A : Set) -> Set+type  Maybe = Plus Unit+pattern nothing = inl unit+pattern just a = inr a+term  maybe : .[A : Set] -> .[B : Set] -> B -> (A -> B) -> Maybe A -> B+{ maybe [A] [B] b f (Bool.true, un!t) = b+; maybe [A] [B] b f (Bool.false, a) = f a+}+term  mapMaybe : .[A : Set] -> .[B : Set] -> (A -> B) -> Maybe A -> Maybe B+term  mapMaybe = [\ A ->] [\ B ->] \ f -> maybe [A] [Maybe B] (Bool.true , Unit.unit) (\ a -> (Bool.false , f a))+type  ListF : ++(A : Set) -> ++(X : Set) -> Set+type  ListF = \ A -> \ X -> Maybe (A & X)+type  List : ++(A : Set) -> ++(i : Size) -> Set+{ List A i = .[j < i] & ListF A (List A j)+}+pattern nil j = (j, nothing)+pattern cons j a as = (j, just (a, as))+--- evaluating ---+--- closing "Pattern.ma" ---
test/succeed/Pattern.ma view
@@ -4,7 +4,7 @@  -- * Booleans -data Bool : Set +data Bool : Set { true  : Bool ; false : Bool }
+ test/succeed/PatternParameters.golden view
@@ -0,0 +1,95 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "PatternParameters.ma" ---+--- scope checking ---+--- type checking ---+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  Bool : Set+term  Bool.false : < Bool.false : Bool >+term  Bool.true : < Bool.true : Bool >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(n : Nat) -> < Nat.suc n : Nat >+term  plus : Nat -> Nat -> Nat+{ plus Nat.zero m = m+; plus (Nat.suc n) m = Nat.suc (plus n m)+}+type  List : ++(A : Set) -> Set+term  List.nil : .[A : Set] -> < List.nil : List A >+term  List.cons : .[A : Set] -> ^(x : A) -> ^(xs : List A) -> < List.cons x xs : List A >+type  OldVec : ++(A : Set) -> ^(n : Nat) -> Set+term  OldVec.oldvnil : .[A : Set] -> < OldVec.oldvnil : OldVec A Nat.zero >+term  OldVec.oldvcons : .[A : Set] -> .[n : Nat] -> ^(oldvhead : A) -> ^(oldvtail : OldVec A n) -> < OldVec.oldvcons n oldvhead oldvtail : OldVec A (Nat.suc n) >+term  oldvhead : .[A : Set] -> ^(n : Nat) -> (oldvcons : OldVec A (Nat.suc n)) -> A+{ oldvhead [A] n (OldVec.oldvcons [.n] #oldvhead #oldvtail) = #oldvhead+}+term  oldvtail : .[A : Set] -> ^(n : Nat) -> (oldvcons : OldVec A (Nat.suc n)) -> OldVec A n+{ oldvtail [A] n (OldVec.oldvcons [.n] #oldvhead #oldvtail) = #oldvtail+}+type  Vec : ++(A : Set) -> ^(n : Nat) -> Set+term  Vec.vnil : .[A : Set] -> < Vec.vnil : Vec A Nat.zero >+term  Vec.vcons : .[A : Set] -> .[n : Nat] -> ^(vhead : A) -> ^(vtail : Vec A n) -> < Vec.vcons vhead vtail : Vec A (Nat.suc n) >+term  vhead : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> A+{ vhead [A] [n] (Vec.vcons #vhead #vtail) = #vhead+}+term  vtail : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> Vec A n+{ vtail [A] [n] (Vec.vcons #vhead #vtail) = #vtail+}+term  append : .[A : Set] -> (n : Nat) -> .[m : Nat] -> Vec A n -> Vec A m -> Vec A (plus n m)+{ append [A] Nat.zero [m] Vec.vnil ys = ys+; append [A] (Nat.suc n) [m] (Vec.vcons x xs) ys = Vec.vcons x (append [A] n [m] xs ys)+}+type  Fin : ^(n : Nat) -> Set+term  Fin.fzero : .[n : Nat] -> < Fin.fzero : Fin (Nat.suc n) >+term  Fin.fsuc : .[n : Nat] -> ^(i : Fin n) -> < Fin.fsuc i : Fin (Nat.suc n) >+term  lookup : .[A : Set] -> (n : Nat) -> (i : Fin n) -> (xs : Vec A n) -> A+{ lookup [A] Nat.zero () Vec.vnil+; lookup [A] (Nat.suc n) Fin.fzero (Vec.vcons x xs) = x+; lookup [A] (Nat.suc n) (Fin.fsuc i) (Vec.vcons x xs) = lookup [A] n i xs+}+type  Ty : Set+term  Ty.nat : < Ty.nat : Ty >+term  Ty.arr : ^(a : Ty) -> ^(b : Ty) -> < Ty.arr a b : Ty >+type  Cxt : Set+type  Cxt = List Ty+type  Var : ^(cxt : Cxt) -> ^(a : Ty) -> Set+term  Var.vzero : .[a : Ty] -> .[cxt : List Ty] -> .[a : Ty] -> < Var.vzero : Var (List.cons a cxt) a >+term  Var.vsuc : .[a : Ty] -> .[cxt : List Ty] -> .[b : Ty] -> ^(x : Var cxt b) -> < Var.vsuc x : Var (List.cons a cxt) b >+type  Tm : ^(cxt : Cxt) -> ^(a : Ty) -> Set+term  Tm.var : .[cxt : Cxt] -> .[a : Ty] -> ^(x : Var cxt a) -> < Tm.var x : Tm cxt a >+term  Tm.app : .[cxt : List Ty] -> .[b : Ty] -> ^(a : Ty) -> ^(r : Tm cxt (Ty.arr a b)) -> ^(s : Tm cxt a) -> < Tm.app a r s : Tm cxt b >+term  Tm.abs : .[cxt : List Ty] -> .[a : Ty] -> .[b : Ty] -> ^(t : Tm (List.cons a cxt) b) -> < Tm.abs t : Tm cxt (Ty.arr a b) >+type  Sem : Ty -> Set+{ Sem Ty.nat = Nat+; Sem (Ty.arr a b) = Sem a -> Sem b+}+type  Env : Cxt -> Set+{ Env List.nil = Unit+; Env (List.cons a as) = Sem a & Env as+}+term  val : (cxt : Cxt) -> .[a : Ty] -> Var cxt a -> Env cxt -> Sem a+{ val (List.cons a cxt) [.a] Var.vzero (v, vs) = v+; val (List.cons a cxt) [b] (Var.vsuc x) (v, vs) = val cxt [b] x vs+}+term  sem : (cxt : Cxt) -> (a : Ty) -> Tm cxt a -> Env cxt -> Sem a+{ sem cxt a (Tm.var x) rho = val cxt [a] x rho+; sem cxt b (Tm.app a r s) rho = sem cxt (Ty.arr a b) r rho (sem cxt a s rho)+; sem cxt (Ty.arr a b) (Tm.abs t) rho v = sem (List.cons a cxt) b t (v , rho)+}+type  Id : ^(A : Set) -> ^(x : A) -> ^(y : A) -> Set+term  Id.refl : .[A : Set] -> .[x : A] -> .[x : A] -> < Id.refl : Id A x x >+term  subst : .[A : Set] -> .[P : A -> Set] -> .[x : A] -> .[y : A] -> Id A x y -> P x -> P y+{ subst [A] [P] [x] [.x] Id.refl h = h+}+block fails as expected, error message:+trueIsFalse+/// checkExpr 0 |- refl : Id Bool Bool.true Bool.false+/// checkForced fromList [] |- refl : Id Bool Bool.true Bool.false+/// instConLType'+/// instConType:+cannot match parameters [Bool, Bool.true, Bool.false]+against patterns [A, x, x]+when instantiating type .[A : Set] -> .[x : A] -> .[x : A] -> < Id.refl : Id A x x >+of constructor Id.refl+--- evaluating ---+--- closing "PatternParameters.ma" ---
+ test/succeed/Polarities.golden view
@@ -0,0 +1,43 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Polarities.ma" ---+--- scope checking ---+--- type checking ---+type  Const : ++ Set -> .[Set] -> Set+type  Const = \ A -> [\ X ->] A+type  DNeg : ^ Set -> + Set -> Set+type  DNeg = \ B -> \ A -> (A -> B) -> B+type  Empty : Set+type  Nat : + Size -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term  Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+type  Cont' : + Set -> Set+type  Cont' = DNeg Empty+term  cast' : .[i : Size] -> ^ Cont' (Nat i) -> Cont' (Nat #)+term  cast' = [\ i ->] \ x -> x+type  Cont : +(A : Set) -> Set+term  Cont.cont : .[A : Set] -> ^(uncont : DNeg Empty A) -> < Cont.cont uncont : Cont A >+term  uncont : .[A : Set] -> (cont : Cont A) -> DNeg Empty A+{ uncont [A] (Cont.cont #uncont) = #uncont+}+term  cast : .[i : Size] -> ^ Cont (Nat i) -> Cont (Nat #)+term  cast = [\ i ->] \ x -> x+type  Id : Nat # -> ++ Set -> Set+{ Id (Nat.zero [.#]) A = A+; Id (Nat.succ [.#] n) A = A+}+term  kast : .[i : Size] -> .[n : Nat i] -> Id n (Nat i) -> Id n (Nat #)+term  kast = [\ i ->] [\ n ->] \ x -> x+type  Tree : -(B : Set) -> ++(A : Set) -> Set+term  Tree.leaf : .[B : Set] -> .[A : Set] -> < Tree.leaf : Tree B A >+term  Tree.node : .[B : Set] -> .[A : Set] -> ^(y0 : A) -> ^(y1 : B -> Tree B A) -> < Tree.node y0 y1 : Tree B A >+type  STree : -(B : Set) -> ++(A : Set) -> + Size -> Set+term  STree.sleaf : .[B : Set] -> .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> STree B A s!ze+term  STree.sleaf : .[B : Set] -> .[A : Set] -> .[i : Size] -> < STree.sleaf i : STree B A $i >+term  STree.snode : .[B : Set] -> .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ (B -> STree B A i) -> STree B A s!ze+term  STree.snode : .[B : Set] -> .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : B -> STree B A i) -> < STree.snode i y1 y2 : STree B A $i >+type  Mu : ++(F : ++ Set -> Set) -> Set+term  Mu.inn : .[F : ++ Set -> Set] -> ^(y0 : F (Mu F)) -> < Mu.inn y0 : Mu F >+--- evaluating ---+--- closing "Polarities.ma" ---
test/succeed/Polarities.ma view
@@ -1,6 +1,6 @@ -- 2010-06-19, 2010-11-09 -let Const : ++ Set -> . Set -> Set +let Const : ++ Set -> . Set -> Set           = \ A -> \ X -> A  let DNeg : ^ Set -> + Set -> Set@@ -20,7 +20,7 @@ let cast' : [i : Size] -> ^ Cont' (Nat i) -> Cont' (Nat #)          = \ i -> \ x -> x -data Cont +(A : Set) : Set +data Cont +(A : Set) : Set { cont : (uncont : DNeg Empty A) -> Cont A } @@ -59,7 +59,7 @@   -(++) = -   -(+)  = -   -(-)  = +-  -(p)  = p +  -(p)  = p   o(o)  = o   o(++) = .   o(+)  = .@@ -76,7 +76,7 @@    --------------------------------  p in {++,+,o}   Gamma, p(x : A), Gamma' |- x : A-  +   Gamma, p(x : A) |- t : B   ----------------------------   Gamma |- \xt : p(x : A) -> B@@ -84,6 +84,6 @@   Gamma |- r : p(x : A) -> B   p(Gamma) |- s : A   ----------------------------------------------   Gamma |- r s: B[s/x]-    +  -}
+ test/succeed/PredDepType.golden view
@@ -0,0 +1,19 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "PredDepType.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : + Size -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term  Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+type  Pred : (i : Size) -> (x : Nat $i) -> Set+{ Pred i (Nat.succ [.i] n) = Nat i+; Pred i (Nat.zero [.i]) = Nat $i+}+term  pred : .[i : Size] -> (x : Nat $i) -> Pred i x+{ pred [i] (Nat.succ [.i] n) = n+; pred [i] (Nat.zero [.i]) = Nat.zero [i]+}+--- evaluating ---+--- closing "PredDepType.ma" ---
test/succeed/PredDepType.ma view
@@ -16,6 +16,6 @@ {- DOES NOT WORK fun minus : [i : Size] -> Nat i -> Nat # -> Nat i { minus i n (zero .#) = n-; minus i n (succ .# m) = minus i (pred i n) m +; minus i n (succ .# m) = minus i (pred i n) m } -}
+ test/succeed/Prelude.golden view
@@ -0,0 +1,40 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Prelude.ma" ---+--- scope checking ---+--- type checking ---+type  Empty : Set+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  If : (b : Bool) -> ++(A : Set) -> ++(B : Set) -> Set+{ If Bool.true A B = A+; If Bool.false A B = B+}+type  Either : ++(A : Set) -> ++(B : Set) -> Set+type  Either = \ A -> \ B -> (b : Bool) & If b B A+pattern left a = (false, a)+pattern right b = (true, b)+type  Maybe : ++(A : Set) -> Set+type  Maybe = \ A -> Either Unit A+pattern nothing = left unit+pattern just a = right a+type  Nat : + Size -> Set+{ Nat i = .[j < i] & Maybe (Nat j)+}+pattern zero j = (j, nothing)+pattern succ j n = (j, just n)+term  zer : .[i : Size] -> Nat $i+term  zer = [\ i ->] ([0] , (Bool.false , Unit.unit))+term  suc : .[i < #] -> (n : Nat i) -> Nat $i+term  suc = [\ i ->] \ n -> ([i] , (Bool.true , n))+term  suc : .[i : Size] -> (n : Nat i) -> Nat $i+{ suc [i] ([i' < i], m) = ([$i'] , (Bool.true , ([i'] , m)))+}+term  plus : .[i : Size] -> (n : Nat i) -> .[j : Size] -> (m : Nat j) -> Nat (i + j)+{ plus [i] ([i' < i], (Bool.false, un!t)) [j] m = m+; plus [i] ([i' < i], (Bool.true, n)) [j] m = suc [i' + j] (plus [i'] n [j] m)+}+--- evaluating ---+--- closing "Prelude.ma" ---
test/succeed/Prelude.ma view
@@ -26,11 +26,11 @@       let zer [i : Size]          : Nat $i = zero 0 check let suc [i < #] (n : Nat i) : Nat $i = succ i n -fun suc : [i : Size] (n : Nat i) -> Nat $i +fun suc : [i : Size] (n : Nat i) -> Nat $i { suc i (i', m) = succ $i' (i', m) } -fun plus : [i : Size] -> (n : Nat i) -> +fun plus : [i : Size] -> (n : Nat i) ->            [j : Size] -> (m : Nat j) -> Nat (i+j) { plus i (zero i')   j m = m ; plus i (succ i' n) j m = suc (i'+j) <| plus i' n j m
+ test/succeed/Prod.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Prod.ma" ---+--- scope checking ---+--- type checking ---+type  Prod : ^(A : Set) -> ^(B : Set) -> Set+term  Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term  fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+--- evaluating ---+--- closing "Prod.ma" ---
+ test/succeed/Projections.golden view
@@ -0,0 +1,19 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Projections.ma" ---+--- scope checking ---+--- type checking ---+type  Sigma : ++(A : Set) -> ++(B : A -> Set) -> Set+term  Sigma.pair : .[A : Set] -> .[B : A -> Set] -> ^(fst : A) -> ^(snd : B fst) -> < Sigma.pair fst snd : Sigma A B >+term  fst : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> A+{ fst [A] [B] (Sigma.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> B (fst [A] [B] pair)+{ snd [A] [B] (Sigma.pair #fst #snd) = #snd+}+term  eta : .[A : Set] -> .[B : Set] -> Sigma A (\ x -> B) -> Sigma A (\ x -> B)+{ eta [A] [B] p = Sigma.pair (fst p) (snd p)+}+term  builtinEta : .[A : Set] -> .[B : Set] -> (p : Sigma A (\ x -> B)) -> < Sigma.pair (fst p) (snd p) : Sigma A (\ x -> B) >+term  builtinEta = [\ A ->] [\ B ->] \ p -> p+--- evaluating ---+--- closing "Projections.ma" ---
test/succeed/Projections.ma view
@@ -9,6 +9,6 @@ { eta A B p = pair (fst p) (snd p) } -let builtinEta [A, B : Set] (p : Sigma A (\ x -> B)) +let builtinEta [A, B : Set] (p : Sigma A (\ x -> B))   : < pair (fst p) (snd p) : Sigma A (\ x -> B) >   = p
+ test/succeed/Rose.golden view
@@ -0,0 +1,19 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Rose.ma" ---+--- scope checking ---+--- type checking ---+type  List : ++(A : Set) -> Set+term  List.nil : .[A : Set] -> < List.nil : List A >+term  List.cons : .[A : Set] -> ^(y0 : A) -> ^(y1 : List A) -> < List.cons y0 y1 : List A >+term  mapList : .[A : Set] -> .[B : Set] -> (A -> B) -> List A -> List B+{ mapList [A] [B] f List.nil = List.nil+; mapList [A] [B] f (List.cons a as) = List.cons (f a) (mapList [A] [B] f as)+}+type  Rose : ++(A : Set) -> + Size -> Set+term  Rose.rose : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ List (Rose A i) -> Rose A s!ze+term  Rose.rose : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : List (Rose A i)) -> < Rose.rose i y1 y2 : Rose A $i >+term  mapRose : .[A : Set] -> .[B : Set] -> (A -> B) -> .[i : Size] -> Rose A i -> Rose B i+{ mapRose [A] [B] f [.$i] (Rose.rose [i] a rs) = Rose.rose [i] (f a) (mapList [Rose A i] [Rose B i] (mapRose [A] [B] f [i]) rs)+}+--- evaluating ---+--- closing "Rose.ma" ---
test/succeed/Rose.ma view
@@ -9,11 +9,11 @@ }  sized data Rose (+ A : Set) : Size -> Set-{ rose : [i : Size] -> A -> List (Rose A i) -> Rose A ($ i) +{ rose : [i : Size] -> A -> List (Rose A i) -> Rose A ($ i) } -fun mapRose : [A : Set] -> [B : Set] -> (A -> B) -> +fun mapRose : [A : Set] -> [B : Set] -> (A -> B) ->               [i : Size] -> Rose A i -> Rose B i-{ mapRose A B f .($ i) (rose i a rs) = +{ mapRose A B f .($ i) (rose i a rs) =   rose i (f a) (mapList (Rose A i) (Rose B i) (mapRose A B f i) rs) }
+ test/succeed/SP.golden view
@@ -0,0 +1,26 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "SP.ma" ---+--- scope checking ---+--- type checking ---+type  Str : ++(A : Set) -> - Size -> Set+term  Str.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Str A i) -> < Str.cons i y1 y2 : Str A $i >+type  A : Set+{}+type  B : Set+{}+type  SP' : ++(X : Set) -> + Size -> Set+term  SP'.get : .[X : Set] -> .[s!ze : Size] -> .[j < s!ze] -> ^ (A -> SP' X j) -> SP' X s!ze+term  SP'.get : .[X : Set] -> .[j : Size] -> ^(y1 : A -> SP' X j) -> < SP'.get j y1 : SP' X $j >+term  SP'.out : .[X : Set] -> .[s!ze : Size] -> .[j < s!ze] -> ^ X -> SP' X s!ze+term  SP'.out : .[X : Set] -> .[j : Size] -> ^(y1 : X) -> < SP'.out j y1 : SP' X $j >+type  SP : - Size -> Set+term  SP.put : .[i : Size] -> ^(y1 : B) -> ^(y2 : SP' (SP i) #) -> < SP.put i y1 y2 : SP $i >+term  run' : .[i : Size] -> (SP i -> Str A # -> Str B i) -> .[j : Size] -> SP' (SP i) j -> Str A # -> Str B i+{ run' [i] r [j] (SP'.get [k < j] f) (Str.cons [.#] a as) = run' [i] r [k] (f a) as+; run' [i] r [j] (SP'.out [k < j] sp) as = r sp as+}+term  run : .[i : Size] -> SP i -> Str A # -> Str B i+{ run $[i < #] (SP.put [.i] b sp) as = Str.cons [i] b (run' [i] (run [i]) [#] sp as)+}+--- evaluating ---+--- closing "SP.ma" ---
test/succeed/SP.ma view
@@ -11,12 +11,12 @@ fun A : Set {} fun B : Set {} -sized data SP' (+ X : Set) : Size -> Set +sized data SP' (+ X : Set) : Size -> Set { get : [j : Size] -> (A -> SP' X j) -> SP' X ($ j) ; out : [j : Size] -> X -> SP' X ($ j) } -sized codata SP : Size -> Set +sized codata SP : Size -> Set { put : [i : Size] -> B -> SP' (SP i) # -> SP ($ i) } @@ -29,5 +29,4 @@ cofun run : [i : Size] -> SP i -> Str A # -> Str B i { run ($ i) (put .i b sp) as  = cons i b (run' i (run i) # sp as) }- 
+ test/succeed/ScopeCheckFunDef.golden view
@@ -0,0 +1,24 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ScopeCheckFunDef.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+term  not : Bool -> Bool+{ not Bool.true = Bool.false+; not Bool.false = Bool.true+}+term  notnot : Bool -> Bool+{ notnot x = not (not x)+}+type  T : Bool -> Set+{ T Bool.true = Bool+; T Bool.false = Bool+}+term  f : (b : Bool) -> T b -> T b+{ f Bool.true x = x+; f Bool.false x = x+}+--- evaluating ---+--- closing "ScopeCheckFunDef.ma" ---
+ test/succeed/SgPredWrongMon.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "SgPredWrongMon.ma" ---+--- scope checking ---+--- type checking ---+univ  Pred : - Set -> Set 1+univ  Pred = \ A -> A -> Set+type  Sg : ++(A : Set) -> ^ A -> Set+term  Sg.sg : .[A : Set] -> .[elem : A] -> < Sg.sg elem : Sg A elem >+type  Nat : + Size -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term  Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+type  Sg' : +(A : Set) -> A -> Set+type  Sg' = Sg+--- evaluating ---+--- closing "SgPredWrongMon.ma" ---
test/succeed/SgPredWrongMon.ma view
+ test/succeed/SolverBugStreamFixed.golden view
@@ -0,0 +1,120 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "SolverBugStreamFixed.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.tt : < Bool.tt : Bool >+term  Bool.ff : < Bool.ff : Bool >+term  ifthenelse : Bool -> .[A : Set] -> A -> A -> A+{ ifthenelse Bool.tt [A] a1 a2 = a1+; ifthenelse Bool.ff [A] a1 a2 = a2+}+type  SNat : + Size -> Set+term  SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term  SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term  SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term  SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+type  Nat : Set+type  Nat = SNat #+term  add : Nat -> Nat -> Nat+{ add (SNat.zero [.#]) = \ y -> y+; add (SNat.succ [.#] x) = \ y -> SNat.succ [#] (add x y)+}+term  leq : Nat -> Nat -> Bool+{ leq (SNat.zero [.#]) y = Bool.tt+; leq (SNat.succ [.#] x) (SNat.zero [.#]) = Bool.ff+; leq (SNat.succ [.#] x) (SNat.succ [.#] y) = leq x y+}+type  Stream : ++(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term  tail : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ tail [A] [i] (Stream.cons [.i] x xs) = xs+}+term  head : .[A : Set] -> .[i : Size] -> Stream A $i -> A+{ head [A] [i] (Stream.cons [.i] x xs) = x+}+term  nth : .[A : Set] -> .[i : Size] -> SNat i -> Stream A i -> A+{ nth [A] [i] (SNat.zero [j < i]) xs = head [A] [j] xs+; nth [A] [i] (SNat.succ [j < i] n) xs = nth [A] [j] n (tail [A] [j] xs)+}+term  map : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Stream A i -> Stream B i+{ map [A] [B] $[i < #] f (Stream.cons [.i] x xl) = Stream.cons [i] (f x) (map [A] [B] [i] f xl)+}+term  zipWith : .[A : Set] -> .[B : Set] -> .[C : Set] -> (A -> B -> C) -> .[i : Size] -> Stream A i -> Stream B i -> Stream C i+{ zipWith [A] [B] [C] f $[i < #] (Stream.cons [.i] a as) (Stream.cons [.i] b bs) = Stream.cons [i] (f a b) (zipWith [A] [B] [C] f [i] as bs)+}+term  merge : .[i : Size] -> (Nat -> Nat -> Bool) -> Stream Nat i -> Stream Nat i -> Stream Nat i+{ merge $[i < #] le (Stream.cons [.i] x xs) (Stream.cons [.i] y ys) = ifthenelse (le x y) [Stream Nat $i] (Stream.cons [i] x (merge [i] le xs (Stream.cons [i] y ys))) (Stream.cons [i] y (merge [i] le (Stream.cons [i] x xs) ys))+}+term  n0 : Nat+term  n0 = SNat.zero [#]+term  n1 : Nat+term  n1 = SNat.succ [#] n0+term  n2 : Nat+term  n2 = SNat.succ [#] n1+term  n3 : Nat+term  n3 = SNat.succ [#] n2+term  n4 : Nat+term  n4 = SNat.succ [#] n3+term  n5 : Nat+term  n5 = SNat.succ [#] n4+term  double : Nat -> Nat+term  double = \ n -> add n n+term  triple : Nat -> Nat+term  triple = \ n -> add n (double n)+term  ham : .[i : Size] -> Stream Nat i+{ ham $[i < #] = Stream.cons [i] n1 (merge [i] leq (map [Nat] [Nat] [i] double (ham [i])) (map [Nat] [Nat] [i] triple (ham [i])))+}+term  fib : .[i : Size] -> Stream Nat i+{ fib $[i < #] = Stream.cons [i] n0 (zipWith [Nat] [Nat] [Nat] add [i] (Stream.cons [i] n1 (fib [i])) (fib [i]))+}+term  fibIter' : (x : Nat) -> (y : Nat) -> .[i : Size] -> Stream Nat i+{ fibIter' x y $[i < #] = Stream.cons [i] x (fibIter' y (add x y) [i])+}+term  fibIter : Stream Nat #+term  fibIter = fibIter' n1 n1 [?14]+term  fibIter4 : Nat+term  fibIter4 = nth [Nat] [#] n4 fibIter+term  fib1 : Nat+term  fib1 = nth [Nat] [#] n1 (fib [#])+term  fib2 : Nat+term  fib2 = nth [Nat] [#] n2 (fib [#])+term  fib3 : Nat+term  fib3 = nth [Nat] [#] n3 (fib [#])+term  fib4 : Nat+term  fib4 = nth [Nat] [#] n4 (fib [#])+term  fib5 : Nat+term  fib5 = nth [Nat] [#] n5 (fib [#])+type  Leq : ^ Nat -> ^ Nat -> Set+term  Leq.lqz : .[x : Nat] -> < Leq.lqz x : Leq (SNat.zero [#]) x >+term  Leq.lqs : .[x : Nat] -> .[y : Nat] -> ^(y2 : Leq x y) -> < Leq.lqs x y y2 : Leq (SNat.succ [#] x) (SNat.succ [#] y) >+type  Increasing : - Size -> ^ Stream Nat # -> Set+term  Increasing.inc : .[i : Size] -> .[x : Nat] -> .[y : Nat] -> ^(y3 : Leq x y) -> .[tl : Stream Nat #] -> ^(y5 : Increasing i (Stream.cons [#] y tl)) -> < Increasing.inc i x y y3 tl y5 : Increasing $i (Stream.cons [#] x (Stream.cons [#] y tl)) >+type  Eq : ++(A : Set) -> ^ A -> ^ A -> Set+term  Eq.refl : .[A : Set] -> .[a : A] -> < Eq.refl a : Eq A a a >+term  proof : Eq (Stream Nat #) (tail [Nat] [#] fibIter) (tail [Nat] [#] fibIter)+term  proof = Eq.refl [tail [Nat] [#] fibIter]+term  succ_ : .[i : Size] -> SNat i -> SNat $i+term  succ_ = [\ i ->] \ x -> SNat.succ [i] x+term  evil : .[i : Size] -> Stream Nat i+{ evil $[i < #] = map [Nat] [Nat] [$i] (succ_ [#]) (Stream.cons [i] (SNat.zero [#]) (evil [i]))+}+term  cons_ : .[A : Set] -> .[i : Size] -> A -> Stream A i -> Stream A $i+term  cons_ = [\ A ->] [\ i ->] \ a -> \ as -> Stream.cons [i] a as+term  dmerge : .[A : Set] -> .[i : Size] -> Stream (Stream A i) i -> Stream A i+{ dmerge [A] $[i < #] (Stream.cons [.i] ys yss) = Stream.cons [i] (head [A] [i] ys) (dmerge [A] [i] (zipWith [A] [Stream A i] [Stream A i] (cons_ [A] [i]) [i] (tail [A] [i] ys) yss))+}+--- evaluating ---+fibIter4 has whnf (head (SNat #) # (tail (SNat #) # (tail (SNat #) # (tail (SNat #) # (tail (SNat #) # (fibIter' n1 n1 ?14))))))+fibIter4 evaluates to head (SNat #) # (tail (SNat #) # (tail (SNat #) # (tail (SNat #) # (tail (SNat #) # (fibIter' (SNat.succ # (SNat.zero #)) (SNat.succ # (SNat.zero #)) ?14)))))+fib1 has whnf SNat.succ{i = #; y1 = SNat.zero{i = #}}+fib1 evaluates to SNat.succ # (SNat.zero #)+fib2 has whnf SNat.succ{i = #; y1 = SNat.zero{i = #}}+fib2 evaluates to SNat.succ # (SNat.zero #)+fib3 has whnf SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.zero{i = #}}}+fib3 evaluates to SNat.succ # (SNat.succ # (SNat.zero #))+fib4 has whnf SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.zero{i = #}}}}+fib4 evaluates to SNat.succ # (SNat.succ # (SNat.succ # (SNat.zero #)))+fib5 has whnf SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.zero{i = #}}}}}}+fib5 evaluates to SNat.succ # (SNat.succ # (SNat.succ # (SNat.succ # (SNat.succ # (SNat.zero #)))))+--- closing "SolverBugStreamFixed.ma" ---
test/succeed/SolverBugStreamFixed.ma view
@@ -1,6 +1,6 @@ -- Booleans ---------------------------------------------------------- -data Bool : Set +data Bool : Set { tt : Bool ; ff : Bool }@@ -12,76 +12,76 @@  -- Nat --------------------------------------------------------------- -sized data SNat : Size -> Set +sized data SNat : Size -> Set { zero : [i : Size] -> SNat ($ i)-; succ : [i : Size] -> SNat i -> SNat ($ i) +; succ : [i : Size] -> SNat i -> SNat ($ i) }  let Nat : Set = SNat # -fun add : Nat -> Nat -> Nat +fun add : Nat -> Nat -> Nat { add (zero .#)   = \ y -> y ; add (succ .# x) = \ y -> succ # (add x y) }  fun leq : Nat -> Nat -> Bool { leq (zero .#)    y          = tt-; leq (succ .# x) (zero .#)   = ff -; leq (succ .# x) (succ .# y) = leq x y +; leq (succ .# x) (zero .#)   = ff+; leq (succ .# x) (succ .# y) = leq x y }  -- Stream ------------------------------------------------------------ -sized codata Stream (+ A : Set) : Size -> Set +sized codata Stream (+ A : Set) : Size -> Set { cons : [i : Size] -> A -> Stream A i -> Stream A ($ i) }- + fun tail : [A : Set] -> [i : Size] -> Stream A ($ i) -> Stream A i { tail A i (cons .i x xs) = xs } -fun head : [A : Set] -> [i : Size] -> Stream A ($ i) -> A +fun head : [A : Set] -> [i : Size] -> Stream A ($ i) -> A { head A i (cons .i x xs) = x } -fun nth : [A : Set] -> [i : Size] -> SNat i -> Stream A i -> A +fun nth : [A : Set] -> [i : Size] -> SNat i -> Stream A i -> A { nth A i (zero (i > j))   xs = head A j xs-; nth A i (succ (i > j) n) xs = nth  A j n (tail A j xs) +; nth A i (succ (i > j) n) xs = nth  A j n (tail A j xs) }  -- map, zip, merge --------------------------------------------------- -cofun map : [A : Set] -> [B : Set] -> [i : Size] -> -            (A -> B) -> Stream A i -> Stream B i +cofun map : [A : Set] -> [B : Set] -> [i : Size] ->+            (A -> B) -> Stream A i -> Stream B i { map A B ($ i) f (cons .i x xl) = cons _ (f x) (map A B _ f xl) }  cofun zipWith : [A : Set] -> [B : Set] -> [C : Set] ->                 (A -> B -> C) -> [i : Size] ->-		Stream A i -> Stream B i -> Stream C i +                Stream A i -> Stream B i -> Stream C i {-  zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) = -	cons i (f a b)  (zipWith A B C f i as bs) +  zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) =+        cons i (f a b)  (zipWith A B C f i as bs) } -cofun merge : [i : Size] -> (Nat -> Nat -> Bool) -> +cofun merge : [i : Size] -> (Nat -> Nat -> Bool) ->               Stream Nat i -> Stream Nat i -> Stream Nat i {-merge ($ i) le (cons .i x xs) (cons .i y ys) = +merge ($ i) le (cons .i x xs) (cons .i y ys) =       ifthenelse (le x y) (Stream Nat _)          (cons _ x (merge _ le xs (cons _ y ys)))-	 (cons _ y (merge _ le (cons _ x xs) ys))     +         (cons _ y (merge _ le (cons _ x xs) ys)) }  {--cofun merge : [i : Size] -> (Nat -> Nat -> Bool) -> +cofun merge : [i : Size] -> (Nat -> Nat -> Bool) ->               Stream Nat i -> Stream Nat i -> Stream Nat i {-merge .($ i) le (cons .i x xs) (cons i y ys) = +merge .($ i) le (cons .i x xs) (cons i y ys) =       ifthenelse (le x y) (Stream Nat _)          (cons _ x (merge _ le xs (cons _ y ys)))-	 (cons _ y (merge _ le (cons _ x xs) ys))     +         (cons _ y (merge _ le (cons _ x xs) ys)) } -} @@ -101,22 +101,22 @@  cofun ham : [i : Size] -> Stream Nat i {-  ham ($ i) = cons _ n1 (merge i leq (map Nat Nat i double (ham i)) +  ham ($ i) = cons _ n1 (merge i leq (map Nat Nat i double (ham i))                                     (map Nat Nat i triple (ham i))) }   {- -- THIS SHOULD NOT TYPECHECK!!-cofun map2 : [i : Size] -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : [i : Size] -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 .($ ($ i)) f (cons .($ i) u (cons i x xl)) = +map2 .($ ($ i)) f (cons .($ i) u (cons i x xl)) =   cons _ (f u) (cons _ (f x) (map2 _ f xl)) }  cofun ham2 : [i : Size] -> Stream Nat i {-  ham2 ($ i) = cons _ n1 (merge i leq (map2 i double (ham2 i)) +  ham2 ($ i) = cons _ n1 (merge i leq (map2 i double (ham2 i))                                      (map2 i triple (ham2 i))) } @@ -148,23 +148,23 @@  cofun fib : [i : Size] -> Stream Nat i {-  fib ($ i) = cons _ n0 (zipWith Nat Nat Nat add i +  fib ($ i) = cons _ n0 (zipWith Nat Nat Nat add i     (cons _ n1 (fib i)) (fib i)) }   -cofun fibIter' : (x : Nat) -> (y : Nat) -> [i : Size] -> Stream Nat i +cofun fibIter' : (x : Nat) -> (y : Nat) -> [i : Size] -> Stream Nat i {   fibIter' x y ($ i) = cons _ x (fibIter' y (add x y) _)-} +} let fibIter : Stream Nat # = (fibIter' n1 n1 _)   -------------------------------------------- --- fibIter(4) = 5 -eval let fibIter4 : Nat = nth Nat # n4 fibIter +-- fibIter(4) = 5+eval let fibIter4 : Nat = nth Nat # n4 fibIter  eval let fib1 : Nat = nth Nat # n1 (fib #) eval let fib2 : Nat = nth Nat # n2 (fib #)@@ -176,15 +176,15 @@ --------------------------------------------  data Leq : Nat -> Nat -> Set-{ lqz : (x : Nat) -> Leq (zero #) x +{ lqz : (x : Nat) -> Leq (zero #) x ; lqs : (x : Nat) -> (y : Nat) -> Leq x y -> Leq (succ # x) (succ # y) }  sized codata Increasing : Size -> Stream Nat # -> Set {-inc : [i : Size] -> (x : Nat) -> (y : Nat) -> Leq x y -> (tl : Stream Nat #) -> +inc : [i : Size] -> (x : Nat) -> (y : Nat) -> Leq x y -> (tl : Stream Nat #) ->       Increasing i (cons # y tl) ->-      Increasing ($ i) (cons # x (cons # y tl)) +      Increasing ($ i) (cons # x (cons # y tl)) }  @@ -193,7 +193,7 @@ refl : [a : A] -> Eq A a a } -let proof : Eq (Stream Nat #) (tail Nat # fibIter) (tail Nat # fibIter) = +let proof : Eq (Stream Nat #) (tail Nat # fibIter) (tail Nat # fibIter) =   refl (tail Nat # fibIter)  @@ -207,21 +207,20 @@ evil ($ i) = map Nat Nat _ (succ_ _) (cons _ (zero _) (evil _)) } --- eval const zzz : Nat = head # (z #) +-- eval const zzz : Nat = head # (z #)    -- convolution (Shin-Cheng Mu)- + let cons_ : [A : Set] -> [i : Size] -> A -> Stream A i -> Stream A $i    = \ A i a as -> cons i a as  cofun dmerge : [A : Set] -> [i : Size] -> Stream (Stream A i) i -> Stream A i {-dmerge A ($ i) (cons .i ys yss) = +dmerge A ($ i) (cons .i ys yss) =   cons i (head A _ ys) (dmerge A i-    (zipWith A (Stream A _) (Stream A _) (cons_ A _) i +    (zipWith A (Stream A _) (Stream A _) (cons_ A _) i             (tail A _ ys) yss)) }- 
+ test/succeed/Squash.golden view
@@ -0,0 +1,102 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Squash.ma" ---+--- scope checking ---+--- type checking ---+type  Id : .[A : Set] -> ^(a : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id [A] a a >+term  elimId : .[A : Set] -> .[P : A -> Set] -> .[a : A] -> .[b : A] -> .[Id [A] a b] -> P a -> P b+{ elimId [A] [P] [a] [.a] [Id.refl] h = h+}+type  Ex : ^(A : Set) -> ^(P : A -> Set) -> Set+term  Ex.exIntro : .[A : Set] -> .[P : A -> Set] -> .[a : A] -> ^(y1 : P a) -> < Ex.exIntro a y1 : Ex A P >+type  Exists : .[i : Size] -> ^(A : Set i) -> ^(P : A -> Set) -> Set+term  Exists.ExIntro : .[i : Size] -> .[A : Set i] -> .[P : A -> Set] -> .[a : A] -> ^(y1 : P a) -> < Exists.ExIntro a y1 : Exists [i] A P >+mixk  proj1 : .[i : Size] -> .[A : Set i] -> .[P : A -> Set] -> Exists [i] A P -> A+block fails as expected, error message:+proj1+/// clause 1+/// right hand side+/// checkExpr 5 |- a : A+/// inferExpr' a+/// inferExpr: variable a : A may not occur+/// , because it is marked as erased+term  ExElim : .[i : Size] -> .[A : Set i] -> .[P : A -> Set] -> Exists [i] A P -> .[C : Set] -> (.[a : A] -> P a -> C) -> C+{ ExElim [i] [A] [P] (Exists.ExIntro [a] p) [C] k = k [a] p+}+type  Subset : ^(A : Set) -> ^(P : A -> Set) -> Set+term  Subset.inSub : .[A : Set] -> .[P : A -> Set] -> ^(outSub : A) -> .[y1 : P outSub] -> < Subset.inSub outSub y1 : Subset A P >+term  outSub' : .[A : Set] -> .[P : A -> Set] -> Subset A P -> A+{ outSub' [A] [P] (Subset.inSub a [p]) = a+}+type  Prf : ++(A : Set) -> Set+term  Prf.prf : .[A : Set] -> .[y0 : A] -> < Prf.prf y0 : Prf A >+term  proofIrr : .[A : Set] -> .[a : Prf A] -> .[b : Prf A] -> Id [Prf A] a b+{ proofIrr [A] [Prf.prf [a]] [Prf.prf [b]] = Id.refl+}+term  proofIrr' : .[A : Set] -> .[a : Prf A] -> .[b : Prf A] -> Id [Prf A] a b+block fails as expected, error message:+proofIrr'+/// clause 1+/// right hand side+/// checkExpr 3 |- refl : Id (Prf A) a b+/// checkForced fromList [(a,1),(A,0),(b,2)] |- refl : Id (Prf A) a b+/// leqVal' (subtyping)  < Id.refl : Id (Prf A) a a >  <=+  Id (Prf A) a b+/// leqVal' (subtyping)  Id (Prf A) a a  <=+  Id (Prf A) a b+/// leqVal'  a : Prf A  <=^  b : Prf A+/// leqApp: head mismatch a != b+term  mapPrf : .[A : Set] -> .[B : Set] -> (A -> B) -> Prf A -> Prf B+{ mapPrf [A] [B] f (Prf.prf [a]) = Prf.prf [f a]+}+term  joinPrf : .[A : Set] -> Prf (Prf A) -> Prf A+{ joinPrf [A] (Prf.prf [Prf.prf [a]]) = Prf.prf [a]+}+term  bindPrf : .[A : Set] -> .[B : Set] -> Prf A -> (A -> Prf B) -> Prf B+block fails as expected, error message:+bindPrf+/// clause 1+/// right hand side+/// checkExpr 4 |- f a : Prf B+/// inferExpr' f a+/// checkApp (v0::Tm -> {Prf B {B = v1, A = v0}}) eliminated by a+/// inferExpr' a+/// inferExpr: variable a : A may not occur+/// , because it is marked as erased+term  bindPrf : .[A : Set] -> .[B : Set] -> Prf A -> (A -> Prf B) -> Prf B+term  bindPrf = [\ A ->] [\ B ->] \ pa -> \ f -> joinPrf [B] (mapPrf [A] [Prf B] f pa)+term  elimPrf : .[A : Set] -> .[P : Prf A -> Set] -> (f : .[a : A] -> P (Prf.prf [a])) -> .[x : Prf A] -> P x+{ elimPrf [A] [P] f [Prf.prf [a]] = f [a]+}+term  isoForall1 : .[A : Set] -> .[B : A -> Set] -> ((x : A) -> Prf (B x)) -> Prf ((x : A) -> B x)+block fails as expected, error message:+isoForall1+/// clause 1+/// right hand side+/// checkExpr 3 |- prf (\ x -> f x) : Prf ((x : A) -> B  x)+/// checkForced fromList [(B,1),(A,0),(f,2)] |- prf (\ x -> f x) : Prf ((x : A) -> B  x)+/// checkApp (.[y0 : ((x : v0::Tm) -> B x{B = (v1 Up (v0::Tm -> {Set {A = v0}})), A = v0})::Tm] -> < Prf.prf y0 : Prf A >{A = {(x : A) -> B x {B = (v1 Up (v0::Tm -> {Set {A = v0}})), A = v0}}}) eliminated by \ x -> f x+/// checkExpr 3 |- \ x -> f x : (x : A) -> B x+/// checkForced fromList [(B,1),(A,0),(f,2)] |- \ x -> f x : (x : A) -> B x+/// new x : v0+/// checkExpr 4 |- f x : B x+/// leqVal' (subtyping)  < f x x : Prf (B  x) >  <=+  B x+/// leqVal' (subtyping)  Prf (B  x)  <=+  B x+/// leqApp: head mismatch Prf != B+term  isoForall2 : .[A : Set] -> .[B : A -> Set] -> Prf ((x : A) -> B x) -> (x : A) -> Prf (B x)+{ isoForall2 [A] [B] (Prf.prf [f]) x = Prf.prf [f x]+}+type  Prod : ++(A : Set) -> ++(B : Set) -> Set+term  Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term  fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+term  isoAnd1 : .[A : Set] -> .[B : Set] -> Prod (Prf A) (Prf B) -> Prf (Prod A B)+{ isoAnd1 [A] [B] (Prod.pair (Prf.prf [a]) (Prf.prf [b])) = Prf.prf [Prod.pair a b]+}+term  isoAnd2 : .[A : Set] -> .[B : Set] -> Prf (Prod A B) -> Prod (Prf A) (Prf B)+{ isoAnd2 [A] [B] (Prf.prf [Prod.pair [a] [b]]) = Prod.pair (Prf.prf [a]) (Prf.prf [b])+}+--- evaluating ---+--- closing "Squash.ma" ---
test/succeed/Squash.ma view
@@ -17,19 +17,19 @@ { exIntro : [a : A] -> P a -> Ex A P } --- Large existentials +-- Large existentials impredicative data Exists [i : Size](A : Set i)(P : A -> Set) : Set { ExIntro : [a : A] -> P a -> Exists i A P }  -- projections not definable (weak Sigma)-fail fun proj1 : [i : Size] -> [A : Set i] -> [P : A -> Set] -> +fail fun proj1 : [i : Size] -> [A : Set i] -> [P : A -> Set] ->                  Exists i A P -> A { proj1 i A P (ExIntro a p) = a -- a cannot appear here! }  -- Exists elimination-fun ExElim : [i : Size] -> [A : Set i] -> [P : A -> Set] -> +fun ExElim : [i : Size] -> [A : Set i] -> [P : A -> Set] ->              Exists i A P -> [C : Set] -> ([a : A] -> P a -> C) -> C { ExElim i A P (ExIntro a p) C k = k a p }@@ -93,7 +93,7 @@ fun elimPrf : [A : Set] -> [P : Prf A -> Set] ->               (f : [a : A] -> P (prf a)) ->               [x : Prf A] -> P x-{ elimPrf A P f (prf a) = f a +{ elimPrf A P f (prf a) = f a }  -- More laws for bracket types@@ -120,8 +120,7 @@ }  fun isoAnd2 : [A, B : Set] -> Prf (Prod A B) -> Prod (Prf A) (Prf B)-{ isoAnd2 A B (prf (pair a b)) = +{ isoAnd2 A B (prf (pair a b)) =     pair (prf a) (prf b) }- 
+ test/succeed/Stack.golden view
@@ -0,0 +1,29 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Stack.ma" ---+--- scope checking ---+--- type checking ---+type  Maybe : ^(A : Set) -> Set+term  Maybe.nothing : .[A : Set] -> < Maybe.nothing : Maybe A >+term  Maybe.just : .[A : Set] -> ^(y0 : A) -> < Maybe.just y0 : Maybe A >+type  Stack : ^(A : Set) -> - Size -> Set+term  Stack.stack : .[A : Set] -> .[i : Size] -> ^(top : Maybe A) -> ^(pop : Stack A i) -> ^(push : A -> Stack A i) -> < Stack.stack i top pop push : Stack A $i >+term  top : .[A : Set] -> .[i : Size] -> (stack : Stack A $i) -> Maybe A+{ top [A] [i] (Stack.stack [.i] #top #pop #push) = #top+}+term  pop : .[A : Set] -> .[i : Size] -> (stack : Stack A $i) -> Stack A i+{ pop [A] [i] (Stack.stack [.i] #top #pop #push) = #pop+}+term  push : .[A : Set] -> .[i : Size] -> (stack : Stack A $i) -> A -> Stack A i+{ push [A] [i] (Stack.stack [.i] #top #pop #push) = #push+}+term  pushFunc : .[A : Set] -> .[i : Size] -> (.[j : Size] -> |j| < |i| -> Stack A j -> A -> Stack A j) -> Stack A i -> A -> Stack A i+{ pushFunc [A] $[i < #] f s a = Stack.stack [i] (Maybe.just a) s (f [i] (pushFunc [A] [i] f s a))+}+term  pushFix : .[A : Set] -> .[i : Size] -> Stack A i -> A -> Stack A i+{ pushFix [A] $[i < #] = pushFunc [A] [$i] (pushFix [A])+}+term  empty : .[A : Set] -> .[i : Size] -> Stack A i+{ empty [A] $[i < #] = Stack.stack [i] Maybe.nothing (empty [A] [i]) (pushFix [A] [i] (empty [A] [i]))+}+--- evaluating ---+--- closing "Stack.ma" ---
test/succeed/Stack.ma view
@@ -11,14 +11,14 @@   (top  : Maybe A) ->   (pop  : Stack A i) ->   (push : A -> Stack A i) -> Stack A $i-} +}  -- functional to construct push action cofun pushFunc : [A : Set] -> [i : Size] -> |i| ->                  ([j : Size] -> |j| < |i| -> Stack A j -> A -> Stack A j) ->                  Stack A i -> A -> Stack A i { pushFunc A ($ i) f s a = stack i (just a) s (f i (pushFunc A i f s a))-} +} -- f : [j : Size] -> |j| < |$i| -> Stack A j -> A -> Stack A j -- s : Stack A $i -- by subtyping@@ -39,16 +39,16 @@ cofun empty : [A : Set] -> [i : Size] -> |i| -> Stack A i { empty A ($ i) = stack i nothing (empty A i) (pushFix A i (empty A i)) }- + {- original circular program -data Stack a = Stack +data Stack a = Stack   { top  :: Maybe a   , pop  :: Stack a   , push :: a -> Stack a-  } +  } --- circular auxiliary program to construct stacks +-- circular auxiliary program to construct stacks push' :: Stack a -> a -> Stack a push' s a = s'   where s' = Stack (Just a) s (push' s')
+ test/succeed/StreamDupl.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "StreamDupl.ma" ---+--- scope checking ---+--- type checking ---+type  Stream : ++(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(head : A) -> ^(tail : Stream A i) -> < Stream.cons i head tail : Stream A $i >+term  head : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> A+{ head [A] [i] (Stream.cons [.i] #head #tail) = #head+}+term  tail : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> Stream A i+{ tail [A] [i] (Stream.cons [.i] #head #tail) = #tail+}+term  evens : .[A : Set] -> .[i : Size] -> Stream A (i + i) -> Stream A i+{ evens [A] $[i < #] (Stream.cons [.(i + i + 1)] a (Stream.cons [.(i + i)] b as)) = Stream.cons [i] a (evens [A] [i] as)+}+--- evaluating ---+--- closing "StreamDupl.ma" ---
test/succeed/StreamDupl.ma view
@@ -1,9 +1,9 @@--- 2010-11-01 +-- 2010-11-01 -sized codata Stream ++(A : Set) : -Size -> Set +sized codata Stream ++(A : Set) : -Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A $i }- + cofun evens : [A : Set] -> [i : Size] -> Stream A (i + i) -> Stream A i { evens A ($i) (cons .(i + i + 1) a (cons .(i + i) b as)) =    cons i a (evens A i as)
+ test/succeed/StrictBoundedQCoinductive.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "StrictBoundedQCoinductive.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  C : Size -> Set+type  C = \ i -> .[j : Size] -> |j| < |i| -> Bool+term  foo : .[i : Size] -> C i+{ foo $[i < #] [j] = Bool.true+}+--- evaluating ---+--- closing "StrictBoundedQCoinductive.ma" ---
test/succeed/StrictBoundedQCoinductive.ma view
+ test/succeed/UPolyList.golden view
@@ -0,0 +1,9 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "UPolyList.ma" ---+--- scope checking ---+--- type checking ---+ty-u  List : .[i : Size] -> ^(A : Set i) -> Set i+term  List.nil : .[i : Size] -> .[A : Set i] -> < List.nil : List [i] A >+term  List.cons : .[i : Size] -> .[A : Set i] -> ^(y0 : A) -> ^(y1 : List [i] A) -> < List.cons y0 y1 : List [i] A >+--- evaluating ---+--- closing "UPolyList.ma" ---
test/succeed/UPolyList.ma view
@@ -2,4 +2,4 @@ { nil  : List i A ; cons : A -> List i A -> List i A }- +
+ test/succeed/Universe.golden view
@@ -0,0 +1,15 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Universe.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type  U : Set+term  U.nat : < U.nat : U >+term  U.pi : ^(a : U) -> ^(y1 : El a -> U) -> < U.pi a y1 : U >+{ El U.nat = Nat+; El (U.pi a f) = (x : El a) -> El (f x)+}+--- evaluating ---+--- closing "Universe.ma" ---
test/succeed/Universe.ma view
@@ -7,7 +7,7 @@  mutual { -  data U : Set +  data U : Set   { nat : U   ; pi  : (a : U) -> (El a -> U) -> U   }
+ test/succeed/VecNotErased.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "VecNotErased.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(pred : Nat) -> < Nat.succ pred : Nat >+term  add : Nat -> Nat -> Nat+{ add Nat.zero y = y+; add (Nat.succ x) y = Nat.succ (add x y)+}+type  Vec' : ++(A : Set) -> ^ Nat -> Set+term  Vec'.vnil' : .[A : Set] -> < Vec'.vnil' : Vec' A Nat.zero >+term  Vec'.vcons' : .[A : Set] -> .[n : Nat] -> ^(head' : A) -> ^(tail' : Vec' A n) -> < Vec'.vcons' n head' tail' : Vec' A (Nat.succ n) >+term  head' : .[A : Set] -> ^(n : Nat) -> (vcons' : Vec' A (Nat.succ n)) -> A+{ head' [A] n (Vec'.vcons' [.n] #head' #tail') = #head'+}+term  tail' : .[A : Set] -> ^(n : Nat) -> (vcons' : Vec' A (Nat.succ n)) -> Vec' A n+{ tail' [A] n (Vec'.vcons' [.n] #head' #tail') = #tail'+}+--- evaluating ---+--- closing "VecNotErased.ma" ---
test/succeed/VecNotErased.ma view
@@ -13,14 +13,14 @@ data Vec' (+A : Set) : Nat -> Set {   vnil'  : Vec' A zero;-  vcons' :  (n : Nat) -> (head' : A) -> (tail' : Vec' A n) -> Vec' A (succ n)  +  vcons' :  (n : Nat) -> (head' : A) -> (tail' : Vec' A n) -> Vec' A (succ n) }  {- data Vec (+A : Set) : Nat -> Set {   vnil  : Vec A zero;-  vcons : (head : A) -> [n : Nat] -> (tail : Vec A n) -> Vec A (succ n)  +  vcons : (head : A) -> [n : Nat] -> (tail : Vec A n) -> Vec A (succ n) }  fun length : [A : Set] -> [n : Nat] -> Vec A n -> Nat@@ -29,11 +29,11 @@   length .A .(succ n) (vcons A x n xs) = succ (length A n xs); } -fun append : [A : Set] -> [n : Nat] -> Vec A n -> +fun append : [A : Set] -> [n : Nat] -> Vec A n ->                           [m : Nat] -> Vec A m -> Vec A (add n m) {   append .A .zero     (vnil A)         m ys = ys;-  append .A .(succ n) (vcons A x n xs) m ys = +  append .A .(succ n) (vcons A x n xs) m ys =     vcons A x (add n m) (append A n xs m ys) } @@ -44,5 +44,5 @@ let vec0vnil : (A : Set) -> (v : Vec A zero) -> Id (Vec A zero) v (vnil A)              = \ A -> \ v -> refl (Vec A zero) v - + -}
+ test/succeed/WrapAbsurd.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "WrapAbsurd.ma" ---+--- scope checking ---+--- type checking ---+type  Wrap : ++(A : Set) -> Set+term  Wrap.wrap : .[A : Set] -> ^(unwrap : A) -> < Wrap.wrap unwrap : Wrap A >+term  unwrap : .[A : Set] -> (wrap : Wrap A) -> A+{ unwrap [A] (Wrap.wrap #unwrap) = #unwrap+}+type  Empty : Set+term  wrap0Elim : Wrap Empty -> Empty+{ wrap0Elim (Wrap.wrap ())+}+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+term  wrap1Elim : Wrap Unit -> Empty+block fails as expected, error message:+wrap1Elim+/// clause 1+/// absurd pattern does not match since type Unit is not empty+--- evaluating ---+--- closing "WrapAbsurd.ma" ---
test/succeed/WrapAbsurd.ma view
@@ -8,7 +8,7 @@  -- should succeed fun wrap0Elim : Wrap Empty -> Empty-{ wrap0Elim (wrap ()) +{ wrap0Elim (wrap ()) }  data Unit : Set { unit : Unit }@@ -25,7 +25,7 @@   environ : [(".Unit",v0)]   context : [[(Set 0)]]   pattern : ()-  at type : ((unwrap : v0) -> Wrap A{A = v0})	<>+  at type : ((unwrap : v0) -> Wrap A{A = v0})   <>  the test whether there are matchingConstructors is too optimistic since v0 is not solved yet to be Unit, it finds no matching constructors
+ test/succeed/absurdPattern.golden view
@@ -0,0 +1,10 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "absurdPattern.ma" ---+--- scope checking ---+--- type checking ---+type  Empty : Set+term  magic : .[A : Set] -> .[x : Empty] -> A+{ magic [A] [()]+}+--- evaluating ---+--- closing "absurdPattern.ma" ---
test/succeed/absurdPattern.ma view
@@ -1,5 +1,5 @@ data Empty : Set {}  fun magic : [A : Set] -> [x : Empty] -> A-{ magic A () +{ magic A () }
+ test/succeed/addWith.golden view
@@ -0,0 +1,28 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "addWith.ma" ---+--- scope checking ---+--- type checking ---+type  SNat : + Size -> Set+term  SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term  SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term  SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term  SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+term  ote : .[i : Size] -> SNat i -> SNat i+{ ote [.$i] (SNat.zero [i]) = SNat.zero [i]+; ote [.$$i] (SNat.succ [.$i] (SNat.zero [i])) = SNat.zero [i]+; ote [.$$i] (SNat.succ [.$i] (SNat.succ [i] x)) = SNat.succ [$i] (SNat.succ [i] (ote [i] x))+}+term  addWith : (.[k : Size] -> SNat k -> SNat k) -> .[i : Size] -> .[j : Size] -> SNat i -> SNat j -> SNat #+{ addWith f [.$i] [j] (SNat.zero [i]) y = y+; addWith f [.$i] [j] (SNat.succ [i] x) y = SNat.succ [#] (addWith f [j] [i] (f [j] y) (f [i] x))+}+term  three : SNat #+term  three = SNat.succ [#] (SNat.succ [#] (SNat.succ [#] (SNat.zero [#])))+term  four : SNat #+term  four = SNat.succ [#] three+term  bla : SNat #+term  bla = addWith ote [#] [#] four three+--- evaluating ---+bla has whnf SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.zero{i = #}}}}+bla evaluates to SNat.succ # (SNat.succ # (SNat.succ # (SNat.zero #)))+--- closing "addWith.ma" ---
test/succeed/addWith.ma view
@@ -9,7 +9,7 @@ fun ote : (i : Size) -> SNat i -> SNat i { ote .($ i) (zero i) = zero i;-ote .($ $ i) (succ .($ i) (zero i)) = zero i; +ote .($ $ i) (succ .($ i) (zero i)) = zero i; ote .($ $ i) (succ .($ i) (succ i x)) = succ ($ i) (succ i (ote i x )) } @@ -18,11 +18,11 @@ fun addWith : ((k : Size ) -> SNat k -> SNat k ) -> (i : Size ) -> (j : Size ) -> SNat i -> SNat j -> SNat # { addWith f .($ i) j (zero i) y = y;-addWith f .($ i) j (succ i x) y = succ # (addWith f j i (f j y) (f i x)) +addWith f .($ i) j (succ i x) y = succ # (addWith f j i (f j y) (f i x)) } -let three : SNat # = succ # (succ # (succ # (zero #))) +let three : SNat # = succ # (succ # (succ # (zero #))) let four  : SNat # = succ # three -eval let bla : SNat # = addWith ote # # four three +eval let bla : SNat # = addWith ote # # four three 
+ test/succeed/casePair.golden view
@@ -0,0 +1,16 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "casePair.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+term  xor' : (a : Bool) -> (b : Bool) -> Bool+term  xor' = \ a -> \ b -> case (a , b) : Bool & Bool+              { (Bool.true, Bool.true) -> Bool.false+              ; (Bool.false, Bool.true) -> Bool.true+              ; (Bool.true, Bool.false) -> Bool.true+              ; (Bool.false, Bool.false) -> Bool.false+              }+--- evaluating ---+--- closing "casePair.ma" ---
+ test/succeed/caseSList.golden view
@@ -0,0 +1,56 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "caseSList.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+term  leq : Nat -> Nat -> Bool+{ leq Nat.zero n = Bool.true+; leq (Nat.suc m) Nat.zero = Bool.false+; leq (Nat.suc m) (Nat.suc n) = leq m n+}+type  Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+type  True : ^ Bool -> Set+{ True b = Id Bool b Bool.true+}+term  triv : True Bool.true+term  triv = Id.refl+type  False : Bool -> Set+{ False b = Id Bool b Bool.false+}+term  triv' : False Bool.false+term  triv' = Id.refl+term  leFalse : (n : Nat) -> (m : Nat) -> False (leq n m) -> True (leq m n)+{ leFalse n Nat.zero p = triv+; leFalse (Nat.suc n) (Nat.suc m) p = leFalse n m p+; leFalse Nat.zero (Nat.suc m) ()+}+type  SList : ^ Nat -> Set+term  SList.snil : < SList.snil : SList Nat.zero >+term  SList.scons : .[shead : Nat] -> ^(stailindex : Nat) -> .[y2 : True (leq stailindex shead)] -> ^(stail : SList stailindex) -> < SList.scons shead stailindex y2 stail : SList shead >+term  maxN : Nat -> Nat -> Nat+{ maxN n m = case leq n m : Bool+             { Bool.true -> m+             ; Bool.false -> n+             }+}+term  maxLemma : (n : Nat) -> (m : Nat) -> (k : Nat) -> True (leq n k) -> True (leq m k) -> True (leq (maxN n m) k)+{ maxLemma n m k p q = case leq n m : Bool+                       { Bool.true -> q+                       ; Bool.false -> p+                       }+}+term  insert : (m : Nat) -> (n : Nat) -> SList n -> SList (maxN n m)+{ insert m .Nat.zero SList.snil = SList.scons [m] Nat.zero [triv] SList.snil+; insert m n (SList.scons [.n] k [p] l) = case leq n m : Bool+                                          { Bool.true -> SList.scons [m] n [triv] (SList.scons [n] k [p] l)+                                          ; Bool.false -> SList.scons [n] (maxN k m) [maxLemma k m n p (leFalse n m triv')] (insert m k l)+                                          }+}+--- evaluating ---+--- closing "caseSList.ma" ---
test/succeed/caseSList.ma view
@@ -1,13 +1,13 @@ -- 2012-01-22 parameters gone from constructors -data Nat : Set +data Nat : Set { zero : Nat ; suc  : Nat -> Nat }  data Bool : Set { true  : Bool-; false : Bool +; false : Bool }  fun leq : Nat -> Nat -> Bool@@ -43,13 +43,13 @@ ; scons : (shead : Nat) ->      -- I can erase this at compile-time, but                                 -- it should be present at run-time ??           (stailindex : Nat) -> -- this should be erased at run-time ??-          [True (leq stailindex shead)] -> -          (stail : SList stailindex) -> +          [True (leq stailindex shead)] ->+          (stail : SList stailindex) ->           SList shead-} +}  fun maxN : Nat -> Nat -> Nat-{ maxN n m = case leq n m +{ maxN n m = case leq n m   { true -> m   ; false -> n   }@@ -57,17 +57,17 @@  fun maxLemma : (n : Nat) -> (m : Nat) -> (k : Nat) ->               True (leq n k) -> True (leq m k) -> True (leq (maxN n m) k)-{ maxLemma n m k p q = case leq n m +{ maxLemma n m k p q = case leq n m   { true  -> q   ; false -> p-  } +  } }  fun insert : (m : Nat) -> (n : Nat) -> SList n -> SList (maxN n m) { insert m .zero snil = scons m zero triv snil-; insert m n (scons .n k p l) = case leq n m +; insert m n (scons .n k p l) = case leq n m   { true  -> scons m n triv (scons n k p l)-  ; false -> scons n (maxN k m) (maxLemma k m n p (leFalse n m triv')) +  ; false -> scons n (maxN k m) (maxLemma k m n p (leFalse n m triv'))                    (insert m k l)   } }
+ test/succeed/conat.golden view
@@ -0,0 +1,21 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "conat.ma" ---+--- scope checking ---+--- type checking ---+type  CoNat : - Size -> Set+term  CoNat.zero : .[i : Size] -> < CoNat.zero i : CoNat $i >+term  CoNat.succ : .[i : Size] -> ^(y1 : CoNat i) -> < CoNat.succ i y1 : CoNat $i >+type  CoNatEq : -(i : Size) -> ^ CoNat i -> ^ CoNat i -> Set+term  CoNatEq.eqz : .[i : Size] -> < CoNatEq.eqz i : CoNatEq $i (CoNat.zero [i]) (CoNat.zero [i]) >+term  CoNatEq.eqs : .[i : Size] -> .[n : CoNat i] -> .[m : CoNat i] -> ^(y3 : CoNatEq i n m) -> < CoNatEq.eqs i n m y3 : CoNatEq $i (CoNat.succ [i] n) (CoNat.succ [i] m) >+term  add : .[i : Size] -> CoNat i -> CoNat i -> CoNat i+{ add $[i < #] (CoNat.zero [.i]) n = n+; add $[i < #] (CoNat.succ [.i] m) n = CoNat.succ [i] (add [i] m n)+}+term  mult : .[i : Size] -> CoNat i -> CoNat i -> CoNat i+{ mult $[i < #] (CoNat.zero [.i]) n = CoNat.zero [i]+; mult $[i < #] (CoNat.succ [.i] m) (CoNat.zero [.i]) = CoNat.zero [i]+; mult $[i < #] (CoNat.succ [.i] m) (CoNat.succ [.i] n) = CoNat.succ [i] (add [i] n (mult [i] m (CoNat.succ [i] n)))+}+--- evaluating ---+--- closing "conat.ma" ---
test/succeed/conat.ma view
@@ -1,11 +1,11 @@ sized codata CoNat : Size -> Set-{ zero : [i : Size] -> CoNat ($ i) -; succ : [i : Size] -> CoNat i -> CoNat ($ i)  +{ zero : [i : Size] -> CoNat ($ i)+; succ : [i : Size] -> CoNat i -> CoNat ($ i) }  sized codata CoNatEq : (i : Size) -> CoNat i -> CoNat i -> Set { eqz : [i : Size] -> CoNatEq ($ i) (zero i) (zero i)-; eqs : [i : Size] -> (n : CoNat i) -> (m : CoNat i) -> +; eqs : [i : Size] -> (n : CoNat i) -> (m : CoNat i) ->    CoNatEq i n m -> CoNatEq ($ i) (succ i n) (succ i m) } @@ -37,19 +37,19 @@  -- pexp m n = (n+1)^m - 1 -- pexp 0     n     = 0--- pexp (m+1) 0     = 0 --- pexp (m+1) 1     = 2^(m+1) - 1 -- ??? +-- pexp (m+1) 0     = 0+-- pexp (m+1) 1     = 2^(m+1) - 1 -- ??? -- pexp (m+1) (n+2) = 1 + n + (n+2) * pexp m (n+2) -- (n + 2)^(m + 1) = (n+2) * (n+2) ^ m = (n+2) ^ m + n * (n+1) ^ m {- cofun exp : [i : Size] -> CoNat i -> CoNat i -> CoNat i { exp ($ i) (zero .i  ) n           = succ i (zero i) ; exp ($ i) (succ .i m) (zero .i)   = zero i-; exp ($ i) (succ .i m) (succ .i n) = succ i (case i +; exp ($ i) (succ .i m) (succ .i n) = succ i (case i   { ($ j) -> case n of     { (zero .j) ->     ; (succ .j n) ->-    } +    }    }) } 
+ test/succeed/countConstructors.golden view
@@ -0,0 +1,29 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "countConstructors.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  plus : Nat -> Nat -> Nat+{}+term  f1 : Nat -> Nat+term  g1 : Nat -> Nat+{ f1 Nat.zero = Nat.zero+; f1 (Nat.succ Nat.zero) = Nat.zero+; f1 (Nat.succ (Nat.succ n)) = g1 n+}+{ g1 Nat.zero = Nat.zero+; g1 (Nat.succ n) = f1 (Nat.succ (Nat.succ n))+}+term  f : Nat -> Nat+term  g : Nat -> Nat+{ f Nat.zero = Nat.zero+; f (Nat.succ Nat.zero) = Nat.zero+; f (Nat.succ (Nat.succ n)) = g n+}+{ g Nat.zero = Nat.zero+; g (Nat.succ n) = plus (f n) (plus (f (Nat.succ n)) (f (Nat.succ (Nat.succ n))))+}+--- evaluating ---+--- closing "countConstructors.ma" ---
test/succeed/countConstructors.ma view
@@ -1,6 +1,6 @@ -- 2010-01-13 -data Nat : Set +data Nat : Set { zero : Nat ; succ : Nat -> Nat }
+ test/succeed/crazys.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "crazys.ma" ---+--- scope checking ---+--- type checking ---+type  SNat : + Size -> Set+term  SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term  SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term  SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term  SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+term  o2e : .[i : Size] -> SNat i -> SNat i+{ o2e [.$i] (SNat.zero [i]) = SNat.zero [i]+; o2e [.$$i] (SNat.succ [.$i] (SNat.zero [i])) = SNat.zero [$i]+; o2e [.$$i] (SNat.succ [.$i] (SNat.succ [i] x)) = SNat.succ [$i] (SNat.succ [i] (o2e [i] x))+}+term  crazy : .[i : Size] -> .[j : Size] -> SNat i -> SNat j -> SNat #+{ crazy [.$i] [j] (SNat.zero [i]) y = y+; crazy [.$i] [j] (SNat.succ [i] x) y = SNat.succ [#] (crazy [j] [i] y (o2e [i] x))+}+--- evaluating ---+--- closing "crazys.ma" ---
test/succeed/crazys.ma view
@@ -7,7 +7,7 @@ fun o2e : (i : Size ) -> SNat i -> SNat i { o2e .($ i) (zero i) = zero _;-o2e .($ $ i) (succ .($ i) (zero i)) = zero _; +o2e .($ $ i) (succ .($ i) (zero i)) = zero _; o2e .($ $ i) (succ .($ i) (succ i x)) = succ _ (succ _ (o2e _ x )) } @@ -15,5 +15,5 @@ fun crazy : (i : Size ) -> (j : Size ) -> SNat i -> SNat j -> SNat # { crazy .($ i) j (zero i) y = y;-crazy .($ i) j (succ i x) y = succ _ (crazy _ _ y (o2e _ x)) +crazy .($ i) j (succ i x) y = succ _ (crazy _ _ y (o2e _ x)) }
+ test/succeed/drop.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "drop.ma" ---+--- scope checking ---+--- type checking ---+type  SNat : + Size -> Set+term  SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term  SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term  SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term  SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+type  Stream : - Size -> Set+term  Stream.cons : .[i : Size] -> ^(y1 : SNat #) -> ^(y2 : Stream i) -> < Stream.cons i y1 y2 : Stream $i >+term  drop : .[i : Size] -> SNat i -> Stream # -> Stream #+{ drop [.$i] (SNat.zero [i]) xs = xs+; drop [.$i] (SNat.succ [i] y) (Stream.cons [.#] x xs) = drop [i] y xs+}+--- evaluating ---+--- closing "drop.ma" ---
+ test/succeed/eta.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "eta.ma" ---+--- scope checking ---+--- type checking ---+type  P : ^(A : Set) -> ^ (A -> A) -> Set+term  P.inn : .[A : Set] -> .[out : A -> A] -> < P.inn out : P A out >+term  bla : .[A : Set] -> (f : (A -> A) -> A -> A) -> P (A -> A) f -> P (A -> A) (\ x -> f x)+{ bla [A] f p = p+}+--- evaluating ---+--- closing "eta.ma" ---
test/succeed/eta.ma view
@@ -1,9 +1,9 @@-data P (A : Set) : (A -> A) -> Set +data P (A : Set) : (A -> A) -> Set {   inn : (out : A -> A) -> P A out } -fun bla : (A : Set) -> (f : (A -> A) -> (A -> A)) -> +fun bla : (A : Set) -> (f : (A -> A) -> (A -> A)) ->   P (A -> A) f ->  P (A -> A) (\ x -> f x) {   bla A f p = p    -- (c .(A -> A) f) = c (A -> A) (\ x -> f x)
+ test/succeed/eta_unit.golden view
@@ -0,0 +1,30 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "eta_unit.ma" ---+--- scope checking ---+--- type checking ---+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  P : Unit -> Set+{ P un!t = Unit+}+term  p : (u : Unit) -> P u+{ p x = Unit.unit+}+term  q : (u : Unit) -> P u+{ q un!t = Unit.unit+}+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+term  r' : Bool -> Unit+term  r' = \ b -> Unit.unit+term  pr' : (b : Bool) -> P (r' b)+term  pr' = \ b -> Unit.unit+term  r : Bool -> Unit+{ r Bool.true = Unit.unit+; r Bool.false = Unit.unit+}+term  pr : (b : Bool) -> P (r b)+term  pr = \ b -> Unit.unit+--- evaluating ---+--- closing "eta_unit.ma" ---
test/succeed/eta_unit.ma view
@@ -1,6 +1,6 @@ -- 2009-06-25 eta expansion for the unit type -data Unit : Set +data Unit : Set {   unit : Unit }@@ -29,13 +29,13 @@ { true  : Bool ; false : Bool }-   + let r' : Bool -> Unit        = \ b -> unit  let pr' : (b : Bool) -> P (r' b)-       = \ b -> unit -   +       = \ b -> unit+ fun r : Bool -> Unit { r true = unit ; r false = unit@@ -44,4 +44,4 @@ -- definitions need also to be eta-expanded -- otherwise the following does not typecheck let pr : (b : Bool) -> P (r b)-       = \ b -> unit +       = \ b -> unit
+ test/succeed/exists.golden view
@@ -0,0 +1,26 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "exists.ma" ---+--- scope checking ---+--- type checking ---+type  Sigma : ^(A : Set) -> ^(B : A -> Set) -> Set+term  Sigma.pair : .[A : Set] -> .[B : A -> Set] -> ^(fst : A) -> ^(snd : B fst) -> < Sigma.pair fst snd : Sigma A B >+term  fst : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> A+{ fst [A] [B] (Sigma.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> B (fst [A] [B] pair)+{ snd [A] [B] (Sigma.pair #fst #snd) = #snd+}+type  Subset : ^(A : Set) -> ^(B : A -> Set) -> Set+term  Subset.put : .[A : Set] -> .[B : A -> Set] -> ^(get : A) -> .[prf : B get] -> < Subset.put get prf : Subset A B >+type  Exists : ^(A : Set) -> ^(B : A -> Set) -> Set+term  Exists.exI : .[A : Set] -> .[B : A -> Set] -> .[a : A] -> ^(prop : B a) -> < Exists.exI a prop : Exists A B >+term  exE : .[A : Set] -> .[B : A -> Set] -> .[C : Set] -> Exists A B -> (.[a : A] -> B a -> C) -> C+{ exE [A] [B] [C] (Exists.exI [a] b) k = k [a] b+}+type  Bracket : ^(A : Set) -> Set+term  Bracket.bI : .[A : Set] -> .[a : A] -> < Bracket.bI a : Bracket A >+term  bE : .[A : Set] -> .[C : Set] -> Bracket A -> (.[A] -> C) -> C+{ bE [A] [C] (Bracket.bI [a]) k = k [a]+}+--- evaluating ---+--- closing "exists.ma" ---
test/succeed/exists.ma view
@@ -13,8 +13,8 @@ { exI : [a : A] -> (prop : B a) -> Exists A B } -fun exE : [A : Set] -> [B : A -> Set] -> [C : Set] -> -      Exists A B -> ([a : A] -> B a -> C) -> C +fun exE : [A : Set] -> [B : A -> Set] -> [C : Set] ->+      Exists A B -> ([a : A] -> B a -> C) -> C { exE A B C (exI a b) k = k a b } 
+ test/succeed/fib.golden view
@@ -0,0 +1,73 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "fib.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(n : Nat) -> < Nat.succ n : Nat >+term  add : Nat -> Nat -> Nat+{ add Nat.zero = \ y -> y+; add (Nat.succ x) = \ y -> Nat.succ (add x y)+}+type  Stream : - Size -> Set+term  Stream.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : Stream i) -> < Stream.cons i y1 y2 : Stream $i >+term  tail : Stream # -> Stream #+{ tail (Stream.cons [.#] x xs) = xs+}+term  head : Stream # -> Nat+{ head (Stream.cons [.#] x xs) = x+}+term  nth : Nat -> Stream # -> Nat+{ nth Nat.zero xs = head xs+; nth (Nat.succ x) xs = nth x (tail xs)+}+term  one : Nat+term  one = Nat.succ Nat.zero+term  fib' : (x : Nat) -> (y : Nat) -> .[i : Size] -> Stream i+{ fib' x y $[i < #] = Stream.cons [i] x (fib' y (add x y) [i])+}+term  fib : Stream #+term  fib = fib' one one [?2]+term  four : Nat+term  four = Nat.succ (Nat.succ (Nat.succ one))+term  fibfour : Nat+term  fibfour = nth four fib+type  Leq : ^ Nat -> ^ Nat -> Set+term  Leq.lqz : .[x : Nat] -> < Leq.lqz x : Leq Nat.zero x >+term  Leq.lqs : .[x : Nat] -> .[y : Nat] -> ^(y2 : Leq x y) -> < Leq.lqs x y y2 : Leq (Nat.succ x) (Nat.succ y) >+type  Increasing : - Size -> ^ Stream # -> Set+term  Increasing.inc : .[i : Size] -> .[x : Nat] -> .[y : Nat] -> ^(y3 : Leq x y) -> .[tl : Stream #] -> ^(y5 : Increasing i (Stream.cons [#] y tl)) -> < Increasing.inc i x y y3 tl y5 : Increasing $i (Stream.cons [#] x (Stream.cons [#] y tl)) >+type  Eq : ++(A : Set) -> ^(a : A) -> ^ A -> Set+term  Eq.refl : .[A : Set] -> .[a : A] -> < Eq.refl : Eq A a a >+term  proof : Eq (Stream #) (tail fib) (tail fib)+term  proof = Eq.refl+term  double : Stream # -> Stream #+term  double = \ s -> Stream.cons [?3] (head s) s+type  Bool : Set+term  Bool.tt : < Bool.tt : Bool >+term  Bool.ff : < Bool.ff : Bool >+term  leq : Nat -> Nat -> Bool+{ leq Nat.zero y = Bool.tt+; leq (Nat.succ x) Nat.zero = Bool.ff+; leq (Nat.succ x) (Nat.succ y) = leq x y+}+term  ite : Bool -> .[A : Set] -> A -> A -> A+{ ite Bool.tt [A] a1 a2 = a1+; ite Bool.ff [A] a1 a2 = a2+}+term  merge : .[i : Size] -> (Nat -> Nat -> Bool) -> Stream # -> Stream # -> Stream i+{ merge $[i < #] le (Stream.cons [.#] x xs) (Stream.cons [.#] y ys) = ite (le x y) [Stream $i] (Stream.cons [i] x (merge [i] le xs (Stream.cons [#] y ys))) (Stream.cons [i] y (merge [i] le (Stream.cons [#] x xs) ys))+}+term  first : .[A : Set] -> .[B : Set] -> A -> B -> A+{ first [A] [B] a b = a+}+term  map : .[i : Size] -> (Nat -> Nat) -> Stream i -> Stream i+{ map $[i < #] f (Stream.cons [.i] x xl) = Stream.cons [i] (f x) (map [i] f xl)+}+term  evil : .[i : Size] -> Stream i+{ evil $[i < #] = map [$i] (\ y -> Nat.succ y) (Stream.cons [i] Nat.zero (evil [i]))+}+--- evaluating ---+fibfour has whnf (head (tail (tail (tail (tail (fib' one one ?2))))))+fibfour evaluates to head (tail (tail (tail (tail (fib' (Nat.succ Nat.zero) (Nat.succ Nat.zero) ?2)))))+--- closing "fib.ma" ---
test/succeed/fib.ma view
@@ -2,7 +2,7 @@  data Nat : Set {   zero : Nat;-  succ : (n : Nat) -> Nat +  succ : (n : Nat) -> Nat }  fun add : Nat -> Nat -> Nat {@@ -13,7 +13,7 @@ sized codata Stream : Size -> Set {   cons : (i : Size) -> Nat -> Stream i -> Stream ($ i) }- + fun tail : Stream # -> Stream # {   tail (cons .# x xs) = xs }@@ -27,31 +27,31 @@   head .($ i) (cons i n ns) = n } -cofun zipWith :  (Nat -> Nat -> Nat ) -> ( i : Size ) -		-> Stream i -> Stream i -> Stream i {-  zipWith f ($ i) as bs = -	cons i (f (head i as) (head i bs))  (zipWith f i (tail i as) (tail i bs)) +cofun zipWith :  (Nat -> Nat -> Nat ) -> ( i : Size )+                -> Stream i -> Stream i -> Stream i {+  zipWith f ($ i) as bs =+        cons i (f (head i as) (head i bs))  (zipWith f i (tail i as) (tail i bs)) } -}  fun nth : Nat -> Stream # -> Nat {   nth zero xs = head xs;-  nth (succ x) xs = nth x (tail xs) +  nth (succ x) xs = nth x (tail xs) }  let one : Nat = (succ zero) -cofun fib' : (x : Nat ) -> (y : Nat ) -> (i : Size ) -> Stream i +cofun fib' : (x : Nat ) -> (y : Nat ) -> (i : Size ) -> Stream i {   fib' x y ($ i) = cons _ x (fib' y (add x y) _)-} +} let fib : Stream # = (fib' one one _)   let four : Nat = (succ (succ (succ one))) --- fib(four) = 5 -eval let fibfour : Nat = nth four fib +-- fib(four) = 5+eval let fibfour : Nat = nth four fib   --------------------------------------------@@ -65,9 +65,9 @@  sized codata Increasing : Size -> Stream # -> Set {-inc : (i : Size ) -> (x : Nat ) -> (y : Nat ) -> Leq x y -> (tl : Stream # ) -> +inc : (i : Size ) -> (x : Nat ) -> (y : Nat ) -> Leq x y -> (tl : Stream # ) ->       Increasing i (cons # y tl) ->-      Increasing ($ i) (cons # x (cons # y tl)) +      Increasing ($ i) (cons # x (cons # y tl)) }  @@ -81,7 +81,7 @@  let double : Stream # -> Stream # = \s -> cons _ (head s) s -data Bool : Set +data Bool : Set { tt : Bool; ff : Bool@@ -91,7 +91,7 @@ { leq zero y = tt; leq (succ x) zero = ff ;-leq (succ x) (succ y) = leq x y +leq (succ x) (succ y) = leq x y }  fun ite : Bool -> (A : Set ) -> A -> A -> A@@ -102,10 +102,10 @@  cofun merge : (i : Size ) -> (Nat -> Nat -> Bool) -> Stream # -> Stream # -> Stream i {-merge ($ i) le (cons .# x xs) (cons .# y ys) = +merge ($ i) le (cons .# x xs) (cons .# y ys) =       ite (le x y) (Stream _)          (cons _ x (merge _ le xs (cons _ y ys)))-	 (cons _ y (merge _ le (cons _ x xs) ys))     +         (cons _ y (merge _ le (cons _ x xs) ys)) }  fun first : (A : Set ) -> (B : Set ) -> A -> B -> A@@ -115,7 +115,7 @@  -------------------- -cofun map : (i : Size) -> (Nat -> Nat) -> Stream i -> Stream i +cofun map : (i : Size) -> (Nat -> Nat) -> Stream i -> Stream i { map ($ i) f (cons .i x xl) = cons _ (f x) (map _ f xl) }@@ -131,7 +131,5 @@ evil ($ i) = map _ succ (cons _ zero (evil _)) } --- eval const zzz : Nat = head # (z #) --+-- eval const zzz : Nat = head # (z #) 
+ test/succeed/fibDeep.golden view
@@ -0,0 +1,41 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "fibDeep.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  add : Nat -> Nat -> Nat+{ add Nat.zero = \ y -> y+; add (Nat.succ x) = \ y -> Nat.succ (add x y)+}+type  Stream : ++(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term  head : .[A : Set] -> .[i : Size] -> Stream A $i -> A+{ head [A] [i] (Stream.cons [.i] a as) = a+}+term  tail : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ tail [A] [i] (Stream.cons [.i] a as) = as+}+term  zipWith : .[A : Set] -> .[B : Set] -> .[C : Set] -> (A -> B -> C) -> .[i : Size] -> Stream A i -> Stream B i -> Stream C i+{ zipWith [A] [B] [C] f $[i < #] (Stream.cons [.i] a as) (Stream.cons [.i] b bs) = Stream.cons [i] (f a b) (zipWith [A] [B] [C] f [i] as bs)+}+term  adds : .[i : Size] -> Stream Nat i -> Stream Nat i -> Stream Nat i+{ adds $[i < #] (Stream.cons [.i] a as) (Stream.cons [.i] b bs) = Stream.cons [i] (add a b) (adds [i] as bs)+}+term  one : Nat+term  one = Nat.succ Nat.zero+term  fib' : .[i : Size] -> Stream Nat i+{ fib' [i] = case i : Size+             { $j -> Stream.cons [j] Nat.zero (case j : Size+                                               { $k -> Stream.cons [k] one (zipWith [Nat] [Nat] [Nat] add [k] (fib' [k]) (tail [Nat] [k] (fib' [$k])))+                                               })+             }+}+term  fib : .[i : Size] -> Stream Nat i+{ fib $[i < #] = Stream.cons [i] Nat.zero (case i : Size+                                           { $j -> Stream.cons [j] one (adds [j] (fib [j]) (tail [Nat] [j] (fib [i])))+                                           })+}+--- evaluating ---+--- closing "fibDeep.ma" ---
test/succeed/fibDeep.ma view
@@ -1,11 +1,11 @@ -- 2012-01-22 parameters gone from constructors -data Nat : Set +data Nat : Set { zero : Nat-; succ : Nat -> Nat +; succ : Nat -> Nat } -fun add : Nat -> Nat -> Nat +fun add : Nat -> Nat -> Nat { add zero     = \ y -> y ; add (succ x) = \ y -> succ (add x y) }@@ -14,7 +14,7 @@   cons : [i : Size] -> A -> Stream A i -> Stream A ($ i) } -fun head : [A : Set] -> [i : Size] -> Stream A ($ i) -> A +fun head : [A : Set] -> [i : Size] -> Stream A ($ i) -> A { head A i (cons .i a as) = a } @@ -22,14 +22,14 @@ { tail A i (cons .i a as) = as } -cofun zipWith : [A : Set] -> [B : Set] -> [C : Set] -> (A -> B -> C) -> -                [i : Size] -> Stream A i -> Stream B i -> Stream C i -{ zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) = -    cons i (f a b)  (zipWith A B C f i as bs) +cofun zipWith : [A : Set] -> [B : Set] -> [C : Set] -> (A -> B -> C) ->+                [i : Size] -> Stream A i -> Stream B i -> Stream C i+{ zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) =+    cons i (f a b)  (zipWith A B C f i as bs) } -cofun adds : [i : Size] -> Stream Nat i -> Stream Nat i -> Stream Nat i -{ adds ($ i) (cons .i a as) (cons .i b bs) = +cofun adds : [i : Size] -> Stream Nat i -> Stream Nat i -> Stream Nat i+{ adds ($ i) (cons .i a as) (cons .i b bs) =     cons i (add a b) (adds i as bs) } @@ -37,14 +37,14 @@  {- Size matching -at type  [i : Size] -> Co i  one can match i against ($ j) +at type  [i : Size] -> Co i  one can match i against ($ j) since for i = 0,  Co i is the set of all terms  type checking rule      i:Size, j < i, i --> $ j |- e : Gamma -> Co ($ j)     --------------------------------------------------    case i { ($ j) -> e } : Gamma -> Co i +    case i { ($ j) -> e } : Gamma -> Co i  basically, there is an analysis whether the type of the case is "everything"  (opposite of empty).@@ -54,34 +54,34 @@ cofun fib' : [i : Size] -> Stream Nat i {   fib' i = case i-   { ($ j) -> cons j zero (case j -   { ($ k) -> cons k one (zipWith Nat Nat Nat add k -                              (fib' k) +   { ($ j) -> cons j zero (case j+   { ($ k) -> cons k one (zipWith Nat Nat Nat add k+                              (fib' k)                               (tail Nat k (fib' ($ k))))})} }  {- we can pull one case into the pattern match, but not both -}  cofun fib : [i : Size] -> Stream Nat i-{ fib ($ i) = cons i zero (case i +{ fib ($ i) = cons i zero (case i     { ($ j) -> cons j one (adds j (fib j) (tail Nat j (fib i)))})-} +}  {- blueprint cofun fib : [i : Size] -> Stream Nat i-{ fib ? = cons ? zero +{ fib ? = cons ? zero     (cons ? one (adds ? (fib ?) (tail Nat ? (fib ?))))-} +} -- UNSOUND cofun fib : [i : Size] -> Stream Nat i-{ fib ($$ i) = cons ($ i) zero +{ fib ($$ i) = cons ($ i) zero     (cons i one (adds i (fib i) (tail Nat ($ i) (fib ($ i)))))-} +} -} -{- the question is how to facilitate inference for this? +{- the question is how to facilitate inference for this?    We need to insert case splits at the appropriate positions.    Why not, this is a form of type reconstruction.    Relies on bidirectional type checking.-   Currently, MiniAgda does not check constructors, but infers them, which is bad. +   Currently, MiniAgda does not check constructors, but infers them, which is bad.  -}
+ test/succeed/gcd-either.golden view
@@ -0,0 +1,28 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "gcd-either.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : + Size -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term  Nat.suc : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term  Nat.suc : .[i : Size] -> ^(y1 : Nat i) -> < Nat.suc i y1 : Nat $i >+type  Either : + Size -> + Size -> Set+term  Either.left : .[i : Size] -> .[j : Size] -> ^(y2 : Nat i) -> < Either.left i j y2 : Either i j >+term  Either.right : .[i : Size] -> .[j : Size] -> ^(y2 : Nat j) -> < Either.right i j y2 : Either i j >+term  minus : .[i : Size] -> .[j : Size] -> Nat i -> Nat j -> Either i j+{ minus [i] [j] (Nat.zero [i' < i]) m = Either.right [i] [j] m+; minus [i] [j] (Nat.suc [i' < i] n) (Nat.zero [j' < j]) = Either.left [i] [j] (Nat.suc [i'] n)+; minus [i] [j] (Nat.suc [i' < i] n) (Nat.suc [j' < j] m) = minus [i'] [j'] n m+}+term  gcd : .[i : Size] -> .[j : Size] -> Nat i -> Nat j -> Nat #+term  gcd_aux : .[i : Size] -> .[j : Size] -> .[i' < i] -> .[j' < j] -> Nat i' -> Nat j' -> Either i' j' -> Nat #+{ gcd [i] [j] (Nat.zero [i' < i]) m = m+; gcd [i] [j] (Nat.suc [i' < i] n) (Nat.zero [j' < j]) = Nat.suc [i'] n+; gcd [i] [j] (Nat.suc [i' < i] n) (Nat.suc [j' < j] m) = gcd_aux [i] [j] [i'] [j'] n m (minus [i'] [j'] n m)+}+{ gcd_aux [i] [j] [i' < i] [j' < j] n m (Either.left [.i'] [.j'] n') = gcd [i'] [j] n' (Nat.suc [j'] m)+; gcd_aux [i] [j] [i' < i] [j' < j] n m (Either.right [.i'] [.j'] m') = gcd [i] [j'] (Nat.suc [i'] n) m'+}+--- evaluating ---+--- closing "gcd-either.ma" ---
test/succeed/gcd-either.ma view
@@ -1,6 +1,6 @@ -- 2011-12-16 Andreas, gcd example -sized data Nat : Size -> Set +sized data Nat : Size -> Set { zero : [i : Size] -> Nat ($ i) ; suc  : [i : Size] -> Nat i -> Nat ($ i) }@@ -14,7 +14,7 @@ }  fun minus : [i,j : Size] -> Nat i -> Nat j -> Either i j-{ minus i j (zero (i > i'))   m                 = right i j m +{ minus i j (zero (i > i'))   m                 = right i j m ; minus i j (suc  (i > i') n) (zero (j > j'))   = left i j (suc i' n) ; minus i j (suc  (i > i') n) (suc  (j > j') m) = minus i' j' n m }@@ -31,7 +31,7 @@   fun gcd : [i,j : Size] -> Nat i -> Nat j -> Nat #   { gcd i j (zero (i > i')) m = m   ; gcd i j (suc (i > i') n) (zero (j > j')) = suc i' n-  ; gcd i j (suc (i > i') n) (suc (j > j') m) = +  ; gcd i j (suc (i > i') n) (suc (j > j') m) =       gcd_aux i j i' j' n m (minus i' j' n m)   } @@ -41,4 +41,4 @@   ; gcd_aux i j i' j' n m (right .i' .j' m') = gcd i j' (suc i' n) m'   } -} +}
+ test/succeed/hamming.golden view
@@ -0,0 +1,33 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "hamming.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  add : Nat -> Nat -> Nat+{ add Nat.zero = \ y -> y+; add (Nat.succ x) = \ y -> Nat.succ (add x y)+}+term  double : Nat -> Nat+term  double = \ n -> add n n+term  triple : Nat -> Nat+term  triple = \ n -> add n (double n)+term  leq : Nat -> Nat -> .[C : Set] -> C -> C -> C+{ leq Nat.zero y [C] tt ff = tt+; leq (Nat.succ x) Nat.zero [C] tt ff = ff+; leq (Nat.succ x) (Nat.succ y) [C] tt ff = leq x y [C] tt ff+}+type  Stream : ++(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term  map : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Stream A i -> Stream B i+{ map [A] [B] $[i < #] f (Stream.cons [.i] x xl) = Stream.cons [i] (f x) (map [A] [B] [i] f xl)+}+term  merge : .[i : Size] -> Stream Nat i -> Stream Nat i -> Stream Nat i+{ merge $[i < #] (Stream.cons [.i] x xs) (Stream.cons [.i] y ys) = leq x y [Stream Nat $i] (Stream.cons [i] x (merge [i] xs (Stream.cons [i] y ys))) (Stream.cons [i] y (merge [i] (Stream.cons [i] x xs) ys))+}+term  ham : .[i : Size] -> Stream Nat i+{ ham $[i < #] = Stream.cons [i] (Nat.succ Nat.zero) (merge [i] (map [Nat] [Nat] [i] double (ham [i])) (map [Nat] [Nat] [i] triple (ham [i])))+}+--- evaluating ---+--- closing "hamming.ma" ---
test/succeed/hamming.ma view
@@ -2,12 +2,12 @@  -- Nat --------------------------------------------------------------- -data Nat : Set +data Nat : Set { zero : Nat-; succ : Nat -> Nat +; succ : Nat -> Nat } -fun add : Nat -> Nat -> Nat +fun add : Nat -> Nat -> Nat { add  zero    = \y -> y ; add (succ x) = \y -> succ (add x y) }@@ -20,28 +20,28 @@ fun leq : Nat -> Nat -> [C : Set] -> C -> C -> C { leq  zero     y       C tt ff = tt ; leq (succ x)  zero    C tt ff = ff-; leq (succ x) (succ y) C tt ff = leq x y C tt ff +; leq (succ x) (succ y) C tt ff = leq x y C tt ff }  -- Stream ------------------------------------------------------------ -sized codata Stream (+ A : Set) : Size -> Set +sized codata Stream (+ A : Set) : Size -> Set {   cons : [i : Size] -> A -> Stream A i -> Stream A ($ i) } -cofun map : [A : Set] -> [B : Set] -> [i : Size] -> -            (A -> B) -> Stream A i -> Stream B i +cofun map : [A : Set] -> [B : Set] -> [i : Size] ->+            (A -> B) -> Stream A i -> Stream B i {   map A B ($ i) f (cons .i x xl) = cons _ (f x) (map A B _ f xl) }  cofun merge : [i : Size] -> Stream Nat i -> Stream Nat i -> Stream Nat i {-  merge ($ i) (cons .i x xs) (cons .i y ys) = +  merge ($ i) (cons .i x xs) (cons .i y ys) =       leq x y (Stream Nat _)          (cons _ x (merge _ xs (cons _ y ys)))-	 (cons _ y (merge _ (cons _ x xs) ys))     +         (cons _ y (merge _ (cons _ x xs) ys)) }  @@ -49,7 +49,7 @@  cofun ham : [i : Size] -> Stream Nat i {-  ham ($ i) = cons _ (succ zero) -                (merge i (map Nat Nat i double (ham i)) +  ham ($ i) = cons _ (succ zero)+                (merge i (map Nat Nat i double (ham i))                          (map Nat Nat i triple (ham i))) }
+ test/succeed/ho.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ho.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.tt : < Bool.tt : Bool >+term  Bool.ff : < Bool.ff : Bool >+term  apply : (Bool -> Bool) -> Bool -> Bool+{ apply f b = f b+}+term  neg : Bool -> Bool+{ neg Bool.tt = Bool.ff+; neg Bool.ff = Bool.tt+}+term  f : Bool+term  f = apply neg Bool.tt+term  t : Bool+term  t = apply (\ x -> Bool.tt) Bool.ff+--- evaluating ---+--- closing "ho.ma" ---
test/succeed/ho.ma view
@@ -1,18 +1,18 @@ data Bool : Set {-	tt : Bool;-	ff : Bool+        tt : Bool;+        ff : Bool }  fun apply : (Bool -> Bool) -> Bool -> Bool {-apply f b = f b +apply f b = f b }  fun neg : Bool -> Bool {-neg	tt = ff;-neg	ff = tt	+neg     tt = ff;+neg     ff = tt }  let f : Bool = apply neg tt
+ test/succeed/implicitSizeVarUsedExplicitely.golden view
@@ -0,0 +1,31 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "implicitSizeVarUsedExplicitely.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  leq : Nat -> Nat -> Bool+{}+term  plus : .[A : Set] -> A -> A -> A+{}+type  List : + Size -> Set+term  List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term  List.nil : .[i : Size] -> < List.nil i : List $i >+term  List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term  List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term  filter : .[i : Size] -> List i -> List i+{ filter [.$i] (List.nil [i]) = List.nil [i]+; filter [.$i] (List.cons [i] n l) = plus [List $i] (filter [i] l) (List.cons [i] n (filter [i] l))+}+term  quicksort : .[i : Size] -> List i -> List #+{ quicksort [.$i] (List.nil [i]) = List.nil [#]+; quicksort [.$i] (List.cons [i] n l) = plus [List #] (quicksort [i] (filter [i] l)) (List.cons [#] n (quicksort [i] (filter [i] l)))+}+type  Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+--- evaluating ---+--- closing "implicitSizeVarUsedExplicitely.ma" ---
test/succeed/implicitSizeVarUsedExplicitely.ma view
@@ -13,7 +13,7 @@ fun plus : [A : Set] -> A -> A -> A {}  sized data List : Size -> Set-{ nil  : (i : Size) -> List ($ i) +{ nil  : (i : Size) -> List ($ i) ; cons : [i : Size] -> Nat -> List i -> List ($ i) } @@ -24,8 +24,8 @@  fun quicksort : [i : Size] -> List i -> List # { quicksort .($ i) (nil i) = nil _-; quicksort .($ i) (cons i n l) = -    plus (List #) (quicksort _ (filter i l)) (cons _ n (quicksort _ (filter i l))) +; quicksort .($ i) (cons i n l) =+    plus (List #) (quicksort _ (filter i l)) (cons _ n (quicksort _ (filter i l))) }  data Id (A : Set)(a : A) : A -> Set
+ test/succeed/lengthCoList.golden view
@@ -0,0 +1,43 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "lengthCoList.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : + Size -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term  Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+type  Colist : ^(A : Set) -> - Size -> Set+term  Colist.nil : .[A : Set] -> .[i : Size] -> < Colist.nil i : Colist A $i >+term  Colist.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Colist A i) -> < Colist.cons i y1 y2 : Colist A $i >+term  olist' : .[i : Size] -> Colist (Nat #) i+{ olist' $[i < #] = Colist.cons [i] (Nat.zero [#]) (olist' [i])+}+type  CoNat : - Size -> Set+term  CoNat.cozero : .[i : Size] -> < CoNat.cozero i : CoNat $i >+term  CoNat.cosucc : .[i : Size] -> ^(y1 : CoNat i) -> < CoNat.cosucc i y1 : CoNat $i >+term  z : CoNat #+term  z = CoNat.cozero [#]+term  length2 : .[i : Size] -> .[A : Set] -> Colist A i -> CoNat i+{ length2 $[i < #] [A] (Colist.nil [.i]) = CoNat.cozero [i]+; length2 $[i < #] [A] (Colist.cons [.i] a as) = CoNat.cosucc [i] (length2 [i] [A] as)+}+term  omega' : .[i : Size] -> CoNat i+{ omega' $[i < #] = CoNat.cosucc [i] (omega' [i])+}+term  omega : CoNat #+term  omega = omega' [#]+term  convert2 : .[i : Size] -> Nat i -> CoNat i+{ convert2 $[i < #] (Nat.zero [.i]) = CoNat.cozero [i]+; convert2 $[i < #] (Nat.succ [.i] x) = CoNat.cosucc [i] (convert2 [i] x)+}+term  convert3 : .[i : Size] -> Nat i -> CoNat #+{ convert3 [i] (Nat.zero [j < i]) = CoNat.cozero [#]+; convert3 [i] (Nat.succ [j < i] x) = omega' [#]+}+term  convert4 : .[i : Size] -> Nat i -> CoNat i+{ convert4 $[i < #] (Nat.zero [.i]) = CoNat.cozero [$i]+; convert4 $[i < #] (Nat.succ [.i] x) = CoNat.cosucc [i] (convert4 [i] x)+}+--- evaluating ---+--- closing "lengthCoList.ma" ---
test/succeed/lengthCoList.ma view
@@ -19,7 +19,7 @@ }  {---- not allowed because no inductive argument with i +-- not allowed because no inductive argument with i fun length : [i : Size] -> [A : Set] -> Colist A i -> Nat i { length ($ i) .A (nil A .i) = zero i ;@@ -41,7 +41,7 @@ cofun length2 : [i : Size] -> [A : Set] -> Colist A i -> CoNat i { length2 ($ i) A (nil .i) = cozero i;-length2 ($ i) A (cons .i a as) = cosucc i (length2 i A as) +length2 ($ i) A (cons .i a as) = cosucc i (length2 i A as) }  cofun omega' : [i : Size] -> CoNat i@@ -51,18 +51,18 @@  let omega : CoNat # = omega' # --- not ok because size not used in inductive argument +-- not ok because size not used in inductive argument -- fun convert1 : [i : Size] -> CoNat i -> Nat i -- { -- convert1 ($ i) (cozero .i) = zero i;--- convert1 ($ i) (cosucc i x) = succ i (convert1 i x) +-- convert1 ($ i) (cosucc i x) = succ i (convert1 i x) -- } --- the following must be cofun  +-- the following must be cofun cofun convert2 : [i : Size] -> Nat i -> CoNat i { convert2 ($ i) (zero .i) = cozero i;-convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) +convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) }  -- NOT ok@@ -84,6 +84,6 @@ cofun convert4 : [i : Size] -> Nat i -> CoNat i { convert4 ($ i) (zero .i) = cozero ($ i) ;-convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) +convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) } 
+ test/succeed/list.golden view
@@ -0,0 +1,9 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "list.ma" ---+--- scope checking ---+--- type checking ---+type  List : ^(A : Set) -> Set+term  List.nil : .[A : Set] -> < List.nil : List A >+term  List.cons : .[A : Set] -> ^(y0 : A) -> ^(y1 : List A) -> < List.cons y0 y1 : List A >+--- evaluating ---+--- closing "list.ma" ---
+ test/succeed/logic.golden view
@@ -0,0 +1,54 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "logic.ma" ---+--- scope checking ---+--- type checking ---+type  Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+term  subst : .[A : Set] -> (a : A) -> (b : A) -> Id A a b -> .[P : A -> Set] -> P a -> P b+{ subst [A] a .a Id.refl [P] x = x+}+term  bla : .[A : Set] -> (a : A) -> (p : Id A a a) -> .[P : A -> Set] -> (x : P a) -> Id (P a) x (subst [A] a a p [P] x)+term  bla = [\ A ->] \ a -> \ p -> [\ P ->] \ x -> Id.refl+term  resp : .[A : Set] -> (a : A) -> (b : A) -> Id A a b -> .[C : Set] -> (f : A -> C) -> Id C (f a) (f b)+{ resp [A] a .a Id.refl [C] f = Id.refl+}+type  True : Set+term  True.trueI : < True.trueI : True >+type  False : Set+term  falseIrr : (p : False) -> (q : False) -> Id False p q+term  falseIrr = \ p -> \ q -> Id.refl+term  falseE : False -> .[A : Set] -> A+{}+type  And : ^(A : Set) -> ^(B : Set) -> Set+term  And.andI : .[A : Set] -> .[B : Set] -> ^(andE1 : A) -> ^(andE2 : B) -> < And.andI andE1 andE2 : And A B >+term  andE1 : .[A : Set] -> .[B : Set] -> (andI : And A B) -> A+{ andE1 [A] [B] (And.andI #andE1 #andE2) = #andE1+}+term  andE2 : .[A : Set] -> .[B : Set] -> (andI : And A B) -> B+{ andE2 [A] [B] (And.andI #andE1 #andE2) = #andE2+}+type  Forall : ^(A : Set) -> ^(B : A -> Set) -> Set+term  Forall.forallI : .[A : Set] -> .[B : A -> Set] -> ^(forallE : (a : A) -> B a) -> < Forall.forallI forallE : Forall A B >+term  forallE : .[A : Set] -> .[B : A -> Set] -> (forallI : Forall A B) -> (a : A) -> B a+{ forallE [A] [B] (Forall.forallI #forallE) = #forallE+}+term  shapeForallTrue : .[A : Set] -> (p : Forall A (\ a -> True)) -> Id (Forall A (\ a -> True)) p (Forall.forallI (\ a -> True.trueI))+{ shapeForallTrue [A] p = Id.refl+}+type  Prop : ^(A : Set) -> Set+term  Prop.true : .[A : Set] -> < Prop.true : Prop A >+term  Prop.false : .[A : Set] -> < Prop.false : Prop A >+term  Prop.and : .[A : Set] -> ^(y0 : Prop A) -> ^(y1 : Prop A) -> < Prop.and y0 y1 : Prop A >+term  Prop.forall : .[A : Set] -> ^(y0 : A -> Prop A) -> < Prop.forall y0 : Prop A >+type  Proof : (A : Set) -> Prop A -> Set+{ Proof A Prop.true = True+; Proof A Prop.false = False+; Proof A (Prop.and p q) = And (Proof A p) (Proof A q)+; Proof A (Prop.forall h) = Forall A (\ a -> Proof A (h a))+}+term  proofIrr : .[A : Set] -> (P : Prop A) -> (p : Proof A P) -> (q : Proof A P) -> Id (Proof A P) p q+{ proofIrr [A] Prop.true p q = Id.refl+; proofIrr [A] Prop.false p q = Id.refl+}+--- evaluating ---+--- closing "logic.ma" ---
test/succeed/logic.ma view
@@ -1,31 +1,31 @@ -- 2012-01-22 parameters gone from constructors -data Id (A : Set) (a : A) : A -> Set -{ refl : Id A a a +data Id (A : Set) (a : A) : A -> Set+{ refl : Id A a a } -fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> +fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b ->   (P : A -> Set) -> P a -> P b { subst A a .a (refl {-.A .a-}) P x = x }  -- this demonstrates eta expansion at the identity type-let bla :  (A : Set) -> (a : A) -> (p : Id A a a) -> -           (P : A -> Set) -> (x : P a) -> +let bla :  (A : Set) -> (a : A) -> (p : Id A a a) ->+           (P : A -> Set) -> (x : P a) ->               Id (P a) x (subst A a a p P x)         =  \ A -> \ a -> \ p -> \ P -> \ x -> refl -- (P a) x -fun resp : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> +fun resp : (A : Set) -> (a : A) -> (b : A) -> Id A a b ->   (C : Set) -> (f : A -> C) -> Id C (f a) (f b) { resp A a .a (refl {-.A .a-}) C f = refl -- C (f a) }- + -- Needs heterogeneous equality -- fun resp : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> (P : A -> Set) -> (f : (x : A) -> P x) -> Id (P a) (f a) (f b) -- { resp A a .a (refl .A .a) P f = refl (P a) (f a) -- }- -data True : Set ++data True : Set { trueI : True } @@ -38,7 +38,7 @@ fun falseE : False -> (A : Set) -> A { } -data And (A : Set) (B : Set) : Set +data And (A : Set) (B : Set) : Set { andI : (andE1 : A) -> (andE2 : B) -> And A B } @@ -57,7 +57,7 @@ ; and    : Prop A -> Prop A -> Prop A ; forall : (A -> Prop A) -> Prop A }- + fun Proof : (A : Set) -> Prop A -> Set { Proof A (true) = True ; Proof A (false) = False@@ -66,7 +66,7 @@ }  fun proofIrr : (A : Set) -> (P : Prop A) -> (p : Proof A P) -> (q : Proof A P) -> Id (Proof A P) p q-{ proofIrr A (true) p q = refl -- True p -; proofIrr A (false) p q = refl -- False p +{ proofIrr A (true) p q = refl -- True p+; proofIrr A (false) p q = refl -- False p -- ; proofIrr A (and .A P Q) (andI .(Proof A P) .(Proof A Q) p1 p2) (andI .(Proof A P) .(Proof A Q) q1 q2) = (proofIrr A P p1 p2) (proofIrr A Q q1 q2) -- etc pp }
+ test/succeed/lossyIdentityOnStreams.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "lossyIdentityOnStreams.ma" ---+--- scope checking ---+--- type checking ---+type  Stream : ++(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term  sid : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ sid [A] $[i < #] (Stream.cons [.$i] x xs) = Stream.cons [i] x (sid [A] [i] xs)+}+--- evaluating ---+--- closing "lossyIdentityOnStreams.ma" ---
+ test/succeed/magicVecLookupProofIrr.golden view
@@ -0,0 +1,38 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "magicVecLookupProofIrr.ma" ---+--- scope checking ---+--- type checking ---+type  Sigma : ^(A : Set) -> ^(B : A -> Set) -> Set+term  Sigma.pair : .[A : Set] -> .[B : A -> Set] -> ^(fst : A) -> ^(snd : B fst) -> < Sigma.pair fst snd : Sigma A B >+term  fst : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> A+{ fst [A] [B] (Sigma.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> B (fst [A] [B] pair)+{ snd [A] [B] (Sigma.pair #fst #snd) = #snd+}+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type  Empty : Set+term  magic : .[A : Set] -> .[p : Empty] -> A+{}+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  Vec : (A : Set) -> (n : Nat) -> Set+{ Vec A Nat.zero = Empty+; Vec A (Nat.succ n) = Sigma A (\ z -> Vec A n)+}+type  Leq : (n : Nat) -> (m : Nat) -> Set+{ Leq Nat.zero m = Unit+; Leq (Nat.succ n) Nat.zero = Empty+; Leq (Nat.succ n) (Nat.succ m) = Leq n m+}+type  Lt : (n : Nat) -> (m : Nat) -> Set+type  Lt = \ n -> \ m -> Leq (Nat.succ n) m+term  lookup : .[A : Set] -> (n : Nat) -> (m : Nat) -> .[Lt m n] -> Vec A n -> A+{ lookup [A] Nat.zero m [p] v = magic [A] [p]+; lookup [A] (Nat.succ n) Nat.zero [p] v = fst v+; lookup [A] (Nat.succ n) (Nat.succ m) [p] v = lookup [A] n m [p] (snd v)+}+--- evaluating ---+--- closing "magicVecLookupProofIrr.ma" ---
test/succeed/magicVecLookupProofIrr.ma view
@@ -15,7 +15,7 @@  -- magic = abort  does not need the inhabitant p : Empty fun magic : [A : Set] -> [p : Empty] -> A-{ +{ }  data Unit : Set
+ test/succeed/mapStream.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "mapStream.ma" ---+--- scope checking ---+--- type checking ---+type  Stream : ++(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term  map : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Stream A i -> Stream B i+{ map [A] [B] $[i < #] f (Stream.cons [.i] x xl) = Stream.cons [i] (f x) (map [A] [B] [i] f xl)+}+--- evaluating ---+--- closing "mapStream.ma" ---
test/succeed/mapStream.ma view
@@ -4,8 +4,8 @@   cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) } -cofun map : (A : Set) -> (B : Set) -> (i : Size) -> -            (A -> B) -> Stream A i -> Stream B i +cofun map : (A : Set) -> (B : Set) -> (i : Size) ->+            (A -> B) -> Stream A i -> Stream B i {   map A B ($ i) f (cons .i x xl) = cons _ (f x) (map A B _ f xl) }
+ test/succeed/max.golden view
@@ -0,0 +1,35 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "max.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+term  leq : Nat -> Nat -> Bool+{ leq Nat.zero n = Bool.true+; leq (Nat.suc m) Nat.zero = Bool.false+; leq (Nat.suc m) (Nat.suc n) = leq m n+}+term  maxN : Nat -> Nat -> Nat+{ maxN n m = case leq n m : Bool+             { Bool.true -> m+             ; Bool.false -> n+             }+}+term  one : Nat+term  one = Nat.suc Nat.zero+term  two : Nat+term  two = Nat.suc one+term  cmp : Bool+term  cmp = leq one two+term  bla : Nat+term  bla = maxN one two+--- evaluating ---+cmp has whnf Bool.true{}+cmp evaluates to Bool.true+bla has whnf Nat.suc{y0 = Nat.suc{y0 = Nat.zero{}}}+bla evaluates to Nat.suc (Nat.suc Nat.zero)+--- closing "max.ma" ---
test/succeed/max.ma view
@@ -1,11 +1,11 @@-data Nat : Set +data Nat : Set { zero : Nat ; suc  : Nat -> Nat }  data Bool : Set { true  : Bool-; false : Bool +; false : Bool }  fun leq : Nat -> Nat -> Bool@@ -15,7 +15,7 @@ }  fun maxN : Nat -> Nat -> Nat-{ maxN n m = case leq n m +{ maxN n m = case leq n m   { true -> m   ; false -> n   }
+ test/succeed/measures.golden view
@@ -0,0 +1,25 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "measures.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  Nat : + Size -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term  Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+term  even : .[i : Size] -> Nat i -> Bool+term  even' : .[i : Size] -> Nat i -> Bool+term  odd' : .[i : Size] -> Nat i -> Bool+{ even [i] n = even' [i] n+}+{ even' [i] (Nat.zero [j < i]) = Bool.true+; even' [i] (Nat.succ [j < i] n) = odd' [j] n+}+{ odd' [i] (Nat.zero [j < i]) = Bool.false+; odd' [i] (Nat.succ [j < i] n) = even [j] n+}+--- evaluating ---+--- closing "measures.ma" ---
test/succeed/measures.ma view
@@ -19,15 +19,15 @@    f : As -> mu -> Bs -> C   f ps qs = ... g as ...-  -as we reach measure mu in the type, insert it into the context -(reader monad) as the current measure.  +as we reach measure mu in the type, insert it into the context+(reader monad) as the current measure.+ When we reach a mutually defined identifier g of type-  +   g : Delta -> mu' -> D -we use it at type  +we use it at type   g : Delta -> mu' < mu -> D @@ -44,7 +44,7 @@   gn : TVn  The types are evaluated.  We want a function-  +   bound :: MeasVal -> TVal -> TVal   bound mu tv = tv' @@ -72,10 +72,10 @@    f : As -> mu -> Bs -> C   f ps qs = ... g as ...-  -as we reach measure mu in the type, insert it into the context -(reader monad) as the current measure.  +as we reach measure mu in the type, insert it into the context+(reader monad) as the current measure.+ When checking the application g as on the rhs, if g is in the set of mutual functions with f, then during infering the type of g as we will have its type as@@ -93,16 +93,16 @@   |-{mu}  t : A             |-{mu}  t : mu' -> A    mu' < mu   -------------- mu-Intro   -------------------------------- mu-Elim   |- t : mu -> A            |-{mu}  t : A-  + After finishing checking the mutual block, purge the measures from the types of the mutual functions!  For nested functions, generalize the rule to: -  |-{mu}  t : A           -  ------------------- mu-Intro -  |-{mu'} t : mu -> A          -  +  |-{mu}  t : A+  ------------------- mu-Intro+  |-{mu'} t : mu -> A+ With this system, one cannot do lexicographic induction by nested induction.  @@ -111,7 +111,7 @@   x : mu |- t : A             x : mu |- t : mu' -> A    mu' < mu   -------------- mu-Intro     ---------------------------------- mu-Elim   |- \xt : mu -> A            x : mu |- t x : A-  +  -}  mutual {@@ -123,12 +123,12 @@   fun even' : [i : Size] -> |i,0|  -> Nat i -> Bool   { even' i (zero (i > j))   = true   ; even' i (succ (i > j) n) = odd' j n-  } +  }    fun odd'  : [i : Size] -> |i,0|  -> Nat i -> Bool   { odd' i (zero (i > j))   = false   ; odd' i (succ (i > j) n) = even j n-  } +  } }  {-@@ -141,12 +141,12 @@   fun even' : [i : Size] -> |i,0|  -> Nat i -> Bool   { even' .($ i) (zero i)   = true   ; even' .($ i) (succ i n) = odd' i n-  } +  }    fun odd'  : [i : Size] -> |i,0|  -> Nat i -> Bool   { odd' .($ i) (zero i)   = false   ; odd' .($ i) (succ i n) = even i n-  } +  } } -} @@ -167,6 +167,6 @@  fun addSNat : (n : N) -> (i : Size) -> Nat i -> Nat (addSize n i) { addSNat zz     i m = m-; addSNat (ss n) i m = succ (addSize n i) (addSNat n i m) +; addSNat (ss n) i m = succ (addSize n i) (addSNat n i m) } -}
+ test/succeed/msort-implicit.golden view
@@ -0,0 +1,64 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "msort-implicit.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.tt : < Bool.tt : Bool >+term  Bool.ff : < Bool.ff : Bool >+term  ifthenelse : .[A : Set] -> Bool -> A -> A -> A+{ ifthenelse [A] Bool.tt x y = x+; ifthenelse [A] Bool.ff x y = y+}+type  Pair : ++(A : Set) -> Set+term  Pair.pair : .[A : Set] -> ^(y0 : A) -> ^(y1 : A) -> < Pair.pair y0 y1 : Pair A >+term  pr1 : .[A : Set] -> Pair A -> A+{ pr1 [A] (Pair.pair a b) = a+}+term  pr2 : .[A : Set] -> Pair A -> A+{ pr2 [A] (Pair.pair a b) = b+}+type  SList : ++(A : Set) -> + Size -> Set+term  SList.nil : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> SList A s!ze+term  SList.nil : .[A : Set] -> .[i : Size] -> < SList.nil i : SList A $i >+term  SList.cons : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ SList A i -> SList A s!ze+term  SList.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : SList A i) -> < SList.cons i y1 y2 : SList A $i >+term  split : .[A : Set] -> .[i : Size] -> SList A i -> Pair (SList A i)+{ split [A] [.$i] (SList.nil [i]) = Pair.pair (SList.nil [i]) (SList.nil [i])+; split [A] [.$$i] (SList.cons [.$i] a (SList.nil [i])) = Pair.pair (SList.cons [$i] a (SList.nil [i])) (SList.nil [$i])+; split [A] [.$$i] (SList.cons [.$i] a (SList.cons [i] b as)) = let rec : Pair (SList A i)+                                                                        = split [A] [i] as+                                                                in let l1 : SList A i+                                                                          = pr1 [SList A i] rec+                                                                   in let l2 : SList A i+                                                                             = pr2 [SList A i] rec+                                                                      in Pair.pair (SList.cons [i] a l1) (SList.cons [i] b l2)+}+term  merge : .[A : Set] -> (leq : A -> A -> Bool) -> SList A # -> SList A # -> SList A #+{ merge [A] leq (SList.nil [.#]) ys = ys+; merge [A] leq (SList.cons [.#] x xs) (SList.nil [.#]) = SList.cons [#] x xs+; merge [A] leq (SList.cons [.#] x xs) (SList.cons [.#] y ys) = ifthenelse [SList A #] (leq x y) (SList.cons [#] x (SList.cons [#] y (merge [A] leq xs ys))) (SList.cons [#] y (SList.cons [#] x (merge [A] leq xs ys)))+}+term  msort : .[A : Set] -> (leq : A -> A -> Bool) -> .[i : Size] -> SList A i -> SList A #+{ msort [A] leq [.$j] (SList.nil [j]) = SList.nil [#]+; msort [A] leq [.$$i] (SList.cons [.$i] a (SList.nil [i])) = SList.cons [#] a (SList.nil [#])+; msort [A] leq [.$$i] (SList.cons [.$i] a (SList.cons [i] b l)) = let sl : Pair (SList A i)+                                                                          = split [A] [i] l+                                                                   in let l1 : SList A #+                                                                             = msort [A] leq [$i] (SList.cons [i] a (pr1 [SList A i] sl))+                                                                      in let l2 : SList A #+                                                                                = msort [A] leq [$i] (SList.cons [i] b (pr2 [SList A i] sl))+                                                                         in merge [A] leq l1 l2+}+term  msort' : .[A : Set] -> (leq : A -> A -> Bool) -> (.[i : Size] -> SList A i -> Pair (SList A i)) -> .[i : Size] -> SList A i -> SList A #+{ msort' [A] leq splt [.$j] (SList.nil [j]) = SList.nil [#]+; msort' [A] leq splt [.$$i] (SList.cons [.$i] a (SList.nil [i])) = SList.cons [#] a (SList.nil [#])+; msort' [A] leq splt [.$$i] (SList.cons [.$i] a (SList.cons [i] b l)) = let sl : Pair (SList A i)+                                                                                = splt [i] l+                                                                         in let l1 : SList A #+                                                                                   = msort' [A] leq splt [$i] (SList.cons [i] a (pr1 [SList A i] sl))+                                                                            in let l2 : SList A #+                                                                                      = msort' [A] leq splt [$i] (SList.cons [i] b (pr2 [SList A i] sl))+                                                                               in merge [A] leq l1 l2+}+--- evaluating ---+--- closing "msort-implicit.ma" ---
test/succeed/msort-implicit.ma view
@@ -5,7 +5,7 @@  -- booleans -data Bool : Set +data Bool : Set {   tt : Bool;   ff : Bool@@ -19,9 +19,9 @@  -- homogeneous pairs -data Pair (+ A : Set) : Set +data Pair (+ A : Set) : Set {-  pair : A -> A -> Pair A +  pair : A -> A -> Pair A } -- this yields --@@ -41,7 +41,7 @@  -- sized Lists -sized data SList (+ A : Set) : Size -> Set +sized data SList (+ A : Set) : Size -> Set {   nil  : [i : Size] -> SList A ($ i) ;   cons : [i : Size] -> A -> SList A i -> SList A ($ i)@@ -49,40 +49,40 @@  -- merge sort -fun split : [A : Set] -> +fun split : [A : Set] ->             [i : Size] -> SList A i -> Pair (SList A i) {-split A .($ i)     (nil i)                    +split A .($ i)     (nil i)   = pair (nil _) (nil _);  split A .($ ($ i)) (cons .($ i) a (nil i))   = pair (cons _ a (nil _)) (nil _); -split A .($ ($ i)) (cons .($ i) a (cons i b as))  +split A .($ ($ i)) (cons .($ i) a (cons i b as))   =  let rec : Pair (SList A i) = split A _ as   in let l1 : SList A _ = pr1 (SList A _) rec   in let l2 : SList A _ = pr2 (SList A _) rec   in pair (cons _ a l1) (cons _ b l2) } -fun merge : [A : Set] -> (leq : A -> A -> Bool) +fun merge : [A : Set] -> (leq : A -> A -> Bool)             -> SList A # -> SList A # -> SList A # { merge A leq (nil .#) ys = ys; merge A leq (cons .# x xs) (nil .#) = cons _ x xs; merge A leq (cons .# x xs) (cons .# y ys) = ifthenelse (SList A _)-	(leq x y) (cons _ x (cons _ y (merge A leq xs ys)))-		  (cons _ y (cons _ x (merge A leq xs ys)))+        (leq x y) (cons _ x (cons _ y (merge A leq xs ys)))+                  (cons _ y (cons _ x (merge A leq xs ys))) }  fun msort : [A : Set] -> (leq : A -> A -> Bool) ->             [i : Size] -> SList A i -> SList A # {   msort A leq .($ j) (nil j) = nil _ ;-  msort A leq .($ ($ i)) (cons .($ i) a (nil i)) = +  msort A leq .($ ($ i)) (cons .($ i) a (nil i)) =      cons _ a (nil _) ;   msort A leq .($ ($ i)) (cons .($ i) a (cons i b l)) =-        let sl : Pair (SList A _) = split A _ l      +        let sl : Pair (SList A _) = split A _ l      in let l1 : SList A # = msort A leq _ (cons _ a (pr1 (SList A _) sl))      in let l2 : SList A # = msort A leq _ (cons _ b (pr2 (SList A _) sl))      in merge A leq l1 l2@@ -94,10 +94,10 @@              [i : Size] -> SList A i -> SList A # {   msort' A leq splt .($ j) (nil j) = nil _ ;-  msort' A leq splt .($ ($ i)) (cons .($ i) a (nil i)) = +  msort' A leq splt .($ ($ i)) (cons .($ i) a (nil i)) =      cons _ a (nil _) ;   msort' A leq splt .($ ($ i)) (cons .($ i) a (cons i b l)) =-        let sl : Pair (SList A _) = splt _ l      +        let sl : Pair (SList A _) = splt _ l      in let l1 : SList A # = msort' A leq splt _ (cons _ a (pr1 (SList A _) sl))      in let l2 : SList A # = msort' A leq splt _ (cons _ b (pr2 (SList A _) sl))      in merge A leq l1 l2
+ test/succeed/msort.golden view
@@ -0,0 +1,64 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "msort.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.tt : < Bool.tt : Bool >+term  Bool.ff : < Bool.ff : Bool >+term  ifthenelse : .[A : Set] -> Bool -> A -> A -> A+{ ifthenelse [A] Bool.tt x y = x+; ifthenelse [A] Bool.ff x y = y+}+type  Pair : ++(A : Set) -> Set+term  Pair.pair : .[A : Set] -> ^(y0 : A) -> ^(y1 : A) -> < Pair.pair y0 y1 : Pair A >+term  pr1 : .[A : Set] -> Pair A -> A+{ pr1 [A] (Pair.pair a b) = a+}+term  pr2 : .[A : Set] -> Pair A -> A+{ pr2 [A] (Pair.pair a b) = b+}+type  SList : ++(A : Set) -> + Size -> Set+term  SList.nil : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> SList A s!ze+term  SList.nil : .[A : Set] -> .[i : Size] -> < SList.nil i : SList A $i >+term  SList.cons : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ SList A i -> SList A s!ze+term  SList.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : SList A i) -> < SList.cons i y1 y2 : SList A $i >+term  split : .[A : Set] -> .[i : Size] -> SList A i -> Pair (SList A i)+{ split [A] [.$i] (SList.nil [i]) = Pair.pair (SList.nil [i]) (SList.nil [i])+; split [A] [.$$i] (SList.cons [.$i] a (SList.nil [i])) = Pair.pair (SList.cons [$i] a (SList.nil [i])) (SList.nil [$i])+; split [A] [.$$i] (SList.cons [.$i] a (SList.cons [i] b as)) = let rec : Pair (SList A i)+                                                                        = split [A] [i] as+                                                                in let l1 : SList A i+                                                                          = pr1 [SList A i] rec+                                                                   in let l2 : SList A i+                                                                             = pr2 [SList A i] rec+                                                                      in Pair.pair (SList.cons [i] a l1) (SList.cons [i] b l2)+}+term  merge : .[A : Set] -> (leq : A -> A -> Bool) -> SList A # -> SList A # -> SList A #+{ merge [A] leq (SList.nil [.#]) ys = ys+; merge [A] leq (SList.cons [.#] x xs) (SList.nil [.#]) = SList.cons [#] x xs+; merge [A] leq (SList.cons [.#] x xs) (SList.cons [.#] y ys) = ifthenelse [SList A #] (leq x y) (SList.cons [#] x (SList.cons [#] y (merge [A] leq xs ys))) (SList.cons [#] y (SList.cons [#] x (merge [A] leq xs ys)))+}+term  msort : .[A : Set] -> (leq : A -> A -> Bool) -> .[i : Size] -> SList A i -> SList A #+{ msort [A] leq [.$j] (SList.nil [j]) = SList.nil [#]+; msort [A] leq [.$$i] (SList.cons [.$i] a (SList.nil [i])) = SList.cons [#] a (SList.nil [#])+; msort [A] leq [.$$i] (SList.cons [.$i] a (SList.cons [i] b l)) = let sl : Pair (SList A i)+                                                                          = split [A] [i] l+                                                                   in let l1 : SList A #+                                                                             = msort [A] leq [$i] (SList.cons [i] a (pr1 [SList A i] sl))+                                                                      in let l2 : SList A #+                                                                                = msort [A] leq [$i] (SList.cons [i] b (pr2 [SList A i] sl))+                                                                         in merge [A] leq l1 l2+}+term  msort' : .[A : Set] -> (leq : A -> A -> Bool) -> (.[i : Size] -> SList A i -> Pair (SList A i)) -> .[i : Size] -> SList A i -> SList A #+{ msort' [A] leq splt [.$j] (SList.nil [j]) = SList.nil [#]+; msort' [A] leq splt [.$$i] (SList.cons [.$i] a (SList.nil [i])) = SList.cons [#] a (SList.nil [#])+; msort' [A] leq splt [.$$i] (SList.cons [.$i] a (SList.cons [i] b l)) = let sl : Pair (SList A i)+                                                                                = splt [i] l+                                                                         in let l1 : SList A #+                                                                                   = msort' [A] leq splt [$i] (SList.cons [i] a (pr1 [SList A i] sl))+                                                                            in let l2 : SList A #+                                                                                      = msort' [A] leq splt [$i] (SList.cons [i] b (pr2 [SList A i] sl))+                                                                               in merge [A] leq l1 l2+}+--- evaluating ---+--- closing "msort.ma" ---
test/succeed/msort.ma view
@@ -2,7 +2,7 @@  -- booleans -data Bool : Set +data Bool : Set {   tt : Bool;   ff : Bool@@ -16,9 +16,9 @@  -- homogeneous pairs -data Pair (+ A : Set) : Set +data Pair (+ A : Set) : Set {-  pair : A -> A -> Pair A +  pair : A -> A -> Pair A }  fun pr1 : (A : Set) -> Pair A -> A@@ -33,7 +33,7 @@  -- sized Lists -sized data SList (+ A : Set) : Size -> Set +sized data SList (+ A : Set) : Size -> Set {   nil  : (i : Size) -> SList A ($ i) ;   cons : (i : Size) -> A -> SList A i -> SList A ($ i)@@ -41,40 +41,40 @@  -- merge sort -fun split : (A : Set) -> +fun split : (A : Set) ->             (i : Size) -> SList A i -> Pair (SList A i) {-split A .($ i)     (nil i)                    +split A .($ i)     (nil i)   = pair (nil _) (nil _);  split A .($ ($ i)) (cons .($ i) a (nil i))   = pair (cons _ a (nil _)) (nil _); -split A .($ ($ i)) (cons .($ i) a (cons i b as))  +split A .($ ($ i)) (cons .($ i) a (cons i b as))   =  let rec : Pair (SList A i) = split A _ as   in let l1 : SList A _ = pr1 (SList A _) rec   in let l2 : SList A _ = pr2 (SList A _) rec   in pair (cons _ a l1) (cons _ b l2) } -fun merge : (A : Set) -> (leq : A -> A -> Bool) +fun merge : (A : Set) -> (leq : A -> A -> Bool)             -> SList A # -> SList A # -> SList A # { merge A leq (nil .#) ys = ys; merge A leq (cons .# x xs) (nil .#) = cons _ x xs; merge A leq (cons .# x xs) (cons .# y ys) = ifthenelse (SList A _)-	(leq x y) (cons _ x (cons _ y (merge A leq xs ys)))-		  (cons _ y (cons _ x (merge A leq xs ys)))+        (leq x y) (cons _ x (cons _ y (merge A leq xs ys)))+                  (cons _ y (cons _ x (merge A leq xs ys))) }  fun msort : (A : Set) -> (leq : A -> A -> Bool) ->             (i : Size) -> SList A i -> SList A # {   msort A leq .($ j) (nil j) = nil _ ;-  msort A leq .($ ($ i)) (cons .($ i) a (nil i)) = +  msort A leq .($ ($ i)) (cons .($ i) a (nil i)) =      cons _ a (nil _) ;   msort A leq .($ ($ i)) (cons .($ i) a (cons i b l)) =-        let sl : Pair (SList A _) = split A _ l      +        let sl : Pair (SList A _) = split A _ l      in let l1 : SList A # = msort A leq _ (cons _ a (pr1 (SList A _) sl))      in let l2 : SList A # = msort A leq _ (cons _ b (pr2 (SList A _) sl))      in merge A leq l1 l2@@ -86,10 +86,10 @@              (i : Size) -> SList A i -> SList A # {   msort' A leq splt .($ j) (nil j) = nil _ ;-  msort' A leq splt .($ ($ i)) (cons .($ i) a (nil i)) = +  msort' A leq splt .($ ($ i)) (cons .($ i) a (nil i)) =      cons _ a (nil _) ;   msort' A leq splt .($ ($ i)) (cons .($ i) a (cons i b l)) =-        let sl : Pair (SList A _) = splt _ l      +        let sl : Pair (SList A _) = splt _ l      in let l1 : SList A # = msort' A leq splt _ (cons _ a (pr1 (SList A _) sl))      in let l2 : SList A # = msort' A leq splt _ (cons _ b (pr2 (SList A _) sl))      in merge A leq l1 l2
+ test/succeed/nat.golden view
@@ -0,0 +1,41 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "nat.ma" ---+--- scope checking ---+--- type checking ---+type  SNat : + Size -> Set+term  SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term  SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term  SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term  SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+term  add : SNat # -> SNat # -> SNat #+{ add (SNat.zero [.#]) y = y+; add (SNat.succ [.#] x) y = SNat.succ [#] (add x y)+}+term  inc : .[i : Size] -> .[j : Size] -> SNat i -> SNat $i+{ inc [i] [j] x = SNat.succ [i] x+}+term  minus : .[i : Size] -> SNat i -> SNat # -> SNat i+{ minus [i] (SNat.zero [j < i]) y = SNat.zero [j]+; minus [i] x (SNat.zero [.#]) = x+; minus [i] (SNat.succ [j < i] x) (SNat.succ [.#] y) = minus [j] x y+}+term  test : SNat #+term  test = minus [#] (SNat.succ [#] (SNat.succ [#] (SNat.zero [#]))) (SNat.succ [#] (SNat.zero [#]))+term  div : .[i : Size] -> SNat i -> SNat # -> SNat i+{ div [i] (SNat.zero [j < i]) y = SNat.zero [j]+; div [i] (SNat.succ [j < i] x) y = SNat.succ [j] (div [j] (minus [j] x y) y)+}+type  Bool : Set+term  Bool.tt : < Bool.tt : Bool >+term  Bool.ff : < Bool.ff : Bool >+term  true : .[i : Size] -> SNat i -> Bool+{ true [.$i] (SNat.zero [i]) = Bool.tt+; true [.$i] (SNat.succ [i] x) = true [i] x+}+term  ok : .[Size] -> Bool+{ ok [i] = Bool.tt+}+--- evaluating ---+test has whnf (minus # (succ # (succ # (zero #))) (succ # (zero #)))+test evaluates to minus # (succ # (succ # (zero #))) (succ # (zero #))+--- closing "nat.ma" ---
test/succeed/nat.ma view
@@ -9,8 +9,8 @@  fun add : SNat # -> SNat # -> SNat # {-add (zero .#)   y = y; -add (succ .# x) y = succ # (add x y) +add (zero .#)   y = y;+add (succ .# x) y = succ # (add x y) }  fun inc : (i : Size) -> (j : Size) -> SNat i -> SNat ($ i)@@ -24,12 +24,12 @@ ; minus i (succ (i > j) x) (succ .# y) = minus j x y    -- subtyping j < i } -eval let test : SNat # = +eval let test : SNat # =   minus # (succ # (succ # (zero #))) (succ # (zero #)) --- div n m = floor(n/(m+1)) +-- div n m = floor(n/(m+1)) fun div : [i : Size] -> SNat i -> SNat # -> SNat i-{ div i (zero (i > j))   y = zero j +{ div i (zero (i > j))   y = zero j ; div i (succ (i > j) x) y = succ j (div j (minus j x y) y) } 
+ test/succeed/non-record.golden view
@@ -0,0 +1,8 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "non-record.ma" ---+--- scope checking ---+--- type checking ---+type  NotARecord : ^(A : Set) -> ^(B : Set) -> Set+term  NotARecord.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(y1 : B) -> < NotARecord.pair fst y1 : NotARecord A B >+--- evaluating ---+--- closing "non-record.ma" ---
+ test/succeed/old_stream.golden view
@@ -0,0 +1,114 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "old_stream.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.tt : < Bool.tt : Bool >+term  Bool.ff : < Bool.ff : Bool >+term  ifthenelse : Bool -> .[A : Set] -> A -> A -> A+{ ifthenelse Bool.tt [A] a1 a2 = a1+; ifthenelse Bool.ff [A] a1 a2 = a2+}+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  add : Nat -> Nat -> Nat+{ add Nat.zero = \ y -> y+; add (Nat.succ x) = \ y -> Nat.succ (add x y)+}+term  leq : Nat -> Nat -> Bool+{ leq Nat.zero y = Bool.tt+; leq (Nat.succ x) Nat.zero = Bool.ff+; leq (Nat.succ x) (Nat.succ y) = leq x y+}+type  Stream : ++(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term  tail : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ tail [A] [i] (Stream.cons [.i] x xs) = xs+}+term  head : .[A : Set] -> .[i : Size] -> Stream A $i -> A+{ head [A] [i] (Stream.cons [.i] x xs) = x+}+term  nth : Nat -> Stream Nat # -> Nat+{ nth Nat.zero xs = head [Nat] [#] xs+; nth (Nat.succ x) xs = nth x (tail [Nat] [#] xs)+}+term  map : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Stream A i -> Stream B i+{ map [A] [B] $[i < #] f (Stream.cons [.i] x xl) = Stream.cons [i] (f x) (map [A] [B] [i] f xl)+}+term  zipWith : .[A : Set] -> .[B : Set] -> .[C : Set] -> (A -> B -> C) -> .[i : Size] -> Stream A i -> Stream B i -> Stream C i+{ zipWith [A] [B] [C] f $[i < #] (Stream.cons [.i] a as) (Stream.cons [.i] b bs) = Stream.cons [i] (f a b) (zipWith [A] [B] [C] f [i] as bs)+}+term  merge : .[i : Size] -> (Nat -> Nat -> Bool) -> Stream Nat i -> Stream Nat i -> Stream Nat i+{ merge $[i < #] le (Stream.cons [.i] x xs) (Stream.cons [.i] y ys) = ifthenelse (le x y) [Stream Nat $i] (Stream.cons [i] x (merge [i] le xs (Stream.cons [i] y ys))) (Stream.cons [i] y (merge [i] le (Stream.cons [i] x xs) ys))+}+term  one : Nat+term  one = Nat.succ Nat.zero+term  two : Nat+term  two = Nat.succ one+term  three : Nat+term  three = Nat.succ two+term  four : Nat+term  four = Nat.succ three+term  five : Nat+term  five = Nat.succ four+term  double : Nat -> Nat+term  double = \ n -> add n n+term  triple : Nat -> Nat+term  triple = \ n -> add n (double n)+term  ham : .[i : Size] -> Stream Nat i+{ ham $[i < #] = Stream.cons [i] one (merge [i] leq (map [Nat] [Nat] [i] double (ham [i])) (map [Nat] [Nat] [i] triple (ham [i])))+}+term  fib : .[i : Size] -> Stream Nat i+{ fib $[i < #] = Stream.cons [i] Nat.zero (zipWith [Nat] [Nat] [Nat] add [i] (Stream.cons [i] one (fib [i])) (fib [i]))+}+term  fibIter' : (x : Nat) -> (y : Nat) -> .[i : Size] -> Stream Nat i+{ fibIter' x y $[i < #] = Stream.cons [i] x (fibIter' y (add x y) [i])+}+term  fibIter : Stream Nat #+term  fibIter = fibIter' one one [?14]+term  fibIter4 : Nat+term  fibIter4 = nth four fibIter+term  fib1 : Nat+term  fib1 = nth one (fib [#])+term  fib2 : Nat+term  fib2 = nth two (fib [#])+term  fib3 : Nat+term  fib3 = nth three (fib [#])+term  fib4 : Nat+term  fib4 = nth four (fib [#])+term  fib5 : Nat+term  fib5 = nth five (fib [#])+type  Leq : ^ Nat -> ^ Nat -> Set+term  Leq.lqz : .[x : Nat] -> < Leq.lqz x : Leq Nat.zero x >+term  Leq.lqs : .[x : Nat] -> .[y : Nat] -> ^(y2 : Leq x y) -> < Leq.lqs x y y2 : Leq (Nat.succ x) (Nat.succ y) >+type  Increasing : - Size -> ^ Stream Nat # -> Set+term  Increasing.inc : .[i : Size] -> .[x : Nat] -> .[y : Nat] -> ^(y3 : Leq x y) -> .[tl : Stream Nat #] -> ^(y5 : Increasing i (Stream.cons [#] y tl)) -> < Increasing.inc i x y y3 tl y5 : Increasing $i (Stream.cons [#] x (Stream.cons [#] y tl)) >+type  Eq : ++(A : Set) -> ^ A -> ^ A -> Set+term  Eq.refl : .[A : Set] -> .[a : A] -> < Eq.refl a : Eq A a a >+term  proof : Eq (Stream Nat #) (tail [Nat] [#] fibIter) (tail [Nat] [#] fibIter)+term  proof = Eq.refl [tail [Nat] [#] fibIter]+term  succ_ : Nat -> Nat+term  succ_ = \ x -> Nat.succ x+term  evil : .[i : Size] -> Stream Nat i+{ evil $[i < #] = map [Nat] [Nat] [$i] succ_ (Stream.cons [i] Nat.zero (evil [i]))+}+term  cons_ : .[A : Set] -> .[i : Size] -> A -> Stream A i -> Stream A $i+term  cons_ = [\ A ->] [\ i ->] \ a -> \ as -> Stream.cons [i] a as+term  dmerge : .[A : Set] -> .[i : Size] -> Stream (Stream A i) i -> Stream A i+{ dmerge [A] $[i < #] (Stream.cons [.i] ys yss) = Stream.cons [i] (head [A] [i] ys) (dmerge [A] [i] (zipWith [A] [Stream A i] [Stream A i] (cons_ [A] [i]) [i] (tail [A] [i] ys) yss))+}+--- evaluating ---+fibIter4 has whnf (head {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14))), x = Nat.succ{y0 = Nat.zero{}}}} # (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)))), x = Nat.zero{}}} # (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14))), x = Nat.succ{y0 = Nat.zero{}}}} # (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)))))}} # (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14))), x = Nat.succ{y0 = Nat.zero{}}}} # (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)))), x = Nat.zero{}}} # (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14))), x = Nat.succ{y0 = Nat.zero{}}}} # (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14))))))+fibIter4 evaluates to head Nat # (tail Nat # (tail Nat # (tail Nat # (tail Nat # (fibIter' (Nat.succ Nat.zero) (Nat.succ Nat.zero) ?14)))))+fib1 has whnf Nat.succ{y0 = Nat.zero{}}+fib1 evaluates to Nat.succ Nat.zero+fib2 has whnf Nat.succ{y0 = Nat.zero{}}+fib2 evaluates to Nat.succ Nat.zero+fib3 has whnf Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}+fib3 evaluates to Nat.succ (Nat.succ Nat.zero)+fib4 has whnf Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}+fib4 evaluates to Nat.succ (Nat.succ (Nat.succ Nat.zero))+fib5 has whnf Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}}+fib5 evaluates to Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero))))+--- closing "old_stream.ma" ---
test/succeed/old_stream.ma view
@@ -2,7 +2,7 @@  -- Booleans ---------------------------------------------------------- -data Bool : Set +data Bool : Set { tt : Bool ; ff : Bool }@@ -14,74 +14,74 @@  -- Nat --------------------------------------------------------------- -data Nat : Set +data Nat : Set { zero : Nat-; succ : Nat -> Nat +; succ : Nat -> Nat } -fun add : Nat -> Nat -> Nat +fun add : Nat -> Nat -> Nat { add zero     = \ y -> y ; add (succ x) = \ y -> succ (add x y) }  fun leq : Nat -> Nat -> Bool { leq  zero     y       = tt-; leq (succ x)  zero    = ff -; leq (succ x) (succ y) = leq x y +; leq (succ x)  zero    = ff+; leq (succ x) (succ y) = leq x y }  -- Stream ------------------------------------------------------------ -sized codata Stream (+ A : Set) : Size -> Set +sized codata Stream (+ A : Set) : Size -> Set { cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }- + fun tail : (A : Set) -> (i : Size) -> Stream A ($ i) -> Stream A i { tail A i (cons .i x xs) = xs } -fun head : (A : Set) -> (i : Size) -> Stream A ($ i) -> A +fun head : (A : Set) -> (i : Size) -> Stream A ($ i) -> A { head A i (cons .i x xs) = x } -fun nth : Nat -> Stream Nat # -> Nat +fun nth : Nat -> Stream Nat # -> Nat { nth zero xs     = head Nat # xs-; nth (succ x) xs = nth x (tail Nat # xs) +; nth (succ x) xs = nth x (tail Nat # xs) }  -- map, zip, merge --------------------------------------------------- -cofun map : (A : Set) -> (B : Set) -> (i : Size) -> -            (A -> B) -> Stream A i -> Stream B i +cofun map : (A : Set) -> (B : Set) -> (i : Size) ->+            (A -> B) -> Stream A i -> Stream B i { map A B ($ i) f (cons .i x xl) = cons _ (f x) (map A B _ f xl) }  cofun zipWith : (A : Set) -> (B : Set) -> (C : Set) ->                 (A -> B -> C) -> (i : Size) ->-		Stream A i -> Stream B i -> Stream C i +                Stream A i -> Stream B i -> Stream C i {-  zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) = -	cons i (f a b)  (zipWith A B C f i as bs) +  zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) =+        cons i (f a b)  (zipWith A B C f i as bs) } -cofun merge : (i : Size) -> (Nat -> Nat -> Bool) -> +cofun merge : (i : Size) -> (Nat -> Nat -> Bool) ->               Stream Nat i -> Stream Nat i -> Stream Nat i {-merge ($ i) le (cons .i x xs) (cons .i y ys) = +merge ($ i) le (cons .i x xs) (cons .i y ys) =       ifthenelse (le x y) (Stream Nat _)          (cons _ x (merge _ le xs (cons _ y ys)))-	 (cons _ y (merge _ le (cons _ x xs) ys))     +         (cons _ y (merge _ le (cons _ x xs) ys)) }  {--cofun merge : (i : Size) -> (Nat -> Nat -> Bool) -> +cofun merge : (i : Size) -> (Nat -> Nat -> Bool) ->               Stream Nat i -> Stream Nat i -> Stream Nat i {-merge .($ i) le (cons .i x xs) (cons i y ys) = +merge .($ i) le (cons .i x xs) (cons i y ys) =       ifthenelse (le x y) (Stream Nat _)          (cons _ x (merge _ le xs (cons _ y ys)))-	 (cons _ y (merge _ le (cons _ x xs) ys))     +         (cons _ y (merge _ le (cons _ x xs) ys)) } -} @@ -100,22 +100,22 @@  cofun ham : (i : Size) -> Stream Nat i {-  ham ($ i) = cons _ one (merge i leq (map Nat Nat i double (ham i)) +  ham ($ i) = cons _ one (merge i leq (map Nat Nat i double (ham i))                                     (map Nat Nat i triple (ham i))) }   {- -- THIS SHOULD NOT TYPECHECK!!-cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 .($ ($ i)) f (cons .Nat .($ i) u (cons .Nat i x xl)) = +map2 .($ ($ i)) f (cons .Nat .($ i) u (cons .Nat i x xl)) =   cons _ (f u) (cons _ (f x) (map2 _ f xl)) }  cofun ham2 : (i : Size) -> Stream Nat i {-  ham2 ($ i) = cons _ one (merge i leq (map2 i double (ham2 i)) +  ham2 ($ i) = cons _ one (merge i leq (map2 i double (ham2 i))                                      (map2 i triple (ham2 i))) } @@ -147,23 +147,23 @@  cofun fib : (i : Size) -> Stream Nat i {-  fib ($ i) = cons _ zero (zipWith Nat Nat Nat add i +  fib ($ i) = cons _ zero (zipWith Nat Nat Nat add i     (cons _ one (fib i)) (fib i)) }   -cofun fibIter' : (x : Nat ) -> (y : Nat ) -> (i : Size) -> Stream Nat i +cofun fibIter' : (x : Nat ) -> (y : Nat ) -> (i : Size) -> Stream Nat i {   fibIter' x y ($ i) = cons _ x (fibIter' y (add x y) _)-} +} let fibIter : Stream Nat # = (fibIter' one one _)   -------------------------------------------- --- fibIter(4) = 5 -eval let fibIter4 : Nat = nth four fibIter +-- fibIter(4) = 5+eval let fibIter4 : Nat = nth four fibIter  eval let fib1 : Nat = nth one   (fib #) eval let fib2 : Nat = nth two   (fib #)@@ -182,9 +182,9 @@  sized codata Increasing : Size -> Stream Nat # -> Set {-inc : (i : Size) -> (x : Nat) -> (y : Nat) -> Leq x y -> (tl : Stream Nat #) -> +inc : (i : Size) -> (x : Nat) -> (y : Nat) -> Leq x y -> (tl : Stream Nat #) ->       Increasing i (cons # y tl) ->-      Increasing ($ i) (cons # x (cons # y tl)) +      Increasing ($ i) (cons # x (cons # y tl)) }  @@ -203,7 +203,7 @@ evil ($ i) = map Nat Nat _ succ_ (cons _ zero (evil _)) } --- eval const zzz : Nat = head # (z #) +-- eval const zzz : Nat = head # (z #)   @@ -211,13 +211,12 @@  let cons_ : [A : Set] -> [i : Size] -> A -> Stream A i -> Stream A $i    = \ A i a as -> cons i a as- + cofun dmerge : (A : Set) -> (i : Size) -> Stream (Stream A i) i -> Stream A i {-dmerge A ($ i) (cons .i ys yss) = +dmerge A ($ i) (cons .i ys yss) =   cons i (head A _ ys) (dmerge A i-    (zipWith A (Stream A _) (Stream A _) (cons_ A _) i +    (zipWith A (Stream A _) (Stream A _) (cons_ A _) i             (tail A _ ys) yss)) }- 
+ test/succeed/oldnat.golden view
@@ -0,0 +1,41 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "oldnat.ma" ---+--- scope checking ---+--- type checking ---+type  SNat : + Size -> Set+term  SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term  SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term  SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term  SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+term  add : SNat # -> SNat # -> SNat #+{ add (SNat.zero [.#]) y = y+; add (SNat.succ [.#] x) y = SNat.succ [#] (add x y)+}+term  inc : .[i : Size] -> .[j : Size] -> SNat i -> SNat $i+{ inc [i] [j] x = SNat.succ [i] x+}+term  minus : .[i : Size] -> SNat i -> SNat # -> SNat i+{ minus [.$i] (SNat.zero [i]) y = SNat.zero [i]+; minus [i] x (SNat.zero [.#]) = x+; minus [.$i] (SNat.succ [i] x) (SNat.succ [.#] y) = minus [i] x y+}+term  test : SNat #+term  test = minus [#] (SNat.succ [#] (SNat.succ [#] (SNat.zero [#]))) (SNat.succ [#] (SNat.zero [#]))+term  div : .[i : Size] -> SNat i -> SNat # -> SNat i+{ div [.$i] (SNat.zero [i]) y = SNat.zero [i]+; div [.$i] (SNat.succ [i] x) y = SNat.succ [i] (div [i] (minus [i] x y) y)+}+type  Bool : Set+term  Bool.tt : < Bool.tt : Bool >+term  Bool.ff : < Bool.ff : Bool >+term  true : .[i : Size] -> SNat i -> Bool+{ true [.$i] (SNat.zero [i]) = Bool.tt+; true [.$i] (SNat.succ [i] x) = true [i] x+}+term  ok : .[Size] -> Bool+{ ok [i] = Bool.tt+}+--- evaluating ---+test has whnf (minus # (succ # (succ # (zero #))) (succ # (zero #)))+test evaluates to minus # (succ # (succ # (zero #))) (succ # (zero #))+--- closing "oldnat.ma" ---
test/succeed/oldnat.ma view
@@ -9,8 +9,8 @@  fun add : SNat # -> SNat # -> SNat # {-add (zero .#)   y = y; -add (succ .# x) y = succ # (add x y) +add (zero .#)   y = y;+add (succ .# x) y = succ # (add x y) }  fun inc : (i : Size) -> (j : Size) -> SNat i -> SNat ($ i)@@ -25,10 +25,10 @@ minus .($ i) (succ i x) (succ .# y) = minus _ x y    -- subtyping i < ($ i) } -eval let test : SNat # = +eval let test : SNat # =   minus # (succ # (succ # (zero #))) (succ # (zero #)) --- div n m = floor(n/(m+1)) +-- div n m = floor(n/(m+1)) fun div : [i : Size] -> SNat i -> SNat # -> SNat i { div .($ i) (zero i)   y = zero _ ;
+ test/succeed/omegaInst1.golden view
@@ -0,0 +1,36 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "omegaInst1.ma" ---+--- scope checking ---+--- type checking ---+term  fix : .[F : Size -> Set] -> (phi : .[i <= #] -> (f : .[j < i] -> F j) -> F i) -> .[i <= #] -> F i+{ fix [F] phi [i] = phi [i] (fix [F] phi)+}+type  Bot : +(i : Size) -> Set+{ Bot i = .[j < i] & Bot j+}+type  Top : -(i : Size) -> Set+{ Top i = .[j < i] -> Top j+}+term  out : .[i : Size] -> (r : Top $i) -> Top i+{ out [i] r [j < i] = r [$j] [j]+}+term  inn : .[i : Size] -> (t : Top i) -> Top $i+term  inn = [\ i ->] \ t -> [\ j ->] t+term  bad : .[F : Size -> Set] -> .[i <= #] -> (f : .[j < $i] -> F j) -> F i+term  bad = [\ F ->] [\ i ->] \ f -> f [i]+block fails as expected, error message:+test+/// new F : (Size -> Set)+/// inferExpr' fix F (bad F)+/// checkApp ((phi : (.[i : Size] -> (f : .[j < i] -> F j) -> F i{F = (v0 Up (Size -> Set))})::Tm) -> .[i <= #] -> F i{F = (v0 Up (Size -> Set))}) eliminated by bad F+/// leqVal' (subtyping)  .[i : Size] -> (f : .[j < $i] -> F j) -> < bad [F ] i (f j) : F i >  <=+  .[i : Size] -> (f : .[j < i] -> F j) -> F i+/// new i <= #+/// comparing codomain (f : .[j < $i] -> F j) -> < bad [F ] i (f j) : F i > with (f : .[j < i] -> F j) -> F i+/// leqVal' (subtyping)  (f : .[j < $i] -> F j) -> < bad [F ] i (f j) : F i >  <=+  (f : .[j < i] -> F j) -> F i+/// leqVal' (subtyping)  .[j < $i] -> F j  <=-  .[j < i] -> F j+/// leqVal' (subtyping)  < $i  <=+  < i+/// leSize $i <=+ i+/// leSize' $i <= i+/// leSize: 0 + 1 <= 0 failed+--- evaluating ---+--- closing "omegaInst1.ma" ---
+ test/succeed/omegaInstTailInfty.golden view
@@ -0,0 +1,48 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "omegaInstTailInfty.ma" ---+--- scope checking ---+--- type checking ---+type  Inf : (F : Size -> Set) -> -(i : Size) -> Set+{ Inf F i = .[j < i] -> F j+}+term  uppersemi : .[F : Size -> Set] -> (f : Inf (Inf F) #) -> Inf F #+{ uppersemi [F] f [j < #] = f [#] [j]+}+type  Stream : +(A : Set) -> -(i : Size) -> Set+term  Stream.scons : .[A : Set] -> .[i : Size] -> ^(shead : .[j < i] -> A) -> ^(stail : .[j < i] -> Stream A j) -> < Stream.scons shead stail : Stream A i >+term  shead : .[A : Set] -> .[i : Size] -> (scons : Stream A i) -> .[j < i] -> A+{ shead [A] [i] (Stream.scons #shead #stail) = #shead+}+term  stail : .[A : Set] -> .[i : Size] -> (scons : Stream A i) -> .[j < i] -> Stream A j+{ stail [A] [i] (Stream.scons #shead #stail) = #stail+}+term  repeat : .[A : Set] -> (a : A) -> .[i : Size] -> Stream A i+{ repeat [A] a $[i < #] = Stream.scons ([\ j ->] a) ([\ j ->] repeat [A] a [j])+}+term  tailInf : .[A : Set] -> (s : Stream A #) -> Stream A #+term  tailInf = [\ A ->] \ s -> s .stail [#]+type  Front : +(A : Set) -> -(i : Size) -> Set+term  Front.cons : .[A : Set] -> .[i : Size] -> ^(head : A) -> ^(tail : .[j < i] -> Front A j) -> < Front.cons head tail : Front A i >+term  head : .[A : Set] -> .[i : Size] -> (cons : Front A i) -> A+{ head [A] [i] (Front.cons #head #tail) = #head+}+term  tail : .[A : Set] -> .[i : Size] -> (cons : Front A i) -> .[j < i] -> Front A j+{ tail [A] [i] (Front.cons #head #tail) = #tail+}+term  eta : .[F : Size -> Set] -> .[i : Size] -> (f : .[j < i] -> F j) -> .[j < i] -> F j+{ eta [F] [i] f [j < i] = f [j]+}+term  repeat : .[A : Set] -> (a : A) -> .[i : Size] -> Front A i+{ repeat [A] a [i] = Front.cons a (repeat [A] a)+; repeat [A] a [i] = Front.cons a (eta [Front A] [i] (repeat [A] a))+}+term  tailInf : .[A : Set] -> (s : Front A #) -> Front A #+term  tailInf = [\ A ->] \ s -> s .tail [#]+warning: ignoring error: leSize: 0 + 1 <= 0 failed+term  uppersemicont : .[F : Size -> Set] -> (f : .[i < #] -> F i) -> F #+term  uppersemicont = [\ F ->] \ f -> f [#]+warning: ignoring error: leSize: 0 + 1 <= 0 failed+term  lowersemicont : .[F : Size -> Set] -> (a : F #) -> .[i < #] & F i+term  lowersemicont = [\ F ->] \ a -> ([#] , a)+--- evaluating ---+--- closing "omegaInstTailInfty.ma" ---
+ test/succeed/pred.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "pred.ma" ---+--- scope checking ---+--- type checking ---+type  SNat : + Size -> Set+term  SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term  SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term  SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term  SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+type  MaybeNat : ^(i : Size) -> Set+term  MaybeNat.nothing : .[i : Size] -> < MaybeNat.nothing : MaybeNat i >+term  MaybeNat.just : .[i : Size] -> ^(y0 : SNat i) -> < MaybeNat.just y0 : MaybeNat i >+term  pred' : .[i : Size] -> SNat $i -> MaybeNat i+{ pred' [i] (SNat.succ [.i] n) = MaybeNat.just n+; pred' [i] (SNat.zero [.i]) = MaybeNat.nothing+}+term  pred : .[i : Size] -> SNat $$i -> SNat $i+{ pred [i] (SNat.succ [.$i] n) = n+; pred [i] (SNat.zero [.$i]) = SNat.zero [i]+}+--- evaluating ---+--- closing "pred.ma" ---
test/succeed/pred.ma view
+ test/succeed/qsapp.golden view
@@ -0,0 +1,60 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "qsapp.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+term  if : .[A : Set] -> Bool -> A -> A -> A+{ if [A] Bool.true t e = t+; if [A] Bool.false t e = e+}+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  leq : Nat -> Nat -> Bool+{ leq Nat.zero n = Bool.true+; leq (Nat.succ m) Nat.zero = Bool.false+; leq (Nat.succ m) (Nat.succ n) = leq m n+}+type  List : + Size -> Set+term  List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term  List.nil : .[i : Size] -> < List.nil i : List $i >+term  List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term  List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term  partition : (Nat -> Bool) -> .[i : Size] -> List i -> .[A : Set] -> (List i -> List i -> A) -> A+{ partition p [i] (List.nil [j < i]) [A] k = k (List.nil [j]) (List.nil [j])+; partition p [i] (List.cons [j < i] n l) [A] k = if [A] (p n) (partition p [j] l [A] (\ l1 -> \ l2 -> k (List.cons [j] n l1) l2)) (partition p [j] l [A] (\ l1 -> \ l2 -> k l1 (List.cons [j] n l2)))+}+term  qsapp : .[i : Size] -> List i -> List # -> List #+{ qsapp [i] (List.nil [j < i]) acc = acc+; qsapp [i] (List.cons [j < i] n l) acc = partition (\ m -> leq m n) [j] l [List #] (\ l1 -> \ l2 -> qsapp [j] l1 (List.cons [#] n (qsapp [j] l2 acc)))+}+term  quicksort : List # -> List #+term  quicksort = \ l -> qsapp [#] l (List.nil [#])+term  n0 : Nat+term  n0 = Nat.zero+term  n1 : Nat+term  n1 = Nat.succ n0+term  n2 : Nat+term  n2 = Nat.succ n1+term  n3 : Nat+term  n3 = Nat.succ n2+term  n4 : Nat+term  n4 = Nat.succ n3+term  n5 : Nat+term  n5 = Nat.succ n4+term  n6 : Nat+term  n6 = Nat.succ n5+term  n7 : Nat+term  n7 = Nat.succ n6+term  n8 : Nat+term  n8 = Nat.succ n7+term  n9 : Nat+term  n9 = Nat.succ n8+term  l : List #+term  l = List.cons [#] n4 (List.cons [#] n9 (List.cons [#] n1 (List.cons [#] n7 (List.cons [#] n6 (List.cons [#] n4 (List.cons [#] n0 (List.cons [#] n0 (List.cons [#] n3 (List.cons [#] n3 (List.cons [#] n3 (List.cons [#] n2 (List.cons [#] n3 (List.nil [#])))))))))))))+term  l' : List #+term  l' = quicksort l+--- evaluating ---+--- closing "qsapp.ma" ---
test/succeed/qsapp.ma view
@@ -1,4 +1,4 @@--- 2010-06-21 Andreas Abel  +-- 2010-06-21 Andreas Abel -- Quicksort (implementation using partition) in MiniAgda  -- Booleans@@ -20,7 +20,7 @@ ; succ : Nat -> Nat } -fun leq : Nat -> Nat -> Bool +fun leq : Nat -> Nat -> Bool { leq  zero     n       = true ; leq (succ m)  zero    = false ; leq (succ m) (succ n) = leq m n@@ -29,18 +29,18 @@ -- Lists over natural numbers as a sized inductive type  sized data List : Size -> Set-{ nil  : [i : Size] -> List ($ i) +{ nil  : [i : Size] -> List ($ i) ; cons : [i : Size] -> Nat -> List i -> List ($ i) }  -- Partition a list, continuation-style -- the lists passed to the continuation k are at most as big as the input list -fun partition : (Nat -> Bool) -> [i : Size] -> List i -> +fun partition : (Nat -> Bool) -> [i : Size] -> List i ->   [A : Set] -> (List i -> List i -> A) -> A { partition p i (nil  (i > j))     A k = k (nil j) (nil j) ; partition p i (cons (i > j) n l) A k = if A (p n)-   (partition p j l A (\ l1 -> \ l2 -> k (cons j n l1) l2)) -- then +   (partition p j l A (\ l1 -> \ l2 -> k (cons j n l1) l2)) -- then    (partition p j l A (\ l1 -> \ l2 -> k l1 (cons j n l2))) -- else } @@ -53,7 +53,7 @@     (\ l1 -> \ l2 -> qsapp j l1 (cons # n (qsapp j l2 acc))) } --- Quicksort +-- Quicksort  let quicksort : List # -> List # = \ l -> qsapp # l (nil #) @@ -71,10 +71,10 @@ let n9 : Nat = succ n8  -- qsapp is fast enough even with MiniAgda CBN-let l : List # = -  (cons # n4 (cons # n9 (cons # n1 (cons # n7 (cons # n6 -  (cons # n4 (cons # n0 (cons # n0 +let l : List # =+  (cons # n4 (cons # n9 (cons # n1 (cons # n7 (cons # n6+  (cons # n4 (cons # n0 (cons # n0   (cons # n3 (cons # n3 (cons # n3 (cons # n2 (cons # n3 (nil #))))))))))))))--- eval  -- 2012-02-25 NO LONGER +-- eval  -- 2012-02-25 NO LONGER let l' : List # = quicksort l- +
+ test/succeed/quicksort-filter-fragment.golden view
@@ -0,0 +1,33 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "quicksort-filter-fragment.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  leq : Nat -> Nat -> Bool+{}+term  plus : .[A : Set] -> A -> A -> A+{}+type  List : + Size -> Set+term  List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term  List.nil : .[i : Size] -> < List.nil i : List $i >+term  List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term  List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term  filter : .[i : Size] -> List i -> List i+{ filter [.$i] (List.nil [i]) = List.nil [i]+; filter [.$i] (List.cons [i] n l) = plus [List $i] (filter [i] l) (List.cons [i] n (filter [i] l))+}+term  quicksort : .[i : Size] -> List i -> List #+{ quicksort [.$i] (List.nil [i]) = List.nil [#]+; quicksort [.$i] (List.cons [i] n l) = plus [List #] (quicksort [i] (filter [i] l)) (List.cons [#] n (quicksort [i] (filter [i] l)))+}+type  Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+term  p1 : .[i : Size] -> Id (List #) (List.nil [i]) (List.nil [#])+term  p1 = [\ i ->] Id.refl+--- evaluating ---+--- closing "quicksort-filter-fragment.ma" ---
test/succeed/quicksort-filter-fragment.ma view
@@ -13,7 +13,7 @@ fun plus : [A : Set] -> A -> A -> A {}  sized data List : Size -> Set-{ nil  : [i : Size] -> List ($ i) +{ nil  : [i : Size] -> List ($ i) ; cons : [i : Size] -> Nat -> List i -> List ($ i) } @@ -24,8 +24,8 @@  fun quicksort : [i : Size] -> List i -> List # { quicksort .($ i) (nil i) = nil _-; quicksort .($ i) (cons i n l) = -    plus (List #) (quicksort _ (filter i l)) (cons _ n (quicksort _ (filter i l))) +; quicksort .($ i) (cons i n l) =+    plus (List #) (quicksort _ (filter i l)) (cons _ n (quicksort _ (filter i l))) }  data Id (A : Set)(a : A) : A -> Set
+ test/succeed/quicksort-filter.golden view
@@ -0,0 +1,64 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "quicksort-filter.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+term  if : .[A : Set] -> Bool -> A -> A -> A+{ if [A] Bool.true t e = t+; if [A] Bool.false t e = e+}+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  leq : Nat -> Nat -> Bool+{ leq Nat.zero n = Bool.true+; leq (Nat.succ m) Nat.zero = Bool.false+; leq (Nat.succ m) (Nat.succ n) = leq m n+}+type  List : + Size -> Set+term  List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term  List.nil : .[i : Size] -> < List.nil i : List $i >+term  List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term  List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term  append : List # -> List # -> List #+{ append (List.nil [.#]) l = l+; append (List.cons [.#] x xs) l = List.cons [#] x (append xs l)+}+term  filter : (Nat -> Bool) -> .[i : Size] -> List i -> List i+{ filter p [i] (List.nil [j < i]) = List.nil [j]+; filter p [i] (List.cons [j < i] n l) = if [List $j] (p n) (List.cons [j] n (filter p [j] l)) (filter p [j] l)+}+term  quicksort : .[i : Size] -> List i -> List #+{ quicksort [i] (List.nil [j < i]) = List.nil [j]+; quicksort [i] (List.cons [j < i] n l) = append (quicksort [j] (filter (\ m -> leq m n) [j] l)) (List.cons [#] n (quicksort [j] (filter (leq (Nat.succ n)) [j] l)))+}+term  n0 : Nat+term  n0 = Nat.zero+term  n1 : Nat+term  n1 = Nat.succ n0+term  n2 : Nat+term  n2 = Nat.succ n1+term  n3 : Nat+term  n3 = Nat.succ n2+term  n4 : Nat+term  n4 = Nat.succ n3+term  n5 : Nat+term  n5 = Nat.succ n4+term  n6 : Nat+term  n6 = Nat.succ n5+term  n7 : Nat+term  n7 = Nat.succ n6+term  n8 : Nat+term  n8 = Nat.succ n7+term  n9 : Nat+term  n9 = Nat.succ n8+term  l : List #+term  l = List.cons [#] n1 (List.cons [#] n3 (List.cons [#] n0 (List.cons [#] n2 (List.nil [#]))))+term  l' : List #+term  l' = quicksort [#] l+--- evaluating ---+l' has whnf List.cons{i = #; y1 = Nat.zero{}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.zero{}}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}; y2 = List.nil{i = #}}}}}+l' evaluates to List.cons # Nat.zero (List.cons # (Nat.succ Nat.zero) (List.cons # (Nat.succ (Nat.succ Nat.zero)) (List.cons # (Nat.succ (Nat.succ (Nat.succ Nat.zero))) (List.nil #))))+--- closing "quicksort-filter.ma" ---
test/succeed/quicksort-filter.ma view
@@ -1,4 +1,4 @@--- 2010-06-21 Andreas Abel  +-- 2010-06-21 Andreas Abel -- Quicksort (naive implementation using filter) in MiniAgda  -- Booleans@@ -20,7 +20,7 @@ ; succ : Nat -> Nat } -fun leq : Nat -> Nat -> Bool +fun leq : Nat -> Nat -> Bool { leq  zero     n       = true ; leq (succ m)  zero    = false ; leq (succ m) (succ n) = leq m n@@ -29,7 +29,7 @@ -- Lists over natural numbers as a sized inductive type  sized data List : Size -> Set-{ nil  : [i : Size] -> List ($ i) +{ nil  : [i : Size] -> List ($ i) ; cons : [i : Size] -> Nat -> List i -> List ($ i) } @@ -49,13 +49,13 @@    (filter p j l)            -- else } --- Quicksort +-- Quicksort  fun quicksort : [i : Size] -> List i -> List # { quicksort i (nil (i > j))      = nil j-; quicksort i (cons (i > j) n l) = -      append (quicksort j (filter (\ m -> leq m n) j l)) -    (cons # n (quicksort j (filter (leq (succ n)) j l))) +; quicksort i (cons (i > j) n l) =+      append (quicksort j (filter (\ m -> leq m n) j l))+    (cons # n (quicksort j (filter (leq (succ n)) j l))) }  -- Testing@@ -72,11 +72,11 @@ let n9 : Nat = succ n8  {- MiniAgda CBN is too inefficient to do this in reasonable time-let l : List # = -  (cons # 4 (cons # 9 (cons # 1 (cons # 7 (cons # 6 -  (cons # 4 (cons # 0 (cons # 0 +let l : List # =+  (cons # 4 (cons # 9 (cons # 1 (cons # 7 (cons # 6+  (cons # 4 (cons # 0 (cons # 0   (cons # 3 (cons # 3 (cons # 3 (cons # 2 (cons # 3 (nil #)))))))))))))) -} let l : List # = cons # n1 (cons # n3 (cons # n0 (cons # n2 (nil #)))) eval let l' : List # = quicksort # l- +
+ test/succeed/quicksort.golden view
@@ -0,0 +1,64 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "quicksort.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+term  if : .[A : Set] -> Bool -> A -> A -> A+{ if [A] Bool.true t e = t+; if [A] Bool.false t e = e+}+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  leq : Nat -> Nat -> Bool+{ leq Nat.zero n = Bool.true+; leq (Nat.succ m) Nat.zero = Bool.false+; leq (Nat.succ m) (Nat.succ n) = leq m n+}+type  List : + Size -> Set+term  List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term  List.nil : .[i : Size] -> < List.nil i : List $i >+term  List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term  List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term  append : List # -> List # -> List #+{ append (List.nil [.#]) l = l+; append (List.cons [.#] x xs) l = List.cons [#] x (append xs l)+}+term  partition : (Nat -> Bool) -> .[i : Size] -> List i -> .[A : Set] -> (List i -> List i -> A) -> A+{ partition p [i] (List.nil [j < i]) [A] k = k (List.nil [j]) (List.nil [j])+; partition p [i] (List.cons [j < i] n l) [A] k = if [A] (p n) (partition p [j] l [A] (\ l1 -> \ l2 -> k (List.cons [j] n l1) l2)) (partition p [j] l [A] (\ l1 -> \ l2 -> k l1 (List.cons [j] n l2)))+}+term  quicksort : .[i : Size] -> List i -> List #+{ quicksort [i] (List.nil [j < i]) = List.nil [j]+; quicksort [i] (List.cons [j < i] n l) = partition (\ m -> leq m n) [j] l [List #] (\ l1 -> \ l2 -> append (quicksort [j] l1) (List.cons [#] n (quicksort [j] l2)))+}+term  n0 : Nat+term  n0 = Nat.zero+term  n1 : Nat+term  n1 = Nat.succ n0+term  n2 : Nat+term  n2 = Nat.succ n1+term  n3 : Nat+term  n3 = Nat.succ n2+term  n4 : Nat+term  n4 = Nat.succ n3+term  n5 : Nat+term  n5 = Nat.succ n4+term  n6 : Nat+term  n6 = Nat.succ n5+term  n7 : Nat+term  n7 = Nat.succ n6+term  n8 : Nat+term  n8 = Nat.succ n7+term  n9 : Nat+term  n9 = Nat.succ n8+term  l : List #+term  l = List.cons [#] n1 (List.cons [#] n3 (List.cons [#] n0 (List.cons [#] n2 (List.nil [#]))))+term  l' : List #+term  l' = quicksort [#] l+--- evaluating ---+l' has whnf List.cons{i = #; y1 = Nat.zero{}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.zero{}}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}; y2 = List.nil{i = #}}}}}+l' evaluates to List.cons # Nat.zero (List.cons # (Nat.succ Nat.zero) (List.cons # (Nat.succ (Nat.succ Nat.zero)) (List.cons # (Nat.succ (Nat.succ (Nat.succ Nat.zero))) (List.nil #))))+--- closing "quicksort.ma" ---
test/succeed/quicksort.ma view
@@ -1,4 +1,4 @@--- 2010-06-21 Andreas Abel  +-- 2010-06-21 Andreas Abel -- Quicksort (implementation using partition) in MiniAgda -- more efficient implementation see qsapp.ma @@ -21,7 +21,7 @@ ; succ : Nat -> Nat } -fun leq : Nat -> Nat -> Bool +fun leq : Nat -> Nat -> Bool { leq  zero     n       = true ; leq (succ m)  zero    = false ; leq (succ m) (succ n) = leq m n@@ -30,7 +30,7 @@ -- Lists over natural numbers as a sized inductive type  sized data List : Size -> Set-{ nil  : [i : Size] -> List ($ i) +{ nil  : [i : Size] -> List ($ i) ; cons : [i : Size] -> Nat -> List i -> List ($ i) } @@ -43,15 +43,15 @@  -- Partition a list, continuation-style -fun partition : (Nat -> Bool) -> [i : Size] -> List i -> +fun partition : (Nat -> Bool) -> [i : Size] -> List i ->   [A : Set] -> (List i -> List i -> A) -> A { partition p i (nil  (i > j))     A k = k (nil j) (nil j) ; partition p i (cons (i > j) n l) A k = if A (p n)-   (partition p j l A (\ l1 -> \ l2 -> k (cons j n l1) l2)) -- then +   (partition p j l A (\ l1 -> \ l2 -> k (cons j n l1) l2)) -- then    (partition p j l A (\ l1 -> \ l2 -> k l1 (cons j n l2))) -- else } --- Quicksort +-- Quicksort  fun quicksort : [i : Size] -> List i -> List # { quicksort i (nil  (i > j))     = nil j@@ -73,9 +73,9 @@ let n9 : Nat = succ n8  {- MiniAgda CBN is too inefficient to do this in reasonable time-let l : List # = -  (cons # 4 (cons # 9 (cons # 1 (cons # 7 (cons # 6 -  (cons # 4 (cons # 0 (cons # 0 +let l : List # =+  (cons # 4 (cons # 9 (cons # 1 (cons # 7 (cons # 6+  (cons # 4 (cons # 0 (cons # 0   (cons # 3 (cons # 3 (cons # 3 (cons # 2 (cons # 3 (nil #)))))))))))))) -} let l : List # = cons # n1 (cons # n3 (cons # n0 (cons # n2 (nil #))))
+ test/succeed/rank2SizeQuantStream.golden view
@@ -0,0 +1,13 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "rank2SizeQuantStream.ma" ---+--- scope checking ---+--- type checking ---+type  Stream : ++(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+type  Unit : Set+term  Unit.triv : < Unit.triv : Unit >+term  bla : .[i : Size] -> (.[j : Size] -> Stream Unit j -> Stream Unit j) -> Stream Unit i+{ bla $[i < #] f = f [$i] (Stream.cons [i] Unit.triv (bla [i] f))+}+--- evaluating ---+--- closing "rank2SizeQuantStream.ma" ---
test/succeed/rank2SizeQuantStream.ma view
@@ -6,8 +6,8 @@ data Unit : Set {   triv : Unit }- + cofun bla : (i : Size) -> ((j : Size) -> Stream Unit j -> Stream Unit j) -> Stream Unit i {- bla ($ i) f = f ($ i) (cons i triv (bla i f)) + bla ($ i) f = f ($ i) (cons i triv (bla i f)) }
+ test/succeed/record.golden view
@@ -0,0 +1,25 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "record.ma" ---+--- scope checking ---+--- type checking ---+type  Pair : ^(A : Set) -> ^(B : Set) -> Set+term  Pair.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Pair.pair fst snd : Pair A B >+term  fst : .[A : Set] -> .[B : Set] -> (pair : Pair A B) -> A+{ fst [A] [B] (Pair.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : Set] -> (pair : Pair A B) -> B+{ snd [A] [B] (Pair.pair #fst #snd) = #snd+}+term  swap : .[A : Set] -> Pair A A -> Pair A A+{ swap [A] p = Pair.pair (snd p) (fst p)+}+type  Sigma : ^(A : Set) -> ^(B : A -> Set) -> Set+term  Sigma.pair' : .[A : Set] -> .[B : A -> Set] -> ^(fst' : A) -> ^(snd' : B fst') -> < Sigma.pair' fst' snd' : Sigma A B >+term  fst' : .[A : Set] -> .[B : A -> Set] -> (pair' : Sigma A B) -> A+{ fst' [A] [B] (Sigma.pair' #fst' #snd') = #fst'+}+term  snd' : .[A : Set] -> .[B : A -> Set] -> (pair' : Sigma A B) -> B (fst' [A] [B] pair')+{ snd' [A] [B] (Sigma.pair' #fst' #snd') = #snd'+}+--- evaluating ---+--- closing "record.ma" ---
test/succeed/record.ma view
+ test/succeed/shadowDataParam.golden view
@@ -0,0 +1,13 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "shadowDataParam.ma" ---+--- scope checking ---+--- type checking ---+type  D : ^(name : Set) -> Set+term  D.name : .[name : Set] -> < D.name : D name >+term  id : .[A : Set] -> D A -> D A+{ id [A] D.name = D.name+}+type  E : ^(name : Set) -> Set+term  E.e : .[name : Set] -> < E.e : E name >+--- evaluating ---+--- closing "shadowDataParam.ma" ---
test/succeed/shadowDataParam.ma view
@@ -1,9 +1,9 @@ -- 2010-08-31 shadowing test  -- no complaint here, because constructor name introduced after checking its sig-data D (name : Set) : Set +data D (name : Set) : Set { name : D name-} +}  -- usage fine fun id : [A : Set] -> D A -> D A
+ test/succeed/sigma.golden view
@@ -0,0 +1,37 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sigma.ma" ---+--- scope checking ---+--- type checking ---+type  Sigma : ++(A : Set) -> ++(B : A -> Set) -> Set+term  Sigma.pair : .[A : Set] -> .[B : A -> Set] -> ^(fst : A) -> ^(snd : B fst) -> < Sigma.pair fst snd : Sigma A B >+term  fst : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> A+{ fst [A] [B] (Sigma.pair #fst #snd) = #fst+}+term  snd : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> B (fst [A] [B] pair)+{ snd [A] [B] (Sigma.pair #fst #snd) = #snd+}+type  IT : Set+term  IT.it : ^(y0 : Sigma IT (\ x -> IT)) -> < IT.it y0 : IT >+type  Id : ++(A : Set) -> ^(a : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+term  etaSigma : .[A : Set] -> .[B : A -> Set] -> (p : Sigma A B) -> Id (Sigma A B) p (Sigma.pair (fst p) (snd p))+term  etaSigma = [\ A ->] [\ B ->] \ p -> Id.refl+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  Bool2 : Set+type  Bool2 = Sigma Bool (\ b -> Bool)+term  pair2 : Bool -> Bool -> Bool2+term  pair2 = \ b1 -> \ b2 -> Sigma.pair b1 b2+term  fst2 : Bool2 -> Bool+term  fst2 = \ y -> fst y+term  snd2 : Bool2 -> Bool+term  snd2 = \ y -> snd y+term  bla : Bool -> Bool2+{ bla Bool.true = pair2 Bool.true Bool.false+; bla Bool.false = pair2 Bool.false Bool.false+}+term  etaBool2 : (b : Bool) -> Id Bool2 (bla b) (pair2 (fst2 (bla b)) (snd2 (bla b)))+term  etaBool2 = \ b -> Id.refl+--- evaluating ---+--- closing "sigma.ma" ---
test/succeed/sigma.ma view
@@ -21,7 +21,7 @@ }  -- eta equality for neutral terms-let etaSigma : (A : Set) -> (B : A -> Set) -> (p : Sigma A B) -> +let etaSigma : (A : Set) -> (B : A -> Set) -> (p : Sigma A B) ->                Id (Sigma A B) p (pair (fst p) (snd p))              = \ A -> \ B -> \ p -> refl -- (Sigma A B) p data Bool : Set@@ -29,7 +29,7 @@ ; false : Bool } -let Bool2 : Set +let Bool2 : Set           =  Sigma Bool (\ b -> Bool) let pair2 : Bool -> Bool -> Bool2           = \ b1 b2 -> pair {- Bool (\ b -> Bool)-} b1 b2
+ test/succeed/simple_nat.golden view
@@ -0,0 +1,13 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "simple_nat.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+term  add : Nat -> Nat -> Nat+{ add Nat.zero x = x+; add (Nat.suc y) x = Nat.suc (add y x)+}+--- evaluating ---+--- closing "simple_nat.ma" ---
test/succeed/simple_nat.ma view
@@ -1,10 +1,10 @@-data Nat : Set +data Nat : Set { zero : Nat ; suc  : Nat -> Nat } -fun add : Nat -> Nat -> Nat -{ add zero x = x +fun add : Nat -> Nat -> Nat+{ add zero x = x ; add (suc y) x = suc (add y x) } 
+ test/succeed/singleton.golden view
@@ -0,0 +1,43 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "singleton.ma" ---+--- scope checking ---+--- type checking ---+term  id : .[A : Set] -> (x : A) -> < x : A >+term  id = [\ A ->] \ x -> x+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term  zero' : < Nat.zero : Nat >+term  zero' = Nat.zero+term  succ' : (x : Nat) -> < Nat.succ x : Nat >+term  succ' = \ x -> Nat.succ x+term  pred : .[x : Nat] -> < Nat.succ x : Nat > -> < x : Nat >+{ pred [.x] (Nat.succ x) = x+}+term  kzero : (x : Nat) -> < Nat.zero : Nat >+{ kzero Nat.zero = Nat.zero+; kzero (Nat.succ x) = kzero x+}+type  IsZero : ^ Nat -> Set+term  IsZero.isZero : < IsZero.isZero : IsZero Nat.zero >+term  p : (x : Nat) -> IsZero (kzero x)+term  p = \ x -> IsZero.isZero+term  pzero : (< Nat.zero : Nat > -> Nat) -> Nat -> < Nat.zero : Nat >+{ pzero f Nat.zero = Nat.zero+; pzero f (Nat.succ x) = kzero (f (pzero f x))+}+term  qzero : ((n : Nat) -> IsZero n -> Nat) -> Nat -> < Nat.zero : Nat >+{ qzero f Nat.zero = Nat.zero+; qzero f (Nat.succ x) = kzero (f (qzero f x) IsZero.isZero)+}+type  Unit : Set+term  Unit.unit : < Unit.unit : Unit >+type  Empty : Set+type  Zero : (n : Nat) -> Set+{ Zero Nat.zero = Unit+; Zero (Nat.succ x) = Empty+}+term  bla : ((n : Nat) -> Zero n -> Nat) -> (Nat -> < Nat.zero : Nat >) -> Nat -> Nat+term  bla = \ f -> \ g -> \ x -> f (g x) Unit.unit+--- evaluating ---+--- closing "singleton.ma" ---
test/succeed/singleton.ma view
@@ -3,12 +3,12 @@ let id : (A : Set) -> (x : A) -> <x : A>        = \ A -> \ x -> x -data Nat : Set +data Nat : Set { zero : Nat ; succ : Nat -> Nat } -let zero' +let zero'     : <zero : Nat>     = zero @@ -18,19 +18,19 @@  fun pred : [x : Nat] -> <succ x : Nat> -> <x : Nat> { pred .x (succ x) = x-} +}  -- the recursive constant zero function fun kzero : (x : Nat) -> <zero : Nat> { kzero zero     = zero-; kzero (succ x) = kzero x +; kzero (succ x) = kzero x } -- eta-expansion turns this into the non-recursive---   kzero x = zero +--   kzero x = zero  data IsZero : Nat -> Set { isZero : IsZero zero-} +}  let p : (x : Nat) -> IsZero (kzero x)       = \ x -> isZero@@ -44,7 +44,7 @@  fun pzero : (<zero : Nat> -> Nat) -> Nat -> <zero : Nat> { pzero f zero     = zero-; pzero f (succ x) = kzero (f (pzero f x)) +; pzero f (succ x) = kzero (f (pzero f x)) } {- type checking the second clause succees with bidirectional t.c.    Gamma = f : <zero> -> Nat@@ -57,7 +57,7 @@  fun qzero : ((n : Nat) -> IsZero n -> Nat) -> Nat -> <zero : Nat> { qzero f zero     = zero-; qzero f (succ x) = kzero (f (qzero f x) isZero) +; qzero f (succ x) = kzero (f (qzero f x) isZero) } {- type checking the second clause FAILS with bidirectional t.c.    Gamma = f       : (n : Nat) -> IsZero n -> Nat@@ -66,7 +66,7 @@     ? Gamma |- f (qzero f x) isZero : Nat      ?1 Gamma |- qzero f x : Nat-     ?2 Gamma |- isZero : IsZero (qzero f x) +     ?2 Gamma |- isZero : IsZero (qzero f x)    Here we fail, since we just substituted the value (qzero f x) for n.   The information qzero f x = 0 is lost.
+ test/succeed/sizeFunctions.golden view
@@ -0,0 +1,33 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sizeFunctions.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  N : Set+term  N.zz : < N.zz : N >+term  N.ss : ^(y0 : N) -> < N.ss y0 : N >+type  Nat : + Size -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term  Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+size  infty : Size+size  infty = #+size  ssuc : Size -> Size+size  ssuc = \ i -> $i+size  maybeSuc : (b : Bool) -> Size -> Size+{ maybeSuc Bool.true i = $i+; maybeSuc Bool.false i = i+}+size  addSize : N -> Size -> Size+{ addSize N.zz i = i+; addSize (N.ss n) i = $(addSize n i)+}+term  addSNat : (n : N) -> .[i : Size] -> Nat i -> Nat (addSize n i)+{ addSNat N.zz [i] m = m+; addSNat (N.ss n) [i] m = Nat.succ [addSize n i] (addSNat n [i] m)+}+--- evaluating ---+--- closing "sizeFunctions.ma" ---
test/succeed/sizeFunctions.ma view
@@ -30,6 +30,6 @@  fun addSNat : (n : N) -> (i : Size) -> Nat i -> Nat (addSize n i) { addSNat zz     i m = m-; addSNat (ss n) i m = succ (addSize n i) (addSNat n i m) +; addSNat (ss n) i m = succ (addSize n i) (addSNat n i m) } 
+ test/succeed/sizedFinitelyBranchingTrees.golden view
@@ -0,0 +1,21 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sizedFinitelyBranchingTrees.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type  Fin : ^ Nat -> Set+term  Fin.fzero : .[n : Nat] -> < Fin.fzero n : Fin (Nat.succ n) >+term  Fin.fsucc : .[n : Nat] -> ^(y1 : Fin n) -> < Fin.fsucc n y1 : Fin (Nat.succ n) >+type  Tree : ^(A : Set) -> + Size -> Set+term  Tree.leaf : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> Tree A s!ze+term  Tree.leaf : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> < Tree.leaf i y1 : Tree A $i >+term  Tree.node : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^(n : Nat) -> ^ (Fin n -> Tree A i) -> Tree A s!ze+term  Tree.node : .[A : Set] -> .[i : Size] -> ^(n : Nat) -> ^(y2 : Fin n -> Tree A i) -> < Tree.node i n y2 : Tree A $i >+term  map : .[A : Set] -> .[B : Set] -> (A -> B) -> .[i : Size] -> Tree A i -> Tree B i+{ map [A] [B] f [i] (Tree.leaf [j < i] a) = Tree.leaf [j] (f a)+; map [A] [B] f [i] (Tree.node [j < i] n s) = Tree.node [j] n (\ k -> map [A] [B] f [j] (s k))+}+--- evaluating ---+--- closing "sizedFinitelyBranchingTrees.ma" ---
test/succeed/sizedFinitelyBranchingTrees.ma view
@@ -13,8 +13,8 @@ ; node : [i : Size] -> (n : Nat) -> (Fin n -> Tree A i) -> Tree A ($ i) } -fun map : [A : Set] -> [B : Set] -> (A -> B) -> +fun map : [A : Set] -> [B : Set] -> (A -> B) ->           [i : Size] -> Tree A i -> Tree B i { map A B f i (leaf (i > j) a)   = leaf j (f a)-; map A B f i (node (i > j) n s) = node j n (\ k -> map A B f j (s k)) +; map A B f i (node (i > j) n s) = node j n (\ k -> map A B f j (s k)) }
+ test/succeed/sizedMax.golden view
@@ -0,0 +1,23 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sizedMax.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : + Size -> Set+term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term  Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term  Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+term  maxN : .[i : Size] -> Nat i -> Nat i -> Nat i+{ maxN [.$i] (Nat.zero [.i]) (Nat.zero [i]) = Nat.zero [i]+; maxN [.$i] (Nat.zero [.i]) (Nat.succ [i] n) = Nat.succ [i] n+; maxN [.$i] (Nat.succ [.i] n) (Nat.zero [i]) = Nat.succ [i] n+; maxN [.$i] (Nat.succ [.i] n) (Nat.succ [i] m) = Nat.succ [i] (maxN [i] n m)+}+term  maxN : .[i : Size] -> Nat i -> Nat i -> Nat i+{ maxN [i] (Nat.zero [j < i]) (Nat.zero [k < i]) = Nat.zero [j]+; maxN [i] (Nat.zero [j < i]) (Nat.succ [k < i] m) = Nat.succ [k] m+; maxN [i] (Nat.succ [j < i] n) (Nat.zero [k < i]) = Nat.succ [j] n+; maxN [i] (Nat.succ [j < i] n) (Nat.succ [k < i] m) = Nat.succ [max j k] (maxN [max j k] n m)+}+--- evaluating ---+--- closing "sizedMax.ma" ---
test/succeed/sizedMax.ma view
@@ -3,18 +3,18 @@ ; succ : [i : Size] -> Nat i -> Nat ($ i) } -check fun maxN : [i : Size] -> Nat i -> Nat i -> Nat i +check fun maxN : [i : Size] -> Nat i -> Nat i -> Nat i { maxN .($ i) (zero .i) (zero i)   = zero i ; maxN .($ i) (zero .i) (succ i n) = succ i n ; maxN .($ i) (succ .i n) (zero i) = succ i n ; maxN .($ i) (succ .i n) (succ i m) = succ i (maxN i n m) }- -fun maxN : [i : Size] -> Nat i -> Nat i -> Nat i ++fun maxN : [i : Size] -> Nat i -> Nat i -> Nat i { maxN i (zero (i > j)  ) (zero (i > k)  ) = zero j ; maxN i (zero (i > j)  ) (succ (i > k) m) = succ k m ; maxN i (succ (i > j) n) (zero (i > k)  ) = succ j n-; maxN i (succ (i > j) n) (succ (i > k) m) = succ (max j k) +; maxN i (succ (i > j) n) (succ (i > k) m) = succ (max j k)                                             (maxN (max j k) n m) } @@ -31,6 +31,6 @@   j <= _Y   k <= _Y   _Y <= _X-  -Needs to be solved as _X = _Y = max j k ++Needs to be solved as _X = _Y = max j k -}
+ test/succeed/sizedMergeWith.golden view
@@ -0,0 +1,28 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sizedMergeWith.ma" ---+--- scope checking ---+--- type checking ---+type  Bool : Set+term  Bool.true : < Bool.true : Bool >+term  Bool.false : < Bool.false : Bool >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type  List : + Size -> Set+term  List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term  List.nil : .[i : Size] -> < List.nil i : List $i >+term  List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term  List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term  leq : Nat -> Nat -> Bool+{}+term  merge : .[i : Size] -> List i -> .[j : Size] -> List j -> List #+term  merge_aux : .[i : Size] -> Nat -> List i -> .[j : Size] -> Nat -> List j -> Bool -> List #+{ merge [.$i] (List.nil [i]) [j] l = l+; merge [i] l [.$j] (List.nil [j]) = l+; merge [.$i] (List.cons [i] x xs) [.$j] (List.cons [j] y ys) = merge_aux [i] x xs [j] y ys (leq x y)+}+{ merge_aux [i] x xs [j] y ys Bool.true = List.cons [#] x (merge [i] xs [$j] (List.cons [j] y ys))+; merge_aux [i] x xs [j] y ys Bool.false = List.cons [#] y (merge [$i] (List.cons [i] x xs) [j] ys)+}+--- evaluating ---+--- closing "sizedMergeWith.ma" ---
test/succeed/sizedMergeWith.ma view
@@ -9,7 +9,7 @@ }  sized data List : Size -> Set-{ nil  : (i : Size) -> List ($ i)  +{ nil  : (i : Size) -> List ($ i) ; cons : (i : Size) -> Nat -> List i -> List ($ i) } @@ -24,6 +24,6 @@   }   fun merge_aux : (i : Size) -> Nat -> List i -> (j : Size) -> Nat -> List j -> Bool -> List #   { merge_aux i x xs j y ys true  = cons # x (merge i xs ($ j) (cons j y ys))-  ; merge_aux i x xs j y ys false = cons # y (merge ($ i) (cons i x xs) j ys) +  ; merge_aux i x xs j y ys false = cons # y (merge ($ i) (cons i x xs) j ys)   } }
+ test/succeed/sizedOrd.golden view
@@ -0,0 +1,27 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sizedOrd.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type  Ord : + Size -> Set+term  Ord.ozero : .[s!ze : Size] -> .[i < s!ze] -> Ord s!ze+term  Ord.ozero : .[i : Size] -> < Ord.ozero i : Ord $i >+term  Ord.osucc : .[s!ze : Size] -> .[i < s!ze] -> ^ Ord i -> Ord s!ze+term  Ord.osucc : .[i : Size] -> ^(y1 : Ord i) -> < Ord.osucc i y1 : Ord $i >+term  Ord.olim : .[s!ze : Size] -> .[i < s!ze] -> ^ (Nat -> Ord i) -> Ord s!ze+term  Ord.olim : .[i : Size] -> ^(y1 : Nat -> Ord i) -> < Ord.olim i y1 : Ord $i >+term  maxO : .[i : Size] -> Ord i -> Ord i -> Ord i+{ maxO [i] (Ord.ozero [j < i]) q = q+; maxO [i] p (Ord.ozero [k < i]) = p+; maxO [i] (Ord.olim [j < i] f) (Ord.olim [k < i] g) = Ord.olim [max j k] (\ n -> maxO [max j k] (f n) (g n))+; maxO [i] (Ord.osucc [j < i] p) (Ord.osucc [k < i] q) = Ord.osucc [max j k] (maxO [max j k] p q)+}+term  idO : .[i : Size] -> Ord i -> Ord i+{ idO [i] (Ord.ozero [j < i]) = Ord.ozero [j]+; idO [i] (Ord.osucc [j < i] p) = Ord.osucc [j] (idO [j] p)+; idO [i] (Ord.olim [j < i] f) = Ord.olim [j] (\ n -> idO [j] (f n))+}+--- evaluating ---+--- closing "sizedOrd.ma" ---
test/succeed/sizedOrd.ma view
@@ -12,7 +12,7 @@ fun maxO : [i : Size] -> Ord i -> Ord i -> Ord i { maxO i (ozero (i > j)) q = q ; maxO i p (ozero (i > k)) = p-; maxO i (olim (i > j) f) (olim (i > k) g) = +; maxO i (olim (i > j) f) (olim (i > k) g) =    olim (max j k) (\ n -> maxO (max j k) (f n) (g n)) ; maxO i (osucc (i > j) p) (osucc (i > k) q) =    osucc (max j k) (maxO (max j k) p q)@@ -23,4 +23,4 @@ { idO i (ozero (i > j)  ) = ozero j ; idO i (osucc (i > j) p) = osucc j (idO j p) ; idO i (olim  (i > j) f) = olim  j (\ n -> idO j (f n))-} +}
+ test/succeed/streamIdentityNatRecursive.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "streamIdentityNatRecursive.ma" ---+--- scope checking ---+--- type checking ---+type  SNat : + Size -> Set+term  SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term  SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term  SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term  SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+type  Stream : - Size -> Set+term  Stream.cons : .[i : Size] -> ^(y1 : SNat #) -> ^(y2 : Stream i) -> < Stream.cons i y1 y2 : Stream $i >+term  sid : .[i : Size] -> SNat i -> .[j : Size] -> Stream j -> Stream j+{ sid [.$i] (SNat.zero [i]) [j] xs = xs+; sid [.$i] (SNat.succ [i] y) [j] xs = sid [i] y [j] xs+}+--- evaluating ---+--- closing "streamIdentityNatRecursive.ma" ---
+ test/succeed/subset.golden view
@@ -0,0 +1,29 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "subset.ma" ---+--- scope checking ---+--- type checking ---+type  Subset : ^(A : Set) -> ^(P : A -> Set) -> Set+term  Subset.put : .[A : Set] -> .[P : A -> Set] -> ^(get : A) -> .[y1 : P get] -> < Subset.put get y1 : Subset A P >+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type  Odd : ^ Nat -> Set+term  Odd.odd1 : < Odd.odd1 : Odd (Nat.succ Nat.zero) >+term  Odd.odd3 : < Odd.odd3 : Odd (Nat.succ (Nat.succ (Nat.succ Nat.zero))) >+term  Odd.oddSS : .[n : Nat] -> ^(y1 : Odd n) -> < Odd.oddSS n y1 : Odd (Nat.succ (Nat.succ n)) >+type  Eq : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term  Eq.refl : .[A : Set] -> .[a : A] -> < Eq.refl : Eq A a a >+type  OddN : Set+type  OddN = Subset Nat Odd+term  one : Nat+term  one = Nat.succ Nat.zero+term  three : Nat+term  three = Nat.succ (Nat.succ one)+term  o3 : OddN+term  o3 = Subset.put three [Odd.odd3]+term  o3' : OddN+term  o3' = Subset.put three [Odd.oddSS [one] Odd.odd1]+term  p : Eq OddN o3 o3'+term  p = Eq.refl+--- evaluating ---+--- closing "subset.ma" ---
test/succeed/subset.ma view
@@ -2,11 +2,11 @@  data Subset (A : Set) (P : A -> Set) : Set {-  put : (get : A) -> [P get] -> Subset A P +  put : (get : A) -> [P get] -> Subset A P }  data Nat : Set-{ +{   zero : Nat;   succ : Nat -> Nat }@@ -24,14 +24,14 @@   refl : Eq A a a } -let OddN : Set +let OddN : Set          = Subset Nat Odd  let one  : Nat          = succ zero  let three : Nat-          = succ (succ one) +          = succ (succ one)  let o3   : OddN          = put three odd3@@ -40,4 +40,4 @@          = put three (oddSS one odd1)  let p    : Eq OddN o3 o3'-         = refl +         = refl
+ test/succeed/tailStream.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "tailStream.ma" ---+--- scope checking ---+--- type checking ---+type  Stream : ++(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term  tail : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ tail [A] [i] (Stream.cons [.i] x xs) = xs+}+--- evaluating ---+--- closing "tailStream.ma" ---
test/succeed/tailStream.ma view
@@ -4,7 +4,7 @@ }  -- tail is fine since it is non-recursive, so the type need not be--- admissible +-- admissible fun tail : (A : Set) -> (i : Size) -> Stream A ($ i) -> Stream A i {   tail A i (cons .i x xs) = xs
+ test/succeed/vec.golden view
@@ -0,0 +1,43 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "vec.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.suc : ^(pred : Nat) -> < Nat.suc pred : Nat >+term  add : Nat -> Nat -> Nat+{ add Nat.zero y = y+; add (Nat.suc x) y = Nat.suc (add x y)+}+type  Vec' : ++(A : Set) -> ^ Nat -> Set+term  Vec'.vnil' : .[A : Set] -> < Vec'.vnil' : Vec' A Nat.zero >+term  Vec'.vcons' : .[A : Set] -> .[n : Nat] -> ^(head' : A) -> ^(tail' : Vec' A n) -> < Vec'.vcons' n head' tail' : Vec' A (Nat.suc n) >+term  head' : .[A : Set] -> .[n : Nat] -> (vcons' : Vec' A (Nat.suc n)) -> A+{ head' [A] [n] (Vec'.vcons' [.n] #head' #tail') = #head'+}+term  tail' : .[A : Set] -> .[n : Nat] -> (vcons' : Vec' A (Nat.suc n)) -> Vec' A n+{ tail' [A] [n] (Vec'.vcons' [.n] #head' #tail') = #tail'+}+type  Vec : ++(A : Set) -> ^ Nat -> Set+term  Vec.vnil : .[A : Set] -> < Vec.vnil : Vec A Nat.zero >+term  Vec.vcons : .[A : Set] -> ^(head : A) -> .[n : Nat] -> ^(tail : Vec A n) -> < Vec.vcons head n tail : Vec A (Nat.suc n) >+term  head : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> A+{ head [A] [n] (Vec.vcons #head [.n] #tail) = #head+}+term  tail : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> Vec A n+{ tail [A] [n] (Vec.vcons #head [.n] #tail) = #tail+}+term  length : .[A : Set] -> .[n : Nat] -> Vec A n -> Nat+{ length [A] [.Nat.zero] Vec.vnil = Nat.zero+; length [A] [.(suc n)] (Vec.vcons x [n] xs) = Nat.suc (length [A] [n] xs)+}+term  append : .[A : Set] -> .[n : Nat] -> Vec A n -> .[m : Nat] -> Vec A m -> Vec A (add n m)+{ append [A] [.Nat.zero] Vec.vnil [m] ys = ys+; append [A] [.(suc n)] (Vec.vcons x [n] xs) [m] ys = Vec.vcons x [add n m] (append [A] [n] xs [m] ys)+}+type  Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term  Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+term  vec0vnil : .[A : Set] -> (v : Vec A Nat.zero) -> Id (Vec A Nat.zero) v Vec.vnil+term  vec0vnil = [\ A ->] \ v -> Id.refl+--- evaluating ---+--- closing "vec.ma" ---
+ test/succeed/wkStream.golden view
@@ -0,0 +1,106 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "wkStream.ma" ---+--- scope checking ---+--- type checking ---+type  Nat : Set+term  Nat.zero : < Nat.zero : Nat >+term  Nat.succ : ^(x : Nat) -> < Nat.succ x : Nat >+term  add : Nat -> Nat -> Nat+{ add x Nat.zero = x+; add x (Nat.succ y) = Nat.succ (add x y)+}+term  one : Nat+term  one = Nat.succ Nat.zero+type  Stream : ^(A : Set) -> - Size -> Set+term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term  zeroes : .[i : Size] -> Stream Nat i+{ zeroes $[i < #] = Stream.cons [i] Nat.zero (zeroes [i])+}+term  ones : .[i : Size] -> Stream Nat i+{ ones $[i < #] = Stream.cons [i] one (ones [i])+}+term  ones' : Stream Nat #+term  ones' = ones [#]+term  map : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Stream A # -> Stream B i+{ map [A] [B] $[i < #] f (Stream.cons [.#] a as) = Stream.cons [i] (f a) (map [A] [B] [i] f as)+}+term  twos : Stream Nat #+term  twos = map [Nat] [Nat] [#] (\ x -> Nat.succ x) ones'+term  tail : .[A : Set] -> Stream A # -> Stream A #+{ tail [A] (Stream.cons [.#] a as) = as+}+term  twos' : Stream Nat #+term  twos' = tail [Nat] twos+term  head : .[A : Set] -> Stream A # -> A+{ head [A] (Stream.cons [.#] a as) = a+}+term  two : Nat+term  two = head [Nat] twos+term  two' : Nat+term  two' = head [Nat] twos'+term  twos2 : Stream Nat #+term  twos2 = map [Nat] [Nat] [#] (\ y -> Nat.succ y) ones'+term  twos2' : Stream Nat #+term  twos2' = tail [Nat] twos2+term  zipWith : .[A : Set] -> .[B : Set] -> .[C : Set] -> .[i : Size] -> (A -> B -> C) -> Stream A # -> Stream B # -> Stream C i+{ zipWith [A] [B] [C] $[i < #] f (Stream.cons [.#] a as) (Stream.cons [.#] b bs) = Stream.cons [i] (f a b) (zipWith [A] [B] [C] [i] f as bs)+}+term  nth : Nat -> Stream Nat # -> Nat+{ nth Nat.zero ns = head [Nat] ns+; nth (Nat.succ x) ns = nth x (tail [Nat] ns)+}+term  fours : Stream Nat #+term  fours = zipWith [Nat] [Nat] [Nat] [#] add twos twos+term  four : Nat+term  four = head [Nat] fours+term  fib : (x : Nat) -> (y : Nat) -> .[i : Size] -> Stream Nat i+{ fib x y $[i < #] = Stream.cons [$i] x (Stream.cons [i] y (fib y (add x y) [i]))+}+term  fib' : Stream Nat #+term  fib' = tail [Nat] (fib Nat.zero Nat.zero [#])+term  fib8 : Nat+term  fib8 = nth (add four four) (fib Nat.zero Nat.zero [#])+term  fib2 : Nat+term  fib2 = head [Nat] (tail [Nat] (fib Nat.zero Nat.zero [#]))+term  nats : .[i : Size] -> Nat -> Stream Nat i+{ nats $[i < #] x = Stream.cons [i] x (nats [i] (Nat.succ x))+}+term  nats' : Stream Nat #+term  nats' = tail [Nat] (nats [#] Nat.zero)+term  wkStream : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+term  wkStream = [\ A ->] [\ i ->] \ s -> s+term  wkStream_ok : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ wkStream_ok [A] $[i < #] (Stream.cons [.$i] x xs) = Stream.cons [i] x (wkStream [A] [i] xs)+}+--- evaluating ---+one has whnf (succ zero)+one evaluates to succ zero+ones' has whnf (ones #)+ones' evaluates to Stream.cons # (Nat.succ Nat.zero) (Stream.cons # (Nat.succ Nat.zero) (Stream.cons # (Nat.succ Nat.zero) (Stream.cons # (Nat.succ Nat.zero) (Stream.cons # (Nat.succ Nat.zero) (ones #)))))+twos has whnf (map Nat Nat # (\ x -> succ x) ones')+twos evaluates to Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (map Nat Nat # (\ x~0 -> succ ~0) (ones #))))))+twos' has whnf (map Nat Nat # (\x -> Nat.succ x) (ones #))+twos' evaluates to Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (map Nat Nat # (\ x~0 -> Nat.succ ~0) (ones #))))))+two has whnf Nat.succ{x = Nat.succ{x = Nat.zero{}}}+two evaluates to Nat.succ (Nat.succ Nat.zero)+two' has whnf Nat.succ{x = Nat.succ{x = Nat.zero{}}}+two' evaluates to Nat.succ (Nat.succ Nat.zero)+twos2 has whnf (map Nat Nat # succ ones')+twos2 evaluates to Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (map Nat Nat # succ (ones #))))))+twos2' has whnf (map Nat Nat # (\y -> Nat.succ y) (ones #))+twos2' evaluates to Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (map Nat Nat # (\ y~0 -> Nat.succ ~0) (ones #))))))+fours has whnf (zipWith Nat Nat Nat # add twos twos)+fours evaluates to Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))) (zipWith Nat Nat Nat # (\ ~0 -> \ ~1 -> add ~0 ~1) (map Nat Nat # (\ x~0 -> Nat.succ ~0) (ones #)) (map Nat Nat # (\ x~0 -> Nat.succ ~0) (ones #)))))))+four has whnf Nat.succ{x = Nat.succ{x = Nat.succ{x = Nat.succ{x = Nat.zero{}}}}}+four evaluates to Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))+fib' has whnf Stream.cons{i = #; y1 = zero; y2 = {fib y (add x y) [i] {i = #, y = zero, x = zero}}}+fib' evaluates to Stream.cons # zero (Stream.cons # zero (Stream.cons # (add zero zero) (Stream.cons # (add zero zero) (Stream.cons # (add zero (add zero zero)) (Stream.cons # (add zero (add zero zero)) (Stream.cons # (add (add zero zero) (add zero (add zero zero))) (Stream.cons # (add (add zero zero) (add zero (add zero zero))) (Stream.cons # (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero)))) (Stream.cons # (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero)))) (Stream.cons # (add (add (add zero zero) (add zero (add zero zero))) (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero))))) (fib (add (add (add zero zero) (add zero (add zero zero))) (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero))))) (add (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero)))) (add (add (add zero zero) (add zero (add zero zero))) (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero)))))) #)))))))))))+fib8 has whnf (add (add zero zero) (add zero (add zero zero)))+fib8 evaluates to add (add zero zero) (add zero (add zero zero))+fib2 has whnf zero+fib2 evaluates to zero+nats' has whnf (nats # {Nat.succ x {x = zero, i = #}})+nats' evaluates to Stream.cons # (Nat.succ zero) (Stream.cons # (Nat.succ (Nat.succ zero)) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ zero))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ zero)))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ zero))))) (nats # (Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ zero)))))))))))+wkStream has whnf (\A -> \ i -> \ s -> s)+wkStream evaluates to \ A~0 -> \ i~1 -> \ s~2 -> ~2+--- closing "wkStream.ma" ---
test/succeed/wkStream.ma view
@@ -1,7 +1,7 @@-data Nat : Set  +data Nat : Set {-	zero : Nat ;-	succ : (x : Nat) -> Nat+        zero : Nat ;+        succ : (x : Nat) -> Nat }  fun add : Nat -> Nat -> Nat@@ -12,7 +12,7 @@  eval let one : Nat = succ zero -sized codata Stream (A : Set) : Size -> Set +sized codata Stream (A : Set) : Size -> Set {   cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }@@ -21,7 +21,7 @@ { zeroes ($ i) = cons i zero (zeroes i) }- + cofun ones : (i : Size) -> Stream Nat i { ones ($ i) = cons i one (ones i)@@ -33,7 +33,7 @@           (A -> B) -> Stream A # -> Stream B i { map A B ($ i) f (cons .# a as) = cons i (f a) (map A B i f as)-} +}  eval let twos : Stream Nat # = map Nat Nat # ( \ x -> succ x) ones' @@ -53,16 +53,16 @@ head A (cons .# a as) = a } -eval let two : Nat = head Nat twos +eval let two : Nat = head Nat twos eval let two' : Nat = head Nat twos'  eval let twos2 : Stream Nat # = map Nat Nat # succ ones' eval let twos2' : Stream Nat # = tail Nat twos2  cofun zipWith : ( A : Set ) -> ( B : Set ) -> (C : Set) -> ( i : Size ) ->-	(A -> B -> C) -> Stream A # -> Stream B # -> Stream C i+        (A -> B -> C) -> Stream A # -> Stream B # -> Stream C i {-zipWith A B C ($ i) f (cons .# a as) (cons .# b bs) = +zipWith A B C ($ i) f (cons .# a as) (cons .# b bs) =   cons i (f a b) (zipWith A B C i f as bs) } @@ -71,7 +71,7 @@ fun nth : Nat -> Stream Nat # -> Nat { nth zero ns = head Nat ns;-nth (succ x) ns = nth x (tail Nat ns) +nth (succ x) ns = nth x (tail Nat ns) }  eval let fours : Stream Nat # = zipWith Nat Nat Nat # add twos twos@@ -82,9 +82,9 @@ cofun fib : (x : Nat ) -> (y : Nat ) -> (i : Size ) -> Stream Nat i { fib x y ($ i) = (cons ($ i) x (cons i y (fib y (add x y) i)))-} +} -eval let fib' : Stream Nat # = tail Nat (fib zero zero #) +eval let fib' : Stream Nat # = tail Nat (fib zero zero #)   eval let fib8 : Nat = nth (add four four) (fib zero zero #)@@ -105,7 +105,6 @@ -- should be ok but does not pass admissibility check cofun wkStream_ok : ( A : Set ) -> (i : Size ) -> Stream A ($ i) -> Stream A i {-wkStream_ok A ($ i) (cons .($ i) x xs) = cons i x (wkStream A i xs) +wkStream_ok A ($ i) (cons .($ i) x xs) = cons i x (wkStream A i xs) }-