diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -6,6 +6,42 @@
 and this project adheres to the
 [Haskell Package Versioning Policy](https://pvp.haskell.org/).
 
+## v0.11.4 — 2026-11-04
+
+This release closes a soundness gap in tope families, adds an RSTT-safe mode that reports what lies outside Riehl–Shulman type theory, and adds a modal `#!rzk match`. One rule now decides which kinds may appear where. Some programs that were accepted before are now rejected, and each such change is marked **Breaking** below. sHoTT still typechecks.
+
+Added:
+
+- **RSTT-safe mode** (see [#364](https://github.com/rzk-lang/rzk/pull/364)). With `rstt-safe = "warn"`, rzk reports declarations outside Riehl–Shulman type theory and outside the fragment in which conservativity is proved: assumed free-standing restrictions, boundaries that depend on outer cube points, a universe used as an ordinary type (as in Hurkens's paradox), holes, and syntax outside RSTT (modalities, auxiliary intervals, inductive types). With `"error"` such declarations are rejected, and `--rstt-safe` on the command line overrides the source settings. The mode is off by default (see [#372](https://github.com/rzk-lang/rzk/pull/372)), since its checks make sHoTT take 5.9 s instead of 1.6 s. For the same reason, the standalone `warn-shape-dependency` check is off by default too.
+
+- **Modal `#!rzk match`**, by [Islam Talipov](https://github.com/LIshy2) (see [#358](https://github.com/rzk-lang/rzk/pull/358)). `#!rzk match ♭ n (…)` eliminates a scrutinee available under `♭` or `ᵒᵖ`, and the constructor fields inherit the modality. These are Shulman's crisp induction principles, and there are none for `♯`. A `#!rzk #data` without path constructors also generates `ind-op-D`, `rec-op-D`, `ind-b-D`, and `rec-b-D`. **Breaking**: `#!rzk match mod μ x (…)` is a syntax error (write `#!rzk match (mod μ x) (…)`), and an earlier definition with one of the four new names now clashes.
+
+- **A warning for a tope family not included in its domain** (see [#362](https://github.com/rzk-lang/rzk/pull/362)). Such a family is read as its intersection with the domain. This is convenient to write (sHoTT writes the faces of a horn on the whole cube), but the family checked is not the one written.
+
+Changed:
+
+- **The layer discipline** (see [#354](https://github.com/rzk-lang/rzk/pull/354)). One rule per position now decides, on the elaborated form, which kinds may appear in `#!rzk #data`. A parameter may be a type, `#!rzk CUBE`, a tope family, a modal kind, or (as suggested by Islam Talipov) a bare tope `#!rzk (ψ : TOPE)`. An index must be a type. A field may be a type, a cube point, or a shape point in any spelling, such as `#!rzk (t : 2 | ⊤)` or `#!rzk (t :♭ Δ¹)`. **Breaking**: cubes, topes, and tope families are no longer accepted as fields or indices, points not as parameters, and no universe kind as a Σ component, an identity carrier, a definition at type `#!rzk U`, or an argument at type `#!rzk U`. sHoTT and the documentation use none of these.
+
+- **Modal diagnostics name what went wrong**, by Islam Talipov (see [#365](https://github.com/rzk-lang/rzk/pull/365)). Contexts in errors and hole goals mark an inaccessible entry with `×`, its modality, and the locks accumulated since, and the JSON output of holes carries the same fields. Modal errors name the site and both sides.
+
+Fixed:
+
+- **A tope family is elaborated with its declared domain** (see [#359](https://github.com/rzk-lang/rzk/pull/359)). A family not included in its domain, such as `#!rzk \ t → TOP` over the empty shape, was read with the domain where a family variable is applied and without it once the family was substituted. The two readings together gave a closed term of every type. Such a family now elaborates to its intersection with the domain.
+
+- **The interval order at the endpoints**, by Islam Talipov (see [#361](https://github.com/rzk-lang/rzk/pull/361), fixing [#360](https://github.com/rzk-lang/rzk/issues/360)). The tope solver derives `s ≤ t` from `t ≡ 1ᵢ` or `s ≡ 0ᵢ`.
+
+- **Modal fixes**, by Islam Talipov (see [#357](https://github.com/rzk-lang/rzk/pull/357)). `#!rzk let mod` eliminates a modal value whose type carries a boundary restriction, a motive-free `#!rzk let mod` instantiates a dependent result type with the payload, and topes under `ᵒᵖ` are normalised symmetrically.
+
+- **Hole candidates** (see [#367](https://github.com/rzk-lang/rzk/pull/367), [#260](https://github.com/rzk-lang/rzk/pull/260)). A lemma whose edge body is headed by a hole is offered as a candidate, and in lenient mode an incomplete guard such as `#!rzk recOR (? ≤ ? ↦ a , ? ↦ a)` records its holes instead of failing.
+
+Performance:
+
+- **sHoTT checks 8–10% faster than with v0.11.3.** Part of the gain comes from the upgrade to free-foil 0.6.1 (see [#370](https://github.com/rzk-lang/rzk/pull/370)), whose substitution and α-equivalence specialise at rzk's signature.
+
+Documentation:
+
+- The hole guide and the direction of the overhang warning's entailment are corrected (see [#368](https://github.com/rzk-lang/rzk/pull/368)).
+
 ## v0.11.3 — 2026-08-31
 
 A maintenance release. The conversion fast path now compares stuck applications spine to spine, the modal `#!rzk let` gets a clearer surface syntax, and `rzk version --full` describes the build.
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -50,12 +50,14 @@
 data TypecheckOptions = TypecheckOptions
   { typecheckAllowHoles :: Bool
   , typecheckJson       :: Bool
+  , typecheckRSTTSafe   :: Maybe String
   } deriving (Generic, Show, ParseRecord, Read, ParseField)
 
 instance ParseFields TypecheckOptions where
   parseFields _ _ _ _ = TypecheckOptions
     <$> parseFields (Just "Allow unsolved holes: report each hole's goal and local context instead of failing") (Just "allow-holes") (Just 'H') Nothing
     <*> parseFields (Just "Output diagnostics (type errors and holes) as JSON on stdout") (Just "json") (Just 'j') Nothing
+    <*> parseFields (Just "Enforce RSTT fragment checks throughout the run: warn, error, or off") (Just "rstt-safe") Nothing Nothing
 
 data VersionOptions = VersionOptions
   { versionFull :: Bool
@@ -80,9 +82,19 @@
   withUtf8 $
 #endif
     getRecord "rzk: an experimental proof assistant for synthetic ∞-categories" >>= \case
-    Typecheck (TypecheckOptions {typecheckAllowHoles = allowHolesFlag, typecheckJson = jsonFlag}) paths -> do
+    Typecheck (TypecheckOptions {typecheckAllowHoles = allowHolesFlag, typecheckJson = jsonFlag, typecheckRSTTSafe = safeFlag}) paths -> do
+      safeOverride <- case safeFlag of
+        Nothing -> pure Nothing
+        Just "warn" -> pure (Just RSTTSafeWarn)
+        Just "error" -> pure (Just RSTTSafeError)
+        Just "off" -> pure (Just RSTTSafeOff)
+        Just _ -> do
+          putStrLn "Unknown --rstt-safe mode (use warn, error, or off)"
+          exitFailure
       modules <- parseRzkFilesOrStdin paths
-      let reportError err = do
+      let baseContext = if jsonFlag || allowHolesFlag then allowHoles emptyContext else emptyContext
+          result = checkedModules modules (baseContext { ctxRSTTSafeOverride = safeOverride })
+          reportError err = do
             putStrLn "An error occurred when typechecking!"
             putStrLn $ unlines
               [ "Type Error:"
@@ -93,7 +105,7 @@
         -- holes as hints) as a JSON array on stdout; progress goes to stderr.
         -- Exit non-zero iff there is an error-severity diagnostic.
         then do
-          let diagnostics = case typecheckModulesWithHoles modules of
+          let diagnostics = case result of
                 Left err -> [diagnoseTypeError BottomUp err]
                 Right (Checked _ctx _decls errors warnings, holes) ->
                   map (diagnoseTypeError BottomUp) errors
@@ -102,7 +114,7 @@
           BL8.putStrLn (encode diagnostics)
           when (any ((== SeverityError) . diagnosticSeverity) diagnostics) exitFailure
         else if allowHolesFlag
-          then case typecheckModulesWithHoles modules of
+          then case result of
             Left err -> reportError err >> exitFailure
             Right (Checked _ctx _decls errors warnings, holes) -> do
               forM_ warnings (putStrLn . ppCheckWarning)
@@ -110,11 +122,13 @@
               case errors of
                 [] -> putStrLn ("Everything is ok! (" <> show (length holes) <> " hole(s))")
                 _  -> do forM_ errors reportError; exitFailure
-          else case typecheckModules modules of
+          else case result of
             Left err -> reportError err >> exitFailure
-            Right checked -> do
-              forM_ (checkedWarnings checked) (putStrLn . ppCheckWarning)
-              putStrLn "Everything is ok!"
+            Right (Checked _ _ errors warnings, _) -> do
+              forM_ warnings (putStrLn . ppCheckWarning)
+              case errors of
+                [] -> putStrLn "Everything is ok!"
+                _ -> do forM_ errors reportError; exitFailure
 
     Lsp ->
 #ifdef LSP_ENABLED
diff --git a/grammar/Syntax.cf b/grammar/Syntax.cf
--- a/grammar/Syntax.cf
+++ b/grammar/Syntax.cf
@@ -150,25 +150,25 @@
 ASCII_ModalColonOp.    ModalColon ::= ":_op" ;
 
 -- Universes
-Universe.       Term7 ::= "U" ;
-UniverseCube.   Term7 ::= "CUBE" ;
-UniverseTope.   Term7 ::= "TOPE" ;
+Universe.       Term8 ::= "U" ;
+UniverseCube.   Term8 ::= "CUBE" ;
+UniverseTope.   Term8 ::= "TOPE" ;
 -- Cubes
-CubeUnit.       Term7 ::= "1" ;
-CubeUnitStar.   Term7 ::= "*₁" ;
-Cube2.          Term7 ::= "2" ;
-Cube2_0.        Term7 ::= "0₂" ;
-Cube2_1.        Term7 ::= "1₂" ;
-CubeI.          Term7 ::= "𝕀" ;
-CubeI_0.        Term7 ::= "0ᵢ" ;
-CubeI_1.        Term7 ::= "1ᵢ" ;
+CubeUnit.       Term8 ::= "1" ;
+CubeUnitStar.   Term8 ::= "*₁" ;
+Cube2.          Term8 ::= "2" ;
+Cube2_0.        Term8 ::= "0₂" ;
+Cube2_1.        Term8 ::= "1₂" ;
+CubeI.          Term8 ::= "𝕀" ;
+CubeI_0.        Term8 ::= "0ᵢ" ;
+CubeI_1.        Term8 ::= "1ᵢ" ;
 CubeProduct.    Term5 ::= Term5 "×" Term6 ;
 -- Lattice operations on cube points (join/meet)
 CubeSup.        Term5 ::= Term5 "⊔" Term6 ;
 CubeInf.        Term5 ::= Term5 "⊓" Term6 ;
 -- Topes
-TopeTop.        Term7 ::= "⊤" ;
-TopeBottom.     Term7 ::= "⊥" ;
+TopeTop.        Term8 ::= "⊤" ;
+TopeBottom.     Term8 ::= "⊥" ;
 TopeEQ.         Term4 ::= Term5 "≡" Term5 ;
 TopeLEQ.        Term4 ::= Term5 "≤" Term5 ;
 TopeAnd.        Term3 ::= Term4 "∧" Term3 ;
@@ -186,14 +186,14 @@
 ascii_CubeUnflip. Term6 ::= "unflip_op" Term7 ;
 define ascii_CubeUnflip t = CubeUnflip t ;
 -- Tope disjunction elimination
-RecBottom.        Term7 ::= "recBOT" ;
-RecOr.            Term7 ::= "recOR" "(" [Restriction] ")" ;
+RecBottom.        Term8 ::= "recBOT" ;
+RecOr.            Term8 ::= "recOR" "(" [Restriction] ")" ;
 -- Types
 TypeFun.        Term1 ::= ParamDecl "→" Term1 ;
 TypeSigma.      Term1 ::= "Σ" "(" Pattern ":" Term ")" "," Term1 ;
 TypeSigmaModal.    Term1 ::= "Σ" "(" Pattern ModalColon Term ")" "," Term1 ;
 TypeSigmaTuple. Term1 ::= "Σ" "(" SigmaParam "," [SigmaParam] ")" "," Term1 ;
-TypeUnit.       Term7 ::= "Unit" ;
+TypeUnit.       Term8 ::= "Unit" ;
 TypeId.         Term1 ::= Term2 "=_{" Term "}" Term2 ;
 TypeIdSimple.   Term1 ::= Term2 "=" Term2 ;
 TypeRestricted. Term6  ::= Term6 "[" [Restriction] "]" ;
@@ -201,8 +201,8 @@
 Let.            Term1 ::= "let" Bind ":=" Term "in" Term ;
 App.            Term6 ::= Term6 Term7 ;
 Lambda.         Term1 ::= "\\" [Param] "→" Term1 ;
-Pair.           Term7 ::= "(" Term "," Term ")" ;
-Tuple.          Term7 ::= "(" Term "," Term "," [Term] ")" ;
+Pair.           Term8 ::= "(" Term "," Term ")" ;
+Tuple.          Term8 ::= "(" Term "," Term "," [Term] ")" ;
 ModApp.         Term7 ::= "mod" Modality Term7 ;
 ModType.        Term7 ::= Modality Term7 ;
 ModExtract.     Term6 ::= "$extract$" ModComp Term7 ;
@@ -214,21 +214,25 @@
 LetModFramedInto. Term1 ::= "let" Modality "mod" Modality Bind ":=" Term "into" Term "in" Term ;
 First.          Term6 ::= "π₁" Term7 ;
 Second.         Term6 ::= "π₂" Term7 ;
-Unit.           Term7 ::= "unit" ;
-Refl.           Term7 ::= "refl";
-ReflTerm.       Term7 ::= "refl_{" Term "}" ;
-ReflTermType.   Term7 ::= "refl_{" Term ":" Term "}" ;
-IdJ.            Term7 ::= "idJ" "(" Term "," Term "," Term "," Term "," Term "," Term ")" ;
-Match.          Term7 ::= "match" Term7 "(" [MatchBranch] ")" ;
-MatchInto.      Term7 ::= "match" Term7 "into" Term7 "(" [MatchBranch] ")" ;
+Unit.           Term8 ::= "unit" ;
+Refl.           Term8 ::= "refl";
+ReflTerm.       Term8 ::= "refl_{" Term "}" ;
+ReflTermType.   Term8 ::= "refl_{" Term ":" Term "}" ;
+IdJ.            Term8 ::= "idJ" "(" Term "," Term "," Term "," Term "," Term "," Term ")" ;
+-- A bare modality after `match` belongs to the modal form. The ordinary form
+-- takes an atom; a prefixed scrutinee can still be written in parentheses.
+Match.          Term7 ::= "match" Term8 "(" [MatchBranch] ")" ;
+MatchInto.      Term7 ::= "match" Term8 "into" Term8 "(" [MatchBranch] ")" ;
+MatchModal.     Term7 ::= "match" Modality Term8 "(" [MatchBranch] ")" ;
+MatchModalInto. Term7 ::= "match" Modality Term8 "into" Term8 "(" [MatchBranch] ")" ;
 -- Variables and holes
-Hole.           Term7 ::= HoleIdent;
-Var.            Term7 ::= VarIdent ;
+Hole.           Term8 ::= HoleIdent;
+Var.            Term8 ::= VarIdent ;
 -- Miscellaneous
 TypeAsc.        Term ::= Term2 "as" Term1 ;
 
 separator nonempty Term "," ;
-coercions Term 7 ;
+coercions Term 8 ;
 
 -- ASCII version of some rules above
 
@@ -239,15 +243,15 @@
 ascii_CubeInf.        Term6 ::= "inf" Term7 Term7 ;
 define ascii_CubeInf l r = CubeInf l r ;
 
-ASCII_CubeUnitStar.   Term7 ::= "*_1" ;
-ASCII_Cube2_0.        Term7 ::= "0_2" ;
-ASCII_Cube2_1.        Term7 ::= "1_2" ;
-ASCII_CubeI.          Term7 ::= "II" ;
-ASCII_CubeI_0.        Term7 ::= "0_I" ;
-ASCII_CubeI_1.        Term7 ::= "1_I" ;
+ASCII_CubeUnitStar.   Term8 ::= "*_1" ;
+ASCII_Cube2_0.        Term8 ::= "0_2" ;
+ASCII_Cube2_1.        Term8 ::= "1_2" ;
+ASCII_CubeI.          Term8 ::= "II" ;
+ASCII_CubeI_0.        Term8 ::= "0_I" ;
+ASCII_CubeI_1.        Term8 ::= "1_I" ;
 
-ASCII_TopeTop.        Term7 ::= "TOP" ;
-ASCII_TopeBottom.     Term7 ::= "BOT" ;
+ASCII_TopeTop.        Term8 ::= "TOP" ;
+ASCII_TopeBottom.     Term8 ::= "BOT" ;
 ASCII_TopeEQ.         Term4 ::= Term5 "===" Term5 ;
 ASCII_TopeLEQ.        Term4 ::= Term5 "<=" Term5 ;
 ASCII_TopeAnd.        Term3 ::= Term4 "/\\" Term3 ;
diff --git a/rzk.cabal b/rzk.cabal
--- a/rzk.cabal
+++ b/rzk.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           rzk
-version:        0.11.3
+version:        0.11.4
 synopsis:       An experimental proof assistant for synthetic ∞-categories
 description:    Please see the README on GitHub at <https://github.com/rzk-lang/rzk#readme>
 category:       Dependent Types
@@ -33,14 +33,22 @@
     test/typecheck/cases/happy-data-interval-funext.rzk
     test/typecheck/cases/happy-data-large-warning.rzk
     test/typecheck/cases/happy-data-list.rzk
+    test/typecheck/cases/happy-data-modal-kind-param.rzk
+    test/typecheck/cases/happy-data-modal-shape-field.rzk
     test/typecheck/cases/happy-data-nat.rzk
+    test/typecheck/cases/happy-data-path-shape-field.rzk
     test/typecheck/cases/happy-data-prop-trunc.rzk
     test/typecheck/cases/happy-data-pushout.rzk
     test/typecheck/cases/happy-data-rec-section.rzk
     test/typecheck/cases/happy-data-section.rzk
+    test/typecheck/cases/happy-data-shape-realisation.rzk
+    test/typecheck/cases/happy-data-shape-tope.rzk
+    test/typecheck/cases/happy-data-tope-param.rzk
     test/typecheck/cases/happy-data-vec.rzk
+    test/typecheck/cases/happy-ext-style-restrictions.rzk
     test/typecheck/cases/happy-flip-unflip.rzk
     test/typecheck/cases/happy-interval-basics.rzk
+    test/typecheck/cases/happy-interval-endpoint-entailment.rzk
     test/typecheck/cases/happy-interval-subtyping.rzk
     test/typecheck/cases/happy-issue-9-relfunext2-id.rzk
     test/typecheck/cases/happy-lattice-eq-gives-leq.rzk
@@ -49,6 +57,7 @@
     test/typecheck/cases/happy-match-basics.rzk
     test/typecheck/cases/happy-match-case-vec.rzk
     test/typecheck/cases/happy-match-indexed.rzk
+    test/typecheck/cases/happy-match-modal.rzk
     test/typecheck/cases/happy-meta-prefix-option-off.rzk
     test/typecheck/cases/happy-meta-prefix-plumbing.rzk
     test/typecheck/cases/happy-modal-basics.rzk
@@ -56,9 +65,12 @@
     test/typecheck/cases/happy-modal-flat-recOR-under-op.rzk
     test/typecheck/cases/happy-modal-flat-under-op.rzk
     test/typecheck/cases/happy-modal-inv.rzk
+    test/typecheck/cases/happy-modal-let-dependent-payload.rzk
     test/typecheck/cases/happy-modal-let-into.rzk
+    test/typecheck/cases/happy-modal-let-restricted.rzk
     test/typecheck/cases/happy-modal-tope-unwrap.rzk
     test/typecheck/cases/happy-modal-topes.rzk
+    test/typecheck/cases/happy-modal-uninv-shape-restricted.rzk
     test/typecheck/cases/happy-multivar-binder.rzk
     test/typecheck/cases/happy-nbe-church-conversion.rzk
     test/typecheck/cases/happy-nbe-transport-refl-spine.rzk
@@ -69,17 +81,34 @@
     test/typecheck/cases/happy-recor-split-simplex-overhang.rzk
     test/typecheck/cases/happy-refl-path.rzk
     test/typecheck/cases/happy-restrict-face-not-contained.rzk
+    test/typecheck/cases/happy-rstt-awareness.rzk
+    test/typecheck/cases/happy-rstt-bare-tope-param.rzk
+    test/typecheck/cases/happy-rstt-boundary-error.rzk
+    test/typecheck/cases/happy-rstt-boundary-multicube.rzk
+    test/typecheck/cases/happy-rstt-boundary-warn.rzk
+    test/typecheck/cases/happy-rstt-boundary.rzk
+    test/typecheck/cases/happy-rstt-independent-cubes.rzk
+    test/typecheck/cases/happy-rstt-off.rzk
+    test/typecheck/cases/happy-rstt-schema-parameters.rzk
+    test/typecheck/cases/happy-rstt-shape-dependency-off.rzk
+    test/typecheck/cases/happy-rstt-tail-nested.rzk
+    test/typecheck/cases/happy-rstt-tau-flip.rzk
+    test/typecheck/cases/happy-rstt-tope-terms.rzk
+    test/typecheck/cases/happy-rstt-trusted-postulate.rzk
     test/typecheck/cases/happy-set-option-warn-overhang.rzk
     test/typecheck/cases/happy-shadowing-across-groups.rzk
     test/typecheck/cases/happy-shott-simplicial-subcomplexes.rzk
     test/typecheck/cases/happy-subtype-variance-pi-shape-domain.rzk
     test/typecheck/cases/happy-subtype-variance-restriction-faces.rzk
     test/typecheck/cases/happy-subtype-variance-tope-family.rzk
+    test/typecheck/cases/happy-tope-assume.rzk
+    test/typecheck/cases/happy-tope-family-domain-instance.rzk
     test/typecheck/cases/happy-tope-high-dim-cubes.rzk
     test/typecheck/cases/happy-tope-nested-rec-or-d4.rzk
     test/typecheck/cases/happy-tope-nested-rec-or-d5.rzk
     test/typecheck/cases/happy-tope-nested-rec-or-d6.rzk
     test/typecheck/cases/happy-tope-nested-rec-or.rzk
+    test/typecheck/cases/happy-tope-param.rzk
     test/typecheck/cases/happy-tope-rec-and-restrict.rzk
     test/typecheck/cases/happy-tope-shapes.rzk
     test/typecheck/cases/ill-bare-lambda-compute.rzk
@@ -88,6 +117,10 @@
     test/typecheck/cases/ill-data-compute-kind.rzk
     test/typecheck/cases/ill-data-compute-mismatch.rzk
     test/typecheck/cases/ill-data-compute-unknown.rzk
+    test/typecheck/cases/ill-data-cube-index.rzk
+    test/typecheck/cases/ill-data-cube-param.rzk
+    test/typecheck/cases/ill-data-cube-universe-field.rzk
+    test/typecheck/cases/ill-data-cube-universe-index.rzk
     test/typecheck/cases/ill-data-duplicate-constructor.rzk
     test/typecheck/cases/ill-data-eliminator-duplicate.rzk
     test/typecheck/cases/ill-data-eliminator-mismatch.rzk
@@ -95,7 +128,15 @@
     test/typecheck/cases/ill-data-fun-field.rzk
     test/typecheck/cases/ill-data-index-mismatch.rzk
     test/typecheck/cases/ill-data-missing-return.rzk
+    test/typecheck/cases/ill-data-modal-cube-field.rzk
+    test/typecheck/cases/ill-data-modal-kind-param-lock.rzk
+    test/typecheck/cases/ill-data-modal-kind-param-point.rzk
+    test/typecheck/cases/ill-data-modal-shape-field-lock.rzk
+    test/typecheck/cases/ill-data-modal-tope-field.rzk
+    test/typecheck/cases/ill-data-modal-tope-index.rzk
+    test/typecheck/cases/ill-data-modal-type-field.rzk
     test/typecheck/cases/ill-data-negative.rzk
+    test/typecheck/cases/ill-data-no-sharp-eliminator.rzk
     test/typecheck/cases/ill-data-non-u-sort.rzk
     test/typecheck/cases/ill-data-path-endpoint.rzk
     test/typecheck/cases/ill-data-path-higher-field.rzk
@@ -103,11 +144,18 @@
     test/typecheck/cases/ill-data-path-indexed.rzk
     test/typecheck/cases/ill-data-path-unannotated.rzk
     test/typecheck/cases/ill-data-return-type.rzk
-    test/typecheck/cases/ill-data-shape-field.rzk
+    test/typecheck/cases/ill-data-shape-index-named.rzk
+    test/typecheck/cases/ill-data-shape-index.rzk
+    test/typecheck/cases/ill-data-shape-param.rzk
+    test/typecheck/cases/ill-data-tope-family-field.rzk
+    test/typecheck/cases/ill-data-tope-family-index.rzk
+    test/typecheck/cases/ill-data-tope-field.rzk
+    test/typecheck/cases/ill-data-tope-index.rzk
     test/typecheck/cases/ill-duplicate.rzk
     test/typecheck/cases/ill-hole-infer.rzk
     test/typecheck/cases/ill-hole-pattern-binder-names.rzk
     test/typecheck/cases/ill-hole-recor-branch.rzk
+    test/typecheck/cases/ill-hole-recor-guard-point.rzk
     test/typecheck/cases/ill-hole-unsolved.rzk
     test/typecheck/cases/ill-implicit.rzk
     test/typecheck/cases/ill-interval-no-totality.rzk
@@ -116,6 +164,13 @@
     test/typecheck/cases/ill-issue-13-flip-flip-wrong.rzk
     test/typecheck/cases/ill-issue-206-families-of-extension.rzk
     test/typecheck/cases/ill-issue-33-restriction-coherence.rzk
+    test/typecheck/cases/ill-kind-app-argument-tope.rzk
+    test/typecheck/cases/ill-kind-define-tope.rzk
+    test/typecheck/cases/ill-kind-id-carrier-tope.rzk
+    test/typecheck/cases/ill-kind-sigma-body-tope.rzk
+    test/typecheck/cases/ill-kind-sigma-cube-universe.rzk
+    test/typecheck/cases/ill-kind-sigma-tope-family.rzk
+    test/typecheck/cases/ill-kind-sigma-tope.rzk
     test/typecheck/cases/ill-lattice-endpoints-distinct.rzk
     test/typecheck/cases/ill-lattice-eq-no-leak.rzk
     test/typecheck/cases/ill-lattice-non-law.rzk
@@ -129,6 +184,11 @@
     test/typecheck/cases/ill-match-duplicate-branch.rzk
     test/typecheck/cases/ill-match-missing-branch.rzk
     test/typecheck/cases/ill-match-missing-path-branch.rzk
+    test/typecheck/cases/ill-match-modal-hit.rzk
+    test/typecheck/cases/ill-match-modal-ih-remodalized.rzk
+    test/typecheck/cases/ill-match-modal-inaccessible.rzk
+    test/typecheck/cases/ill-match-modal-motive.rzk
+    test/typecheck/cases/ill-match-modal-sharp.rzk
     test/typecheck/cases/ill-match-not-data.rzk
     test/typecheck/cases/ill-match-unknown-branch.rzk
     test/typecheck/cases/ill-modal-b-no-dist.rzk
@@ -164,15 +224,40 @@
     test/typecheck/cases/ill-repeated-binder-pair.rzk
     test/typecheck/cases/ill-repeated-binder-params.rzk
     test/typecheck/cases/ill-restrict-face-disjoint.rzk
+    test/typecheck/cases/ill-rstt-auxiliary-interval.rzk
+    test/typecheck/cases/ill-rstt-boundary-obligation.rzk
+    test/typecheck/cases/ill-rstt-dependent-cube-family.rzk
+    test/typecheck/cases/ill-rstt-dependent-cube-instance.rzk
+    test/typecheck/cases/ill-rstt-dependent-cube.rzk
+    test/typecheck/cases/ill-rstt-false-bottom.rzk
+    test/typecheck/cases/ill-rstt-false-refl.rzk
+    test/typecheck/cases/ill-rstt-inductive.rzk
+    test/typecheck/cases/ill-rstt-meta-binder-in-face.rzk
+    test/typecheck/cases/ill-rstt-meta-binder.rzk
+    test/typecheck/cases/ill-rstt-meta-prefix.rzk
+    test/typecheck/cases/ill-rstt-modal.rzk
+    test/typecheck/cases/ill-rstt-option.rzk
+    test/typecheck/cases/ill-rstt-packed-cube-family.rzk
+    test/typecheck/cases/ill-rstt-packed-type-family.rzk
+    test/typecheck/cases/ill-rstt-postulate.rzk
+    test/typecheck/cases/ill-rstt-restriction-in-domain.rzk
+    test/typecheck/cases/ill-rstt-restriction.rzk
+    test/typecheck/cases/ill-rstt-shape-boundary.rzk
+    test/typecheck/cases/ill-rstt-shape-domain.rzk
+    test/typecheck/cases/ill-rstt-uncovered-endpoints.rzk
+    test/typecheck/cases/ill-rstt-unsupported.rzk
     test/typecheck/cases/ill-section-end-mismatch.rzk
     test/typecheck/cases/ill-section-not-closed.rzk
     test/typecheck/cases/ill-section-unexpected-end.rzk
     test/typecheck/cases/ill-set-option-render.rzk
     test/typecheck/cases/ill-set-option-unknown.rzk
     test/typecheck/cases/ill-set-option-verbosity.rzk
+    test/typecheck/cases/ill-shape-dependency-option.rzk
     test/typecheck/cases/ill-subtype-variance-pi-shape-domain.rzk
     test/typecheck/cases/ill-subtype-variance-restriction-faces.rzk
     test/typecheck/cases/ill-subtype-variance-tope-family.rzk
+    test/typecheck/cases/ill-tope-family-domain-non-instance.rzk
+    test/typecheck/cases/ill-tope-family-domain-same-domain.rzk
     test/typecheck/cases/ill-tope-nested-rec-or-inner-singleton-d4.rzk
     test/typecheck/cases/ill-tope-nested-rec-or-inner-singleton-d5.rzk
     test/typecheck/cases/ill-tope-nested-rec-or-inner-singleton-d6.rzk
@@ -182,8 +267,8 @@
     test/typecheck/cases/ill-tope-not-satisfied-rec-or-boundary-equiv.rzk
     test/typecheck/cases/ill-tope-not-satisfied-rec-or-open-singleton.rzk
     test/typecheck/cases/ill-tope-not-satisfied-tope-family-subtyping.rzk
-    test/typecheck/cases/ill-tope-param-lambda.rzk
-    test/typecheck/cases/ill-tope-param-typefun.rzk
+    test/typecheck/cases/ill-tope-param-entailment.rzk
+    test/typecheck/cases/ill-tope-param-instance.rzk
     test/typecheck/cases/ill-tope-pattern-binder-bare.rzk
     test/typecheck/cases/ill-tope-recOR-non-discrete.rzk
     test/typecheck/cases/ill-tope-subtle-app-shape-5d.rzk
@@ -205,10 +290,31 @@
     test/typecheck/cases/multimodule-two-ok/user.rzk
     test/typecheck/cases/uses-whnf-discarded.rzk
     test/typecheck/cases/uses-whnf-masked-transitive.rzk
+    test/typecheck/cases/warn-free-standing-restriction-assumed.rzk
+    test/typecheck/cases/warn-free-standing-restriction-option.rzk
+    test/typecheck/cases/warn-meta-binder-inside-term.rzk
     test/typecheck/cases/warn-meta-prefix-object-position.rzk
     test/typecheck/cases/warn-meta-prefix-option-structural.rzk
     test/typecheck/cases/warn-meta-prefix-section.rzk
     test/typecheck/cases/warn-meta-prefix-strict-only.rzk
+    test/typecheck/cases/warn-overhang-controls.rzk
+    test/typecheck/cases/warn-rstt-bare-tope-binder-in-term.rzk
+    test/typecheck/cases/warn-rstt-bare-tope-object-point.rzk
+    test/typecheck/cases/warn-rstt-default.rzk
+    test/typecheck/cases/warn-rstt-escape-beta.rzk
+    test/typecheck/cases/warn-rstt-escape-iota.rzk
+    test/typecheck/cases/warn-rstt-escape-let.rzk
+    test/typecheck/cases/warn-rstt-escape-pair.rzk
+    test/typecheck/cases/warn-rstt-escape-section.rzk
+    test/typecheck/cases/warn-rstt-escape-tope-family.rzk
+    test/typecheck/cases/warn-rstt-escape-unfolding.rzk
+    test/typecheck/cases/warn-rstt-inductive.rzk
+    test/typecheck/cases/warn-rstt-modal.rzk
+    test/typecheck/cases/warn-rstt-reset.rzk
+    test/typecheck/cases/warn-rstt-shape-dependency.rzk
+    test/typecheck/cases/warn-rstt-warn-overrides-standalone.rzk
+    test/typecheck/cases/warn-tope-family-domain-non-instance.rzk
+    test/typecheck/cases/warn-tope-family-domain-option.rzk
     test/typecheck/cases/happy-check.expect.yaml
     test/typecheck/cases/happy-data-bool.expect.yaml
     test/typecheck/cases/happy-data-circle.expect.yaml
@@ -222,14 +328,22 @@
     test/typecheck/cases/happy-data-interval-funext.expect.yaml
     test/typecheck/cases/happy-data-large-warning.expect.yaml
     test/typecheck/cases/happy-data-list.expect.yaml
+    test/typecheck/cases/happy-data-modal-kind-param.expect.yaml
+    test/typecheck/cases/happy-data-modal-shape-field.expect.yaml
     test/typecheck/cases/happy-data-nat.expect.yaml
+    test/typecheck/cases/happy-data-path-shape-field.expect.yaml
     test/typecheck/cases/happy-data-prop-trunc.expect.yaml
     test/typecheck/cases/happy-data-pushout.expect.yaml
     test/typecheck/cases/happy-data-rec-section.expect.yaml
     test/typecheck/cases/happy-data-section.expect.yaml
+    test/typecheck/cases/happy-data-shape-realisation.expect.yaml
+    test/typecheck/cases/happy-data-shape-tope.expect.yaml
+    test/typecheck/cases/happy-data-tope-param.expect.yaml
     test/typecheck/cases/happy-data-vec.expect.yaml
+    test/typecheck/cases/happy-ext-style-restrictions.expect.yaml
     test/typecheck/cases/happy-flip-unflip.expect.yaml
     test/typecheck/cases/happy-interval-basics.expect.yaml
+    test/typecheck/cases/happy-interval-endpoint-entailment.expect.yaml
     test/typecheck/cases/happy-interval-subtyping.expect.yaml
     test/typecheck/cases/happy-issue-9-relfunext2-id.expect.yaml
     test/typecheck/cases/happy-lattice-eq-gives-leq.expect.yaml
@@ -238,6 +352,7 @@
     test/typecheck/cases/happy-match-basics.expect.yaml
     test/typecheck/cases/happy-match-case-vec.expect.yaml
     test/typecheck/cases/happy-match-indexed.expect.yaml
+    test/typecheck/cases/happy-match-modal.expect.yaml
     test/typecheck/cases/happy-meta-prefix-option-off.expect.yaml
     test/typecheck/cases/happy-meta-prefix-plumbing.expect.yaml
     test/typecheck/cases/happy-modal-basics.expect.yaml
@@ -245,9 +360,12 @@
     test/typecheck/cases/happy-modal-flat-recOR-under-op.expect.yaml
     test/typecheck/cases/happy-modal-flat-under-op.expect.yaml
     test/typecheck/cases/happy-modal-inv.expect.yaml
+    test/typecheck/cases/happy-modal-let-dependent-payload.expect.yaml
     test/typecheck/cases/happy-modal-let-into.expect.yaml
+    test/typecheck/cases/happy-modal-let-restricted.expect.yaml
     test/typecheck/cases/happy-modal-tope-unwrap.expect.yaml
     test/typecheck/cases/happy-modal-topes.expect.yaml
+    test/typecheck/cases/happy-modal-uninv-shape-restricted.expect.yaml
     test/typecheck/cases/happy-multivar-binder.expect.yaml
     test/typecheck/cases/happy-nbe-church-conversion.expect.yaml
     test/typecheck/cases/happy-nbe-transport-refl-spine.expect.yaml
@@ -258,17 +376,34 @@
     test/typecheck/cases/happy-recor-split-simplex-overhang.expect.yaml
     test/typecheck/cases/happy-refl-path.expect.yaml
     test/typecheck/cases/happy-restrict-face-not-contained.expect.yaml
+    test/typecheck/cases/happy-rstt-awareness.expect.yaml
+    test/typecheck/cases/happy-rstt-bare-tope-param.expect.yaml
+    test/typecheck/cases/happy-rstt-boundary-error.expect.yaml
+    test/typecheck/cases/happy-rstt-boundary-multicube.expect.yaml
+    test/typecheck/cases/happy-rstt-boundary-warn.expect.yaml
+    test/typecheck/cases/happy-rstt-boundary.expect.yaml
+    test/typecheck/cases/happy-rstt-independent-cubes.expect.yaml
+    test/typecheck/cases/happy-rstt-off.expect.yaml
+    test/typecheck/cases/happy-rstt-schema-parameters.expect.yaml
+    test/typecheck/cases/happy-rstt-shape-dependency-off.expect.yaml
+    test/typecheck/cases/happy-rstt-tail-nested.expect.yaml
+    test/typecheck/cases/happy-rstt-tau-flip.expect.yaml
+    test/typecheck/cases/happy-rstt-tope-terms.expect.yaml
+    test/typecheck/cases/happy-rstt-trusted-postulate.expect.yaml
     test/typecheck/cases/happy-set-option-warn-overhang.expect.yaml
     test/typecheck/cases/happy-shadowing-across-groups.expect.yaml
     test/typecheck/cases/happy-shott-simplicial-subcomplexes.expect.yaml
     test/typecheck/cases/happy-subtype-variance-pi-shape-domain.expect.yaml
     test/typecheck/cases/happy-subtype-variance-restriction-faces.expect.yaml
     test/typecheck/cases/happy-subtype-variance-tope-family.expect.yaml
+    test/typecheck/cases/happy-tope-assume.expect.yaml
+    test/typecheck/cases/happy-tope-family-domain-instance.expect.yaml
     test/typecheck/cases/happy-tope-high-dim-cubes.expect.yaml
     test/typecheck/cases/happy-tope-nested-rec-or-d4.expect.yaml
     test/typecheck/cases/happy-tope-nested-rec-or-d5.expect.yaml
     test/typecheck/cases/happy-tope-nested-rec-or-d6.expect.yaml
     test/typecheck/cases/happy-tope-nested-rec-or.expect.yaml
+    test/typecheck/cases/happy-tope-param.expect.yaml
     test/typecheck/cases/happy-tope-rec-and-restrict.expect.yaml
     test/typecheck/cases/happy-tope-shapes.expect.yaml
     test/typecheck/cases/ill-bare-lambda-compute.expect.yaml
@@ -277,6 +412,10 @@
     test/typecheck/cases/ill-data-compute-kind.expect.yaml
     test/typecheck/cases/ill-data-compute-mismatch.expect.yaml
     test/typecheck/cases/ill-data-compute-unknown.expect.yaml
+    test/typecheck/cases/ill-data-cube-index.expect.yaml
+    test/typecheck/cases/ill-data-cube-param.expect.yaml
+    test/typecheck/cases/ill-data-cube-universe-field.expect.yaml
+    test/typecheck/cases/ill-data-cube-universe-index.expect.yaml
     test/typecheck/cases/ill-data-duplicate-constructor.expect.yaml
     test/typecheck/cases/ill-data-eliminator-duplicate.expect.yaml
     test/typecheck/cases/ill-data-eliminator-mismatch.expect.yaml
@@ -284,7 +423,15 @@
     test/typecheck/cases/ill-data-fun-field.expect.yaml
     test/typecheck/cases/ill-data-index-mismatch.expect.yaml
     test/typecheck/cases/ill-data-missing-return.expect.yaml
+    test/typecheck/cases/ill-data-modal-cube-field.expect.yaml
+    test/typecheck/cases/ill-data-modal-kind-param-lock.expect.yaml
+    test/typecheck/cases/ill-data-modal-kind-param-point.expect.yaml
+    test/typecheck/cases/ill-data-modal-shape-field-lock.expect.yaml
+    test/typecheck/cases/ill-data-modal-tope-field.expect.yaml
+    test/typecheck/cases/ill-data-modal-tope-index.expect.yaml
+    test/typecheck/cases/ill-data-modal-type-field.expect.yaml
     test/typecheck/cases/ill-data-negative.expect.yaml
+    test/typecheck/cases/ill-data-no-sharp-eliminator.expect.yaml
     test/typecheck/cases/ill-data-non-u-sort.expect.yaml
     test/typecheck/cases/ill-data-path-endpoint.expect.yaml
     test/typecheck/cases/ill-data-path-higher-field.expect.yaml
@@ -292,11 +439,18 @@
     test/typecheck/cases/ill-data-path-indexed.expect.yaml
     test/typecheck/cases/ill-data-path-unannotated.expect.yaml
     test/typecheck/cases/ill-data-return-type.expect.yaml
-    test/typecheck/cases/ill-data-shape-field.expect.yaml
+    test/typecheck/cases/ill-data-shape-index-named.expect.yaml
+    test/typecheck/cases/ill-data-shape-index.expect.yaml
+    test/typecheck/cases/ill-data-shape-param.expect.yaml
+    test/typecheck/cases/ill-data-tope-family-field.expect.yaml
+    test/typecheck/cases/ill-data-tope-family-index.expect.yaml
+    test/typecheck/cases/ill-data-tope-field.expect.yaml
+    test/typecheck/cases/ill-data-tope-index.expect.yaml
     test/typecheck/cases/ill-duplicate.expect.yaml
     test/typecheck/cases/ill-hole-infer.expect.yaml
     test/typecheck/cases/ill-hole-pattern-binder-names.expect.yaml
     test/typecheck/cases/ill-hole-recor-branch.expect.yaml
+    test/typecheck/cases/ill-hole-recor-guard-point.expect.yaml
     test/typecheck/cases/ill-hole-unsolved.expect.yaml
     test/typecheck/cases/ill-implicit.expect.yaml
     test/typecheck/cases/ill-interval-no-totality.expect.yaml
@@ -305,6 +459,13 @@
     test/typecheck/cases/ill-issue-13-flip-flip-wrong.expect.yaml
     test/typecheck/cases/ill-issue-206-families-of-extension.expect.yaml
     test/typecheck/cases/ill-issue-33-restriction-coherence.expect.yaml
+    test/typecheck/cases/ill-kind-app-argument-tope.expect.yaml
+    test/typecheck/cases/ill-kind-define-tope.expect.yaml
+    test/typecheck/cases/ill-kind-id-carrier-tope.expect.yaml
+    test/typecheck/cases/ill-kind-sigma-body-tope.expect.yaml
+    test/typecheck/cases/ill-kind-sigma-cube-universe.expect.yaml
+    test/typecheck/cases/ill-kind-sigma-tope-family.expect.yaml
+    test/typecheck/cases/ill-kind-sigma-tope.expect.yaml
     test/typecheck/cases/ill-lattice-endpoints-distinct.expect.yaml
     test/typecheck/cases/ill-lattice-eq-no-leak.expect.yaml
     test/typecheck/cases/ill-lattice-non-law.expect.yaml
@@ -318,6 +479,11 @@
     test/typecheck/cases/ill-match-duplicate-branch.expect.yaml
     test/typecheck/cases/ill-match-missing-branch.expect.yaml
     test/typecheck/cases/ill-match-missing-path-branch.expect.yaml
+    test/typecheck/cases/ill-match-modal-hit.expect.yaml
+    test/typecheck/cases/ill-match-modal-ih-remodalized.expect.yaml
+    test/typecheck/cases/ill-match-modal-inaccessible.expect.yaml
+    test/typecheck/cases/ill-match-modal-motive.expect.yaml
+    test/typecheck/cases/ill-match-modal-sharp.expect.yaml
     test/typecheck/cases/ill-match-not-data.expect.yaml
     test/typecheck/cases/ill-match-unknown-branch.expect.yaml
     test/typecheck/cases/ill-modal-b-no-dist.expect.yaml
@@ -353,15 +519,40 @@
     test/typecheck/cases/ill-repeated-binder-pair.expect.yaml
     test/typecheck/cases/ill-repeated-binder-params.expect.yaml
     test/typecheck/cases/ill-restrict-face-disjoint.expect.yaml
+    test/typecheck/cases/ill-rstt-auxiliary-interval.expect.yaml
+    test/typecheck/cases/ill-rstt-boundary-obligation.expect.yaml
+    test/typecheck/cases/ill-rstt-dependent-cube-family.expect.yaml
+    test/typecheck/cases/ill-rstt-dependent-cube-instance.expect.yaml
+    test/typecheck/cases/ill-rstt-dependent-cube.expect.yaml
+    test/typecheck/cases/ill-rstt-false-bottom.expect.yaml
+    test/typecheck/cases/ill-rstt-false-refl.expect.yaml
+    test/typecheck/cases/ill-rstt-inductive.expect.yaml
+    test/typecheck/cases/ill-rstt-meta-binder-in-face.expect.yaml
+    test/typecheck/cases/ill-rstt-meta-binder.expect.yaml
+    test/typecheck/cases/ill-rstt-meta-prefix.expect.yaml
+    test/typecheck/cases/ill-rstt-modal.expect.yaml
+    test/typecheck/cases/ill-rstt-option.expect.yaml
+    test/typecheck/cases/ill-rstt-packed-cube-family.expect.yaml
+    test/typecheck/cases/ill-rstt-packed-type-family.expect.yaml
+    test/typecheck/cases/ill-rstt-postulate.expect.yaml
+    test/typecheck/cases/ill-rstt-restriction-in-domain.expect.yaml
+    test/typecheck/cases/ill-rstt-restriction.expect.yaml
+    test/typecheck/cases/ill-rstt-shape-boundary.expect.yaml
+    test/typecheck/cases/ill-rstt-shape-domain.expect.yaml
+    test/typecheck/cases/ill-rstt-uncovered-endpoints.expect.yaml
+    test/typecheck/cases/ill-rstt-unsupported.expect.yaml
     test/typecheck/cases/ill-section-end-mismatch.expect.yaml
     test/typecheck/cases/ill-section-not-closed.expect.yaml
     test/typecheck/cases/ill-section-unexpected-end.expect.yaml
     test/typecheck/cases/ill-set-option-render.expect.yaml
     test/typecheck/cases/ill-set-option-unknown.expect.yaml
     test/typecheck/cases/ill-set-option-verbosity.expect.yaml
+    test/typecheck/cases/ill-shape-dependency-option.expect.yaml
     test/typecheck/cases/ill-subtype-variance-pi-shape-domain.expect.yaml
     test/typecheck/cases/ill-subtype-variance-restriction-faces.expect.yaml
     test/typecheck/cases/ill-subtype-variance-tope-family.expect.yaml
+    test/typecheck/cases/ill-tope-family-domain-non-instance.expect.yaml
+    test/typecheck/cases/ill-tope-family-domain-same-domain.expect.yaml
     test/typecheck/cases/ill-tope-nested-rec-or-inner-singleton-d4.expect.yaml
     test/typecheck/cases/ill-tope-nested-rec-or-inner-singleton-d5.expect.yaml
     test/typecheck/cases/ill-tope-nested-rec-or-inner-singleton-d6.expect.yaml
@@ -371,8 +562,8 @@
     test/typecheck/cases/ill-tope-not-satisfied-rec-or-boundary-equiv.expect.yaml
     test/typecheck/cases/ill-tope-not-satisfied-rec-or-open-singleton.expect.yaml
     test/typecheck/cases/ill-tope-not-satisfied-tope-family-subtyping.expect.yaml
-    test/typecheck/cases/ill-tope-param-lambda.expect.yaml
-    test/typecheck/cases/ill-tope-param-typefun.expect.yaml
+    test/typecheck/cases/ill-tope-param-entailment.expect.yaml
+    test/typecheck/cases/ill-tope-param-instance.expect.yaml
     test/typecheck/cases/ill-tope-pattern-binder-bare.expect.yaml
     test/typecheck/cases/ill-tope-recOR-non-discrete.expect.yaml
     test/typecheck/cases/ill-tope-subtle-app-shape-5d.expect.yaml
@@ -390,10 +581,31 @@
     test/typecheck/cases/ill-unused-assumption.expect.yaml
     test/typecheck/cases/uses-whnf-discarded.expect.yaml
     test/typecheck/cases/uses-whnf-masked-transitive.expect.yaml
+    test/typecheck/cases/warn-free-standing-restriction-assumed.expect.yaml
+    test/typecheck/cases/warn-free-standing-restriction-option.expect.yaml
+    test/typecheck/cases/warn-meta-binder-inside-term.expect.yaml
     test/typecheck/cases/warn-meta-prefix-object-position.expect.yaml
     test/typecheck/cases/warn-meta-prefix-option-structural.expect.yaml
     test/typecheck/cases/warn-meta-prefix-section.expect.yaml
     test/typecheck/cases/warn-meta-prefix-strict-only.expect.yaml
+    test/typecheck/cases/warn-overhang-controls.expect.yaml
+    test/typecheck/cases/warn-rstt-bare-tope-binder-in-term.expect.yaml
+    test/typecheck/cases/warn-rstt-bare-tope-object-point.expect.yaml
+    test/typecheck/cases/warn-rstt-default.expect.yaml
+    test/typecheck/cases/warn-rstt-escape-beta.expect.yaml
+    test/typecheck/cases/warn-rstt-escape-iota.expect.yaml
+    test/typecheck/cases/warn-rstt-escape-let.expect.yaml
+    test/typecheck/cases/warn-rstt-escape-pair.expect.yaml
+    test/typecheck/cases/warn-rstt-escape-section.expect.yaml
+    test/typecheck/cases/warn-rstt-escape-tope-family.expect.yaml
+    test/typecheck/cases/warn-rstt-escape-unfolding.expect.yaml
+    test/typecheck/cases/warn-rstt-inductive.expect.yaml
+    test/typecheck/cases/warn-rstt-modal.expect.yaml
+    test/typecheck/cases/warn-rstt-reset.expect.yaml
+    test/typecheck/cases/warn-rstt-shape-dependency.expect.yaml
+    test/typecheck/cases/warn-rstt-warn-overrides-standalone.expect.yaml
+    test/typecheck/cases/warn-tope-family-domain-non-instance.expect.yaml
+    test/typecheck/cases/warn-tope-family-domain-option.expect.yaml
     test/typecheck/cases/literate-fence/expect.yaml
     test/typecheck/cases/multimodule-first-error/expect.yaml
     test/typecheck/cases/multimodule-two-ok/expect.yaml
@@ -437,11 +649,13 @@
       Rzk.TypeCheck.Display
       Rzk.TypeCheck.Error
       Rzk.TypeCheck.Eval
+      Rzk.TypeCheck.Fragment.RSTT
       Rzk.TypeCheck.Judgements
       Rzk.TypeCheck.MetaPrefix
       Rzk.TypeCheck.Monad
       Rzk.TypeCheck.NbE
       Rzk.TypeCheck.Render
+      Rzk.TypeCheck.Schematic
       Rzk.TypeCheck.Unify
       Rzk.Version
   other-modules:
@@ -462,7 +676,7 @@
     , bytestring >=0.10.8.2 && <1
     , containers >=0.6 && <1
     , directory >=1.2.7.0 && <2
-    , free-foil ==0.4.*
+    , free-foil ==0.6.*
     , gitrev >=1.3.1 && <2
     , kind-generics >=0.5 && <1
     , kind-generics-th >=0.2 && <1
@@ -516,7 +730,7 @@
     , bytestring >=0.10.8.2 && <1
     , containers >=0.6 && <1
     , directory >=1.2.7.0 && <2
-    , free-foil ==0.4.*
+    , free-foil ==0.6.*
     , gitrev >=1.3.1 && <2
     , kind-generics >=0.5 && <1
     , kind-generics-th >=0.2 && <1
@@ -553,7 +767,7 @@
     , containers >=0.6 && <1
     , directory >=1.2.7.0 && <2
     , doctest-parallel >=0.3 && <1
-    , free-foil ==0.4.*
+    , free-foil ==0.6.*
     , gitrev >=1.3.1 && <2
     , kind-generics >=0.5 && <1
     , kind-generics-th >=0.2 && <1
@@ -579,6 +793,8 @@
       Rzk.ParserSpec
       Rzk.PositionEncodingSpec
       Rzk.RefIndexSpec
+      Rzk.RSTTSafeSpec
+      Rzk.SchematicSpec
       Rzk.SemanticTokensSpec
       Rzk.TypeCheckSpec
       Rzk.VersionSpec
@@ -602,7 +818,7 @@
     , containers >=0.6 && <1
     , directory >=1.2.7.0 && <2
     , filepath >=1.4 && <2
-    , free-foil ==0.4.*
+    , free-foil ==0.6.*
     , gitrev >=1.3.1 && <2
     , hspec >=2.7 && <3
     , hspec-discover >=2.7 && <3
diff --git a/src/Language/Rzk/Foil/Convert.hs b/src/Language/Rzk/Foil/Convert.hs
--- a/src/Language/Rzk/Foil/Convert.hs
+++ b/src/Language/Rzk/Foil/Convert.hs
@@ -199,9 +199,13 @@
       Rzk.ReflTermType _loc x tA -> Refl (Just (go x, Just (go tA)))
       Rzk.IdJ _loc a b c d e f -> IdJ (go a) (go b) (go c) (go d) (go e) (go f)
       Rzk.Match _loc scrut branches ->
-        Match (go scrut) Nothing (map matchBranch branches)
+        Match Id (go scrut) Nothing (map matchBranch branches)
       Rzk.MatchInto _loc scrut motive branches ->
-        Match (go scrut) (Just (go motive)) (map matchBranch branches)
+        Match Id (go scrut) (Just (go motive)) (map matchBranch branches)
+      Rzk.MatchModal _loc md scrut branches ->
+        Match (Free.toModality md) (go scrut) Nothing (map matchBranch branches)
+      Rzk.MatchModalInto _loc md scrut motive branches ->
+        Match (Free.toModality md) (go scrut) (Just (go motive)) (map matchBranch branches)
       Rzk.TypeAsc _loc x t -> TypeAsc (go x) (go t)
 
       -- A binder may name several variables sharing a type, e.g. @(x y : A)@,
diff --git a/src/Language/Rzk/Foil/Print.hs b/src/Language/Rzk/Foil/Print.hs
--- a/src/Language/Rzk/Foil/Print.hs
+++ b/src/Language/Rzk/Foil/Print.hs
@@ -194,10 +194,12 @@
     go (Refl (Just (t, Just ty))) = Rzk.ReflTermType loc (go t) (go ty)
     go (IdJ a b c d e f) = Rzk.IdJ loc (go a) (go b) (go c) (go d) (go e) (go f)
 
-    go (Match scrut mmotive branches) =
-      case mmotive of
-        Nothing     -> Rzk.Match loc (go scrut) (map goBranch branches)
-        Just motive -> Rzk.MatchInto loc (go scrut) (go motive) (map goBranch branches)
+    go (Match md scrut mmotive branches) =
+      case (md, mmotive) of
+        (Id, Nothing)     -> Rzk.Match loc (go scrut) (map goBranch branches)
+        (Id, Just motive) -> Rzk.MatchInto loc (go scrut) (go motive) (map goBranch branches)
+        (_, Nothing)      -> Rzk.MatchModal loc (goMod md) (go scrut) (map goBranch branches)
+        (_, Just motive)  -> Rzk.MatchModalInto loc (goMod md) (go scrut) (go motive) (map goBranch branches)
       where
         goBranch (con, chain) = Rzk.MatchBranch loc (fromVarIdent con) pats body
           where (pats, body) = matchArms used supply names chain
diff --git a/src/Language/Rzk/Foil/Syntax.hs b/src/Language/Rzk/Foil/Syntax.hs
--- a/src/Language/Rzk/Foil/Syntax.hs
+++ b/src/Language/Rzk/Foil/Syntax.hs
@@ -45,6 +45,7 @@
                                                  alphaEquiv,
                                                  substitute, unsafeEqAST)
 import           Data.ZipMatchK                 (Mappings (..),
+                                                 ZipMatchFoldK,
                                                  ZipMatchK (..),
                                                  zipMatchViaChooseLeft,
                                                  zipMatchViaEq)
@@ -120,7 +121,7 @@
     -- branch per constructor (constructor name, arm chain). The node is
     -- elaborated into the generated eliminator during typechecking, so a
     -- /typed/ match never exists.
-    | MatchF term (Maybe term) [(VarIdent, term)]
+    | MatchF TModality term (Maybe term) [(VarIdent, term)]
     -- | One branch binder of a match; the body is the next arm, or the branch
     -- body once the binders run out. Valid only inside a 'MatchF' branch; the
     -- parser cannot produce it anywhere else.
@@ -169,6 +170,7 @@
   zipMatchWithK = zipMatchViaEq
 
 instance ZipMatchK LambdaParam
+instance ZipMatchFoldK LambdaParam
 
 -- | The node matcher, TH-derived: an explicit instance, so no @Generics.Kind@
 -- view is rebuilt per comparison. It drives 'Control.Monad.Free.Foil.alphaEquiv'
@@ -568,7 +570,7 @@
 pattern SecondT info t = Node (AnnSig info (SecondF t))
 pattern ReflT info mx = Node (AnnSig info (ReflF mx))
 pattern IdJT info a b c d e f = Node (AnnSig info (IdJF a b c d e f))
-pattern MatchT info scrut mmotive branches = Node (AnnSig info (MatchF scrut mmotive branches))
+pattern MatchT info md scrut mmotive branches = Node (AnnSig info (MatchF md scrut mmotive branches))
 pattern MatchArmT info orig arm = Node (AnnSig info (MatchArmF orig arm))
 pattern UnitT info = Node (AnnSig info UnitF)
 pattern TypeUnitT info = Node (AnnSig info TypeUnitF)
@@ -641,7 +643,7 @@
 pattern Second t = UntypedNode (SecondF t)
 pattern Refl mx = UntypedNode (ReflF mx)
 pattern IdJ a b c d e f = UntypedNode (IdJF a b c d e f)
-pattern Match scrut mmotive branches = UntypedNode (MatchF scrut mmotive branches)
+pattern Match md scrut mmotive branches = UntypedNode (MatchF md scrut mmotive branches)
 pattern MatchArm orig arm = UntypedNode (MatchArmF orig arm)
 pattern Unit = UntypedNode UnitF
 pattern TypeUnit = UntypedNode TypeUnitF
diff --git a/src/Language/Rzk/Syntax/Abs.hs b/src/Language/Rzk/Syntax/Abs.hs
--- a/src/Language/Rzk/Syntax/Abs.hs
+++ b/src/Language/Rzk/Syntax/Abs.hs
@@ -230,6 +230,8 @@
     | IdJ a (Term' a) (Term' a) (Term' a) (Term' a) (Term' a) (Term' a)
     | Match a (Term' a) [MatchBranch' a]
     | MatchInto a (Term' a) (Term' a) [MatchBranch' a]
+    | MatchModal a (Modality' a) (Term' a) [MatchBranch' a]
+    | MatchModalInto a (Modality' a) (Term' a) (Term' a) [MatchBranch' a]
     | Hole a (HoleIdent' a)
     | Var a (VarIdent' a)
     | TypeAsc a (Term' a) (Term' a)
@@ -534,6 +536,8 @@
     IdJ p _ _ _ _ _ _ -> p
     Match p _ _ -> p
     MatchInto p _ _ _ -> p
+    MatchModal p _ _ _ -> p
+    MatchModalInto p _ _ _ _ -> p
     Hole p _ -> p
     Var p _ -> p
     TypeAsc p _ _ -> p
diff --git a/src/Language/Rzk/Syntax/Par.hs b/src/Language/Rzk/Syntax/Par.hs
--- a/src/Language/Rzk/Syntax/Par.hs
+++ b/src/Language/Rzk/Syntax/Par.hs
@@ -48,3106 +48,3165 @@
   , pModality
   , pModComp
   , pModalColon
-  , pTerm7
-  , pTerm5
-  , pTerm4
-  , pTerm3
-  , pTerm2
-  , pTerm6
-  , pTerm1
-  , pTerm
-  , pListTerm
-  ) where
-
-import Prelude
-
-import qualified Language.Rzk.Syntax.Abs
-import Language.Rzk.Syntax.Lex
-import qualified Data.Text
-import qualified Control.Monad as Happy_Prelude
-import qualified Data.Bool as Happy_Prelude
-import qualified Data.Function as Happy_Prelude
-import qualified Data.Int as Happy_Prelude
-import qualified Data.List as Happy_Prelude
-import qualified Data.Maybe as Happy_Prelude
-import qualified Data.String as Happy_Prelude
-import qualified Data.Tuple as Happy_Prelude
-import qualified GHC.Err as Happy_Prelude
-import qualified GHC.Num as Happy_Prelude
-import qualified Text.Show as Happy_Prelude
-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 2.2
-
-newtype HappyAbsSyn  = HappyAbsSyn HappyAny
-#if __GLASGOW_HASKELL__ >= 607
-type HappyAny = Happy_GHC_Exts.Any
-#else
-type HappyAny = forall a . a
-#endif
-newtype HappyWrap47 = HappyWrap47 ((Language.Rzk.Syntax.Abs.BNFC'Position, String))
-happyIn47 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, String)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdentToken))
-happyIn48 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdentToken)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdentToken))
-happyIn49 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdentToken)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module))
-happyIn50 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent))
-happyIn51 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent))
-happyIn52 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent]))
-happyIn53 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent])) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl))
-happyIn54 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language))
-happyIn55 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command))
-happyIn56 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command]))
-happyIn57 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command])) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars))
-happyIn58 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName))
-happyIn59 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataSort))
-happyIn60 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataSort)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataBody))
-happyIn61 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataBody)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Constructor))
-happyIn62 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Constructor)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Constructor]))
-happyIn63 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Constructor])) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ConstructorType))
-happyIn64 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ConstructorType)) -> (HappyAbsSyn )
-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap64 x)
-{-# INLINE happyIn64 #-}
-happyOut64 :: (HappyAbsSyn ) -> HappyWrap64
-happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut64 #-}
-newtype HappyWrap65 = HappyWrap65 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataElim))
-happyIn65 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataElim)) -> (HappyAbsSyn )
-happyIn65 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap65 x)
-{-# INLINE happyIn65 #-}
-happyOut65 :: (HappyAbsSyn ) -> HappyWrap65
-happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut65 #-}
-newtype HappyWrap66 = HappyWrap66 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.DataElim]))
-happyIn66 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.DataElim])) -> (HappyAbsSyn )
-happyIn66 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap66 x)
-{-# INLINE happyIn66 #-}
-happyOut66 :: (HappyAbsSyn ) -> HappyWrap66
-happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut66 #-}
-newtype HappyWrap67 = HappyWrap67 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.MatchBranch))
-happyIn67 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.MatchBranch)) -> (HappyAbsSyn )
-happyIn67 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap67 x)
-{-# INLINE happyIn67 #-}
-happyOut67 :: (HappyAbsSyn ) -> HappyWrap67
-happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut67 #-}
-newtype HappyWrap68 = HappyWrap68 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.MatchBranch]))
-happyIn68 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.MatchBranch])) -> (HappyAbsSyn )
-happyIn68 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap68 x)
-{-# INLINE happyIn68 #-}
-happyOut68 :: (HappyAbsSyn ) -> HappyWrap68
-happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut68 #-}
-newtype HappyWrap69 = HappyWrap69 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern))
-happyIn69 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern)) -> (HappyAbsSyn )
-happyIn69 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap69 x)
-{-# INLINE happyIn69 #-}
-happyOut69 :: (HappyAbsSyn ) -> HappyWrap69
-happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut69 #-}
-newtype HappyWrap70 = HappyWrap70 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern]))
-happyIn70 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern])) -> (HappyAbsSyn )
-happyIn70 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap70 x)
-{-# INLINE happyIn70 #-}
-happyOut70 :: (HappyAbsSyn ) -> HappyWrap70
-happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut70 #-}
-newtype HappyWrap71 = HappyWrap71 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern))
-happyIn71 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern)) -> (HappyAbsSyn )
-happyIn71 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap71 x)
-{-# INLINE happyIn71 #-}
-happyOut71 :: (HappyAbsSyn ) -> HappyWrap71
-happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut71 #-}
-newtype HappyWrap72 = HappyWrap72 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern]))
-happyIn72 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern])) -> (HappyAbsSyn )
-happyIn72 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap72 x)
-{-# INLINE happyIn72 #-}
-happyOut72 :: (HappyAbsSyn ) -> HappyWrap72
-happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut72 #-}
-newtype HappyWrap73 = HappyWrap73 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param))
-happyIn73 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param)) -> (HappyAbsSyn )
-happyIn73 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap73 x)
-{-# INLINE happyIn73 #-}
-happyOut73 :: (HappyAbsSyn ) -> HappyWrap73
-happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut73 #-}
-newtype HappyWrap74 = HappyWrap74 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param]))
-happyIn74 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param])) -> (HappyAbsSyn )
-happyIn74 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap74 x)
-{-# INLINE happyIn74 #-}
-happyOut74 :: (HappyAbsSyn ) -> HappyWrap74
-happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut74 #-}
-newtype HappyWrap75 = HappyWrap75 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Bind))
-happyIn75 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Bind)) -> (HappyAbsSyn )
-happyIn75 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap75 x)
-{-# INLINE happyIn75 #-}
-happyOut75 :: (HappyAbsSyn ) -> HappyWrap75
-happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut75 #-}
-newtype HappyWrap76 = HappyWrap76 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl))
-happyIn76 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl)) -> (HappyAbsSyn )
-happyIn76 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap76 x)
-{-# INLINE happyIn76 #-}
-happyOut76 :: (HappyAbsSyn ) -> HappyWrap76
-happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut76 #-}
-newtype HappyWrap77 = HappyWrap77 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SigmaParam))
-happyIn77 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SigmaParam)) -> (HappyAbsSyn )
-happyIn77 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap77 x)
-{-# INLINE happyIn77 #-}
-happyOut77 :: (HappyAbsSyn ) -> HappyWrap77
-happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut77 #-}
-newtype HappyWrap78 = HappyWrap78 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.SigmaParam]))
-happyIn78 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.SigmaParam])) -> (HappyAbsSyn )
-happyIn78 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap78 x)
-{-# INLINE happyIn78 #-}
-happyOut78 :: (HappyAbsSyn ) -> HappyWrap78
-happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut78 #-}
-newtype HappyWrap79 = HappyWrap79 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction))
-happyIn79 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction)) -> (HappyAbsSyn )
-happyIn79 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap79 x)
-{-# INLINE happyIn79 #-}
-happyOut79 :: (HappyAbsSyn ) -> HappyWrap79
-happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut79 #-}
-newtype HappyWrap80 = HappyWrap80 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction]))
-happyIn80 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction])) -> (HappyAbsSyn )
-happyIn80 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap80 x)
-{-# INLINE happyIn80 #-}
-happyOut80 :: (HappyAbsSyn ) -> HappyWrap80
-happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut80 #-}
-newtype HappyWrap81 = HappyWrap81 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Modality))
-happyIn81 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Modality)) -> (HappyAbsSyn )
-happyIn81 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap81 x)
-{-# INLINE happyIn81 #-}
-happyOut81 :: (HappyAbsSyn ) -> HappyWrap81
-happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut81 #-}
-newtype HappyWrap82 = HappyWrap82 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ModComp))
-happyIn82 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ModComp)) -> (HappyAbsSyn )
-happyIn82 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap82 x)
-{-# INLINE happyIn82 #-}
-happyOut82 :: (HappyAbsSyn ) -> HappyWrap82
-happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut82 #-}
-newtype HappyWrap83 = HappyWrap83 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ModalColon))
-happyIn83 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ModalColon)) -> (HappyAbsSyn )
-happyIn83 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap83 x)
-{-# INLINE happyIn83 #-}
-happyOut83 :: (HappyAbsSyn ) -> HappyWrap83
-happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut83 #-}
-newtype HappyWrap84 = HappyWrap84 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
-happyIn84 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
-happyIn84 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap84 x)
-{-# INLINE happyIn84 #-}
-happyOut84 :: (HappyAbsSyn ) -> HappyWrap84
-happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut84 #-}
-newtype HappyWrap85 = HappyWrap85 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
-happyIn85 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
-happyIn85 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap85 x)
-{-# INLINE happyIn85 #-}
-happyOut85 :: (HappyAbsSyn ) -> HappyWrap85
-happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut85 #-}
-newtype HappyWrap86 = HappyWrap86 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
-happyIn86 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
-happyIn86 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap86 x)
-{-# INLINE happyIn86 #-}
-happyOut86 :: (HappyAbsSyn ) -> HappyWrap86
-happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut86 #-}
-newtype HappyWrap87 = HappyWrap87 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
-happyIn87 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
-happyIn87 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap87 x)
-{-# INLINE happyIn87 #-}
-happyOut87 :: (HappyAbsSyn ) -> HappyWrap87
-happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut87 #-}
-newtype HappyWrap88 = HappyWrap88 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
-happyIn88 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
-happyIn88 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap88 x)
-{-# INLINE happyIn88 #-}
-happyOut88 :: (HappyAbsSyn ) -> HappyWrap88
-happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut88 #-}
-newtype HappyWrap89 = HappyWrap89 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
-happyIn89 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
-happyIn89 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap89 x)
-{-# INLINE happyIn89 #-}
-happyOut89 :: (HappyAbsSyn ) -> HappyWrap89
-happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut89 #-}
-newtype HappyWrap90 = HappyWrap90 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
-happyIn90 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
-happyIn90 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap90 x)
-{-# INLINE happyIn90 #-}
-happyOut90 :: (HappyAbsSyn ) -> HappyWrap90
-happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut90 #-}
-newtype HappyWrap91 = HappyWrap91 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
-happyIn91 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
-happyIn91 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap91 x)
-{-# INLINE happyIn91 #-}
-happyOut91 :: (HappyAbsSyn ) -> HappyWrap91
-happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut91 #-}
-newtype HappyWrap92 = HappyWrap92 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term]))
-happyIn92 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term])) -> (HappyAbsSyn )
-happyIn92 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap92 x)
-{-# INLINE happyIn92 #-}
-happyOut92 :: (HappyAbsSyn ) -> HappyWrap92
-happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut92 #-}
-happyInTok :: (Token) -> (HappyAbsSyn )
-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn ) -> (Token)
-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOutTok #-}
-
-
-{-# NOINLINE happyTokenStrings #-}
-happyTokenStrings = ["'#assume'","'#check'","'#compute'","'#compute-nf'","'#compute-whnf'","'#data'","'#def'","'#define'","'#end'","'#lang'","'#postulate'","'#section'","'#set-option'","'#unset-option'","'#variable'","'#variables'","'$extract$'","'('","')'","'*'","'*_1'","'*\8321'","','","'->'","'/'","'/\\\\'","'0_2'","'0_I'","'0\7522'","'0\8322'","'1'","'1_2'","'1_I'","'1\7522'","'1\8322'","'2'","':'","':='","':_#'","':_b'","':_id'","':_op'","':\7506\7510'","':\9837'","':\9839'","';'","'<='","'='","'==='","'=>'","'=_{'","'BOT'","'CUBE'","'II'","'Sigma'","'TOP'","'TOPE'","'U'","'Unit'","'['","'\\\\'","'\\\\/'","']'","'_#'","'_b'","'_id'","'_op'","'as'","'compute'","'eliminate'","'first'","'flip_op'","'flip\7506\7510'","'idJ'","'in'","'inf'","'into'","'inv_op'","'inv\7506\7510'","'let'","'match'","'mod'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'sup'","'unflip_op'","'unflip\7506\7510'","'uninv_op'","'uninv\7506\7510'","'unit'","'uses'","'with'","'|'","'|->'","'}'","'\215'","'\931'","'\960\8321'","'\960\8322'","'\7506\7510'","'\8594'","'\8614'","'\8658'","'\8721'","'\8743'","'\8744'","'\8801'","'\8804'","'\8851'","'\8852'","'\8868'","'\8869'","'\9837'","'\9839'","'\120128'","L_quoted","L_VarIdentToken","L_HoleIdentToken","%eof"]
-
-happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\xff\xff\xff\xff\x9d\xff\xff\xff\xa4\xff\xff\xff\xa4\xff\xff\xff\x21\x00\x00\x00\xcb\xff\xff\xff\xbe\x0c\x00\x00\xbe\x0c\x00\x00\xd5\xff\xff\xff\xc1\xff\xff\xff\x39\x00\x00\x00\x4d\x00\x00\x00\x1d\x00\x00\x00\x1d\x00\x00\x00\x84\x00\x00\x00\xbd\xff\xff\xff\xbd\xff\xff\xff\x37\x00\x00\x00\x37\x00\x00\x00\x41\x00\x00\x00\x41\x00\x00\x00\x41\x00\x00\x00\x41\x00\x00\x00\xc4\x00\x00\x00\xc4\x00\x00\x00\xd4\x00\x00\x00\x59\x00\x00\x00\xd4\x00\x00\x00\xd4\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x8f\x01\x00\x00\x8f\x01\x00\x00\xa3\x03\x00\x00\xf7\x01\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\xff\xf7\x01\x00\x00\x00\x00\x00\x00\x91\x01\x00\x00\xed\xff\xff\xff\xd8\xff\xff\xff\x10\x01\x00\x00\x43\x01\x00\x00\x00\x00\x00\x00\xc7\x00\x00\x00\x79\x00\x00\x00\x8f\x01\x00\x00\xef\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x00\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xfd\x01\x00\x00\xf7\x01\x00\x00\x8f\x01\x00\x00\x00\x00\x00\x00\x1a\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\x21\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\x27\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\xc3\x00\x00\x00\x56\x00\x00\x00\xc3\x00\x00\x00\xf5\x00\x00\x00\xef\xff\xff\xff\xc3\x00\x00\x00\xa9\x01\x00\x00\xc3\x00\x00\x00\xc3\x00\x00\x00\x0d\x00\x00\x00\xc3\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x01\x00\x00\xe1\x00\x00\x00\xe1\x00\x00\x00\x5e\x01\x00\x00\x18\x01\x00\x00\x2e\x00\x00\x00\x18\x01\x00\x00\x00\x00\x00\x00\xaa\x0c\x00\x00\x7a\x01\x00\x00\x24\x01\x00\x00\x13\x01\x00\x00\x00\x00\x00\x00\x24\x01\x00\x00\x24\x01\x00\x00\xa9\x01\x00\x00\x78\x01\x00\x00\x2c\x01\x00\x00\x00\x00\x00\x00\x22\x01\x00\x00\x2c\x01\x00\x00\x2a\x01\x00\x00\x2c\x01\x00\x00\x00\x00\x00\x00\xb7\x01\x00\x00\x59\x01\x00\x00\x59\x01\x00\x00\x2a\x01\x00\x00\x59\x01\x00\x00\x59\x01\x00\x00\x48\x01\x00\x00\x85\x01\x00\x00\x6c\x01\x00\x00\x6c\x01\x00\x00\xbd\xff\xff\xff\x6c\x01\x00\x00\xa8\x01\x00\x00\xc7\x01\x00\x00\x72\x01\x00\x00\x72\x01\x00\x00\xef\xff\xff\xff\xf4\xff\xff\xff\xaf\x01\x00\x00\x93\x01\x00\x00\x93\x01\x00\x00\x93\x01\x00\x00\xb5\x01\x00\x00\xb8\x01\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xb8\x01\x00\x00\xb8\x01\x00\x00\x22\x02\x00\x00\x07\x02\x00\x00\xcc\x01\x00\x00\xcb\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xcb\x01\x00\x00\xcb\x01\x00\x00\xcb\x01\x00\x00\xcb\x01\x00\x00\xcb\x01\x00\x00\xcb\x01\x00\x00\xd8\x01\x00\x00\xd8\x01\x00\x00\xf0\x01\x00\x00\xf0\x01\x00\x00\xd6\x01\x00\x00\xd6\x01\x00\x00\x00\x00\x00\x00\xd6\x01\x00\x00\x30\x02\x00\x00\x14\x02\x00\x00\x15\x02\x00\x00\x15\x02\x00\x00\x15\x02\x00\x00\x15\x02\x00\x00\xbe\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x02\x00\x00\x76\x02\x00\x00\x89\x02\x00\x00\x00\x00\x00\x00\x7f\x02\x00\x00\x00\x00\x00\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x5f\x02\x00\x00\x5f\x02\x00\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x02\x00\x00\xa3\x02\x00\x00\xbe\x0c\x00\x00\x64\x02\x00\x00\x00\x00\x00\x00\xbd\xff\xff\xff\x64\x02\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\x7e\x02\x00\x00\x7e\x02\x00\x00\x00\x00\x00\x00\x7e\x02\x00\x00\xe3\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x2a\x01\x00\x00\x09\x00\x00\x00\xb3\x0c\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xe2\x02\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x8f\x01\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xc1\x00\x00\x00\xa7\x00\x00\x00\xef\xff\xff\xff\x2a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\xf5\xff\xff\xff\xef\xff\xff\xff\xf7\x01\x00\x00\x02\x00\x00\x00\xd8\x02\x00\x00\x85\x00\x00\x00\x8f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x2a\x01\x00\x00\x41\x0c\x00\x00\xf7\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xde\x00\x00\x00\xde\x00\x00\x00\xde\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xbc\x0c\x00\x00\xea\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xeb\x02\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\xe1\x02\x00\x00\x8f\x01\x00\x00\xef\xff\xff\xff\xa0\x02\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\xf7\x02\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc5\x0c\x00\x00\x08\x03\x00\x00\xce\x0c\x00\x00\x13\x03\x00\x00\xd0\x02\x00\x00\x00\x00\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\xa9\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\x2a\x01\x00\x00\xfb\x02\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x10\x03\x00\x00\x11\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x60\x00\x00\x00\xc8\x00\x00\x00\x15\x01\x00\x00\x16\x01\x00\x00\xc6\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x03\x00\x00\xef\xff\xff\xff\x1c\x03\x00\x00\xef\xff\xff\xff\x23\x03\x00\x00\xef\xff\xff\xff\x19\x03\x00\x00\x31\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x5f\x01\x00\x00\xa7\x00\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\x2a\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xf2\x02\x00\x00\x00\x00\x00\x00\x52\x03\x00\x00\x53\x03\x00\x00\x1e\x03\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\x3f\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x22\x00\x00\x00\x8d\x01\x00\x00\x29\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x59\x03\x00\x00\x5a\x03\x00\x00\x5b\x03\x00\x00\x58\x03\x00\x00\xef\xff\xff\xff\x12\x00\x00\x00\x4a\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xf9\x02\x00\x00\x00\x00\x00\x00\x61\x03\x00\x00\x63\x03\x00\x00\x64\x03\x00\x00\x66\x03\x00\x00\x80\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x54\x03\x00\x00\x00\x00\x00\x00\x6e\x03\x00\x00\xef\xff\xff\xff\x6f\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x72\x03\x00\x00\xef\xff\xff\xff\x75\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x89\x03\x00\x00\x8a\x03\x00\x00\x8b\x03\x00\x00\x88\x03\x00\x00\x8c\x03\x00\x00\x8e\x03\x00\x00\x8f\x03\x00\x00\x91\x03\x00\x00\xaf\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x01\x01\x00\x00\xef\xff\xff\xff\x92\x03\x00\x00\xac\x03\x00\x00\xad\x03\x00\x00\xb4\x03\x00\x00\xbf\x03\x00\x00\xc0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xbd\x03\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x56\x03\x00\x00\x00\x00\x00\x00\x45\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\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\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x8d\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x97\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xcc\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xc4\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x06\x01\x00\x00\xa3\x00\x00\x00\xad\x01\x00\x00\x5c\x00\x00\x00\xeb\x03\x00\x00\xec\x03\x00\x00\xea\x03\x00\x00\x48\x00\x00\x00\xef\x03\x00\x00\x8b\x02\x00\x00\xee\x03\x00\x00\xe9\x03\x00\x00\xc5\x02\x00\x00\x59\x02\x00\x00\xed\x03\x00\x00\xf0\x03\x00\x00\xda\x00\x00\x00\xdc\x01\x00\x00\xd1\x00\x00\x00\xae\x01\x00\x00\x18\x00\x00\x00\x70\x0b\x00\x00\x4d\x0b\x00\x00\x30\x0c\x00\x00\x73\x0c\x00\x00\x9a\x01\x00\x00\x0c\x0b\x00\x00\xde\x02\x00\x00\x80\x00\x00\x00\x28\x03\x00\x00\xb0\x02\x00\x00\xda\x03\x00\x00\x23\x01\x00\x00\xd9\x03\x00\x00\xd5\x01\x00\x00\x1b\x0b\x00\x00\x01\x0b\x00\x00\xd7\x0a\x00\x00\xb4\x09\x00\x00\x5d\x0b\x00\x00\xc4\x09\x00\x00\x38\x03\x00\x00\x53\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\x42\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\x57\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0b\x00\x00\xaa\x0b\x00\x00\xaf\x0b\x00\x00\x00\x00\x00\x00\xba\x0b\x00\x00\xbf\x0b\x00\x00\xc4\x0b\x00\x00\x87\x01\x00\x00\xc9\x0b\x00\x00\xdd\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x03\x00\x00\xd1\x0b\x00\x00\xd6\x0b\x00\x00\xeb\x0b\x00\x00\xf0\x0b\x00\x00\xf8\x0b\x00\x00\xfd\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x0c\x00\x00\x07\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x0c\x00\x00\x86\x03\x00\x00\x00\x00\x00\x00\x12\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x0c\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x03\x00\x00\x61\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x02\x00\x00\x00\x00\x00\x00\xb5\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\x87\x00\x00\x00\xc5\x03\x00\x00\xe4\x03\x00\x00\xf4\x03\x00\x00\x13\x04\x00\x00\xb0\x01\x00\x00\xee\x01\x00\x00\xf4\x01\x00\x00\xc2\x02\x00\x00\x58\x02\x00\x00\xc7\x02\x00\x00\x03\x04\x00\x00\x04\x04\x00\x00\x5a\x02\x00\x00\x1f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x03\x00\x00\x06\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\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\xfc\x03\x00\x00\x00\x00\x00\x00\x07\x04\x00\x00\x08\x04\x00\x00\x16\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x01\x00\x00\x24\x02\x00\x00\x00\x00\x00\x00\xc9\x01\x00\x00\xf6\x02\x00\x00\x00\x00\x00\x00\xf7\x03\x00\x00\x00\x00\x00\x00\xca\x02\x00\x00\xf4\x02\x00\x00\x00\x00\x00\x00\x4e\x02\x00\x00\x00\x00\x00\x00\x23\x04\x00\x00\x42\x04\x00\x00\x00\x00\x00\x00\x9a\x0c\x00\x00\xa8\x0c\x00\x00\xfe\x03\x00\x00\x00\x00\x00\x00\x52\x04\x00\x00\x00\x00\x00\x00\xc0\x02\x00\x00\x00\x00\x00\x00\xd3\x01\x00\x00\x71\x04\x00\x00\x81\x04\x00\x00\xa0\x04\x00\x00\xb0\x04\x00\x00\xec\x02\x00\x00\x01\x04\x00\x00\x69\x0b\x00\x00\x79\x0b\x00\x00\x7f\x0b\x00\x00\x88\x0b\x00\x00\x00\x00\x00\x00\x9d\x0a\x00\x00\xcf\x04\x00\x00\x1a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x02\x00\x00\x29\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x02\x00\x00\x09\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x0c\x00\x00\xdf\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x03\x00\x00\x02\x04\x00\x00\x39\x0c\x00\x00\x80\x02\x00\x00\xd3\x09\x00\x00\xac\x0a\x00\x00\xb8\x0a\x00\x00\xe2\x0a\x00\x00\xf1\x0a\x00\x00\x2b\x0b\x00\x00\x36\x0b\x00\x00\x42\x0b\x00\x00\x52\x0b\x00\x00\x00\x00\x00\x00\xe3\x09\x00\x00\xf2\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x04\x00\x00\x00\x00\x00\x00\x0e\x05\x00\x00\x2d\x05\x00\x00\x05\x04\x00\x00\x00\x00\x00\x00\x02\x0a\x00\x00\x11\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x02\x00\x00\x00\x00\x00\x00\x0a\x04\x00\x00\x3d\x05\x00\x00\x71\x03\x00\x00\x3e\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x04\x00\x00\x00\x00\x00\x00\x0b\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x0c\x00\x00\x43\x0c\x00\x00\x43\x0c\x00\x00\x43\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x05\x00\x00\x8b\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x05\x00\x00\xba\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x05\x00\x00\xe9\x05\x00\x00\x70\x0c\x00\x00\x82\x0c\x00\x00\x8b\x0c\x00\x00\x91\x0c\x00\x00\x2d\x04\x00\x00\xf9\x05\x00\x00\x18\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x06\x00\x00\x00\x00\x00\x00\x47\x06\x00\x00\x00\x00\x00\x00\x57\x06\x00\x00\x20\x04\x00\x00\x24\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x06\x00\x00\x86\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x0a\x00\x00\x82\x02\x00\x00\xa5\x06\x00\x00\x85\x02\x00\x00\xb5\x06\x00\x00\xd4\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x0b\x00\x00\xe4\x06\x00\x00\x00\x00\x00\x00\x03\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x02\x00\x00\x13\x07\x00\x00\x32\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x07\x00\x00\x00\x00\x00\x00\x91\x02\x00\x00\x00\x00\x00\x00\x61\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xa0\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\x00\x00\x00\x00\x9f\x0c\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\xbf\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\x07\x00\x00\x00\x00\x00\x00\xee\x07\x00\x00\x00\x00\x00\x00\xfe\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x08\x00\x00\x00\x00\x00\x00\x2d\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\x00\x4c\x08\x00\x00\x5c\x08\x00\x00\x7b\x08\x00\x00\x00\x00\x00\x00\x8b\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\x21\x0a\x00\x00\x30\x0a\x00\x00\x40\x0a\x00\x00\x00\x00\x00\x00\xaa\x08\x00\x00\xba\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x0a\x00\x00\x5f\x0a\x00\x00\x6e\x0a\x00\x00\x7e\x0a\x00\x00\x8d\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x08\x00\x00\x00\x00\x00\x00\xe9\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\x08\x09\x00\x00\x18\x09\x00\x00\x37\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x09\x00\x00\x00\x00\x00\x00\x95\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyDefActions :: HappyAddr
-happyDefActions = 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\xb7\xff\xff\xff\xb4\xff\xff\xff\xb3\xff\xff\xff\xb0\xff\xff\xff\xae\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xff\xff\xff\x00\x00\x00\x00\xa5\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\xff\xff\xff\xcf\xff\xff\xff\xd0\xff\xff\xff\x53\xff\xff\xff\x52\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x2b\xff\xff\xff\x41\xff\xff\xff\x3d\xff\xff\xff\x3a\xff\xff\xff\x18\xff\xff\xff\x45\xff\xff\xff\x0f\xff\xff\xff\x0e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xff\xff\xff\x6a\xff\xff\xff\x4f\xff\xff\xff\x4c\xff\xff\xff\x65\xff\xff\xff\x68\xff\xff\xff\x6b\xff\xff\xff\x4e\xff\xff\xff\x4b\xff\xff\xff\x64\xff\xff\xff\x67\xff\xff\xff\x69\xff\xff\xff\x49\xff\xff\xff\x6d\xff\xff\xff\x4d\xff\xff\xff\x00\x00\x00\x00\x4a\xff\xff\xff\x6c\xff\xff\xff\x6e\xff\xff\xff\x5f\xff\xff\xff\x00\x00\x00\x00\x7b\xff\xff\xff\x7d\xff\xff\xff\x78\xff\xff\xff\x79\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\x00\x00\x00\x00\x61\xff\xff\xff\x00\x00\x00\x00\x59\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\x5a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xff\xff\xff\x00\x00\x00\x00\x63\xff\xff\xff\x62\xff\xff\xff\x7e\xff\xff\xff\x7c\xff\xff\xff\x66\xff\xff\xff\xd3\xff\xff\xff\xd2\xff\xff\xff\x00\x00\x00\x00\x18\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xff\xff\xff\x71\xff\xff\xff\x72\xff\xff\xff\x6f\xff\xff\xff\x73\xff\xff\xff\x75\xff\xff\xff\x74\xff\xff\xff\x77\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x80\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xff\xff\xff\x00\x00\x00\x00\x84\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xff\xff\xff\x8d\xff\xff\xff\x00\x00\x00\x00\x94\xff\xff\xff\x8f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xff\xff\xff\x96\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x99\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa5\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\xa8\xff\xff\xff\xab\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\xb2\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\xff\xff\xff\x00\x00\x00\x00\xb3\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\xcb\xff\xff\xff\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\xb7\xff\xff\xff\xd1\xff\xff\xff\xcd\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xff\xff\x00\x00\x00\x00\xbf\xff\xff\xff\xb4\xff\xff\xff\xbe\xff\xff\xff\xb4\xff\xff\xff\xb4\xff\xff\xff\xb4\xff\xff\xff\xc6\xff\xff\xff\xc5\xff\xff\xff\xc7\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\x00\x00\x00\x00\xb1\xff\xff\xff\xa5\xff\xff\xff\x00\x00\x00\x00\xac\xff\xff\xff\xa8\xff\xff\xff\xa9\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xff\xff\xff\x00\x00\x00\x00\x99\xff\xff\xff\x00\x00\x00\x00\x8e\xff\xff\xff\x00\x00\x00\x00\x2f\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\xff\xff\xff\x2d\xff\xff\xff\x00\x00\x00\x00\x36\xff\xff\xff\x35\xff\xff\xff\x32\xff\xff\xff\x31\xff\xff\xff\x00\x00\x00\x00\x27\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\x38\xff\xff\xff\x37\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x34\xff\xff\xff\x33\xff\xff\xff\x28\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x26\xff\xff\xff\x17\xff\xff\xff\x42\xff\xff\xff\x43\xff\xff\xff\x40\xff\xff\xff\x3f\xff\xff\xff\x3e\xff\xff\xff\x3c\xff\xff\xff\x3b\xff\xff\xff\x39\xff\xff\xff\x10\xff\xff\xff\x0d\xff\xff\xff\x2e\xff\xff\xff\x00\x00\x00\x00\x51\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\x29\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\x5c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x58\xff\xff\xff\x2a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\xff\xff\xff\x47\xff\xff\xff\x46\xff\xff\xff\x48\xff\xff\xff\x44\xff\xff\xff\x76\xff\xff\xff\x7f\xff\xff\xff\x82\xff\xff\xff\x81\xff\xff\xff\x86\xff\xff\xff\x85\xff\xff\xff\x83\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x95\xff\xff\xff\xa2\xff\xff\xff\xa0\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xad\xff\xff\xff\xaa\xff\xff\xff\xaf\xff\xff\xff\x00\x00\x00\x00\xb6\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb0\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\xcc\xff\xff\xff\xc0\xff\xff\xff\xc1\xff\xff\xff\xca\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\xae\xff\xff\xff\xb0\xff\xff\xff\xc8\xff\xff\xff\xc2\xff\xff\xff\xb5\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa3\xff\xff\xff\xa1\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x30\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\x60\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\x1f\xff\xff\xff\x13\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\x88\xff\xff\xff\x00\x00\x00\x00\x5e\xff\xff\xff\x00\x00\x00\x00\x8a\xff\xff\xff\x00\x00\x00\x00\x86\xff\xff\xff\x85\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\x55\xff\xff\xff\x00\x00\x00\x00\x57\xff\xff\xff\x86\xff\xff\xff\x85\xff\xff\xff\x00\x00\x00\x00\x86\xff\xff\xff\x00\x00\x00\x00\x22\xff\xff\xff\x9b\xff\xff\xff\x00\x00\x00\x00\x91\xff\xff\xff\x00\x00\x00\x00\x93\xff\xff\xff\x00\x00\x00\x00\xa6\xff\xff\xff\xa7\xff\xff\xff\xae\xff\xff\xff\xb8\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xff\xff\xff\x00\x00\x00\x00\xc4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\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\x20\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\x00\x00\x00\x00\x00\x00\x00\x00\x87\xff\xff\xff\x5d\xff\xff\xff\x89\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\x1e\xff\xff\xff\x00\x00\x00\x00\x54\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xff\xff\xff\x90\xff\xff\xff\x92\xff\xff\xff\xba\xff\xff\xff\x00\x00\x00\x00\xbc\xff\xff\xff\x00\x00\x00\x00\xbd\xff\xff\xff\xbb\xff\xff\xff\x11\xff\xff\xff\x12\xff\xff\xff\x23\xff\xff\xff\x24\xff\xff\xff\x25\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\xff\xff\xff\x00\x00\x00\x00\x14\xff\xff\xff\x15\xff\xff\xff\x16\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1b\xff\xff\xff\x00\x00\x00\x00\x1c\xff\xff\xff\x00\x00\x00\x00\x1a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x19\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x56\xff\xff\xff"#
-
-happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\xff\xff\x12\x00\x00\x00\x13\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x1b\x00\x00\x00\x19\x00\x00\x00\x0b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x13\x00\x00\x00\x33\x00\x00\x00\x3f\x00\x00\x00\x7b\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x13\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x14\x00\x00\x00\x19\x00\x00\x00\x18\x00\x00\x00\x15\x00\x00\x00\x58\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x0b\x00\x00\x00\x3e\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x14\x00\x00\x00\x60\x00\x00\x00\x14\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x4d\x00\x00\x00\x14\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x6f\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x6c\x00\x00\x00\x4e\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x64\x00\x00\x00\x6a\x00\x00\x00\x6e\x00\x00\x00\x6d\x00\x00\x00\x01\x00\x00\x00\x4c\x00\x00\x00\x26\x00\x00\x00\x4e\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x62\x00\x00\x00\x7a\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x6a\x00\x00\x00\x65\x00\x00\x00\x13\x00\x00\x00\x27\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x01\x00\x00\x00\x62\x00\x00\x00\x7a\x00\x00\x00\x62\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x31\x00\x00\x00\x01\x00\x00\x00\x7c\x00\x00\x00\x34\x00\x00\x00\x62\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x63\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x16\x00\x00\x00\x7a\x00\x00\x00\x13\x00\x00\x00\x6b\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x5f\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x02\x00\x00\x00\x4d\x00\x00\x00\x04\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x26\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x7a\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x79\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x5f\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x53\x00\x00\x00\x18\x00\x00\x00\x7a\x00\x00\x00\x13\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x18\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x5f\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x26\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x15\x00\x00\x00\x4d\x00\x00\x00\x7c\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x13\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x7a\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x13\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x07\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x5f\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x13\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x13\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x13\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x7c\x00\x00\x00\x4b\x00\x00\x00\x31\x00\x00\x00\x7a\x00\x00\x00\x65\x00\x00\x00\x34\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x4c\x00\x00\x00\x7a\x00\x00\x00\x4e\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x1a\x00\x00\x00\x5f\x00\x00\x00\x5f\x00\x00\x00\x45\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x19\x00\x00\x00\x7c\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x5f\x00\x00\x00\x14\x00\x00\x00\x5f\x00\x00\x00\x5f\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x33\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x5f\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x4c\x00\x00\x00\x18\x00\x00\x00\x4e\x00\x00\x00\x7c\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x16\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x7c\x00\x00\x00\x14\x00\x00\x00\x5f\x00\x00\x00\x1c\x00\x00\x00\x7a\x00\x00\x00\x18\x00\x00\x00\x15\x00\x00\x00\x5f\x00\x00\x00\x7c\x00\x00\x00\x22\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x6c\x00\x00\x00\x05\x00\x00\x00\x1c\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x30\x00\x00\x00\x7a\x00\x00\x00\x32\x00\x00\x00\x16\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x18\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x7c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x05\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x62\x00\x00\x00\x7c\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x7c\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x01\x00\x00\x00\x65\x00\x00\x00\x22\x00\x00\x00\x69\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x61\x00\x00\x00\x13\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x7c\x00\x00\x00\x13\x00\x00\x00\x62\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x61\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x05\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7a\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x7c\x00\x00\x00\x13\x00\x00\x00\x2f\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x16\x00\x00\x00\x1c\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x4b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x7a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x7c\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x01\x00\x00\x00\x53\x00\x00\x00\x79\x00\x00\x00\x7c\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x5f\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x69\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x69\x00\x00\x00\x25\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x7a\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x1d\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x22\x00\x00\x00\x16\x00\x00\x00\x7a\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x58\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x7c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x2f\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x0c\x00\x00\x00\x16\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x16\x00\x00\x00\x26\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x26\x00\x00\x00\x31\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x60\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x0c\x00\x00\x00\x05\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x0c\x00\x00\x00\x0f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x1e\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x27\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x16\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x16\x00\x00\x00\x27\x00\x00\x00\x1d\x00\x00\x00\x1c\x00\x00\x00\x14\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x64\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x1e\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x40\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x79\x00\x00\x00\x27\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x16\x00\x00\x00\x16\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x20\x00\x00\x00\x26\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1e\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x64\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x13\x00\x00\x00\x27\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x4c\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x27\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x14\x00\x00\x00\x27\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x27\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x27\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x4c\x00\x00\x00\x1d\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x22\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x4c\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x4c\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x0b\x00\x00\x00\x0d\x00\x00\x00\x22\x00\x00\x00\x24\x00\x00\x00\x11\x00\x00\x00\x22\x00\x00\x00\x24\x00\x00\x00\x1d\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x22\x00\x00\x00\x0b\x00\x00\x00\x11\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x0b\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x0b\x00\x00\x00\x24\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x24\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x24\x00\x00\x00\x24\x00\x00\x00\x22\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x24\x00\x00\x00\x1d\x00\x00\x00\x0d\x00\x00\x00\xff\xff\xff\xff\x0e\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x22\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x2a\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\x17\x00\x00\x00\x2a\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x16\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x1a\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x14\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x25\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x11\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x0d\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\x1a\x00\x00\x00\x1b\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x19\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x19\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\x17\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\xff\xff\xff\xff\x0c\x00\x00\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\xb0\x00\x00\x00\xb1\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xa1\x00\x00\x00\x35\x01\x00\x00\x3c\x01\x00\x00\xd6\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x59\x01\x00\x00\x79\x01\x00\x00\x33\x01\x00\x00\x78\x00\x00\x00\x2d\x00\x00\x00\xb4\x00\x00\x00\x5d\x01\x00\x00\x97\x00\x00\x00\x92\x00\x00\x00\x77\x00\x00\x00\xd5\x01\x00\x00\x51\x01\x00\x00\x71\x01\x00\x00\x0e\x01\x00\x00\xd4\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\xd6\x00\x00\x00\x53\x00\x00\x00\xa6\x00\x00\x00\xa7\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xd3\x01\x00\x00\xc0\x00\x00\x00\xbe\x01\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x77\x00\x00\x00\x5c\x00\x00\x00\xba\x01\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x34\x01\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x7a\x01\x00\x00\x5a\x01\x00\x00\xc0\x00\x00\x00\xc1\x00\x00\x00\x98\x00\x00\x00\x97\x00\x00\x00\x6d\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x5e\x01\x00\x00\x3d\x01\x00\x00\x36\x01\x00\x00\x71\x00\x00\x00\x2d\x00\x00\x00\xf2\x01\x00\x00\xbc\x00\x00\x00\xf3\x01\x00\x00\xd6\x00\x00\x00\xd7\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x98\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\xd6\x01\x00\x00\x77\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x52\x01\x00\x00\x0f\x01\x00\x00\xa1\x00\x00\x00\xba\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x2d\x00\x00\x00\xd4\x01\x00\x00\x77\x00\x00\x00\xbf\x01\x00\x00\x92\x00\x00\x00\xbc\x00\x00\x00\x13\x01\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\x14\x01\x00\x00\xbb\x01\x00\x00\xd6\x00\x00\x00\xed\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x0a\x01\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x93\x00\x00\x00\x77\x00\x00\x00\x97\x00\x00\x00\x0b\x01\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x94\x00\x00\x00\x95\x00\x00\x00\x98\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x2e\x00\x00\x00\x5c\x00\x00\x00\xd9\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\xb4\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x77\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x3d\x00\x00\x00\x7d\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x98\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x4c\x01\x00\x00\xa9\x00\x00\x00\xa1\x00\x00\x00\x57\x01\x00\x00\x4d\x01\x00\x00\x77\x00\x00\x00\xa1\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x31\x01\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x98\x00\x00\x00\xaa\x00\x00\x00\xab\x00\x00\x00\x97\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xad\x00\x00\x00\xae\x00\x00\x00\x95\x01\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x0e\x01\x00\x00\x5c\x00\x00\x00\xff\xff\xff\xff\x5d\x00\x00\x00\x5e\x00\x00\x00\x2e\x01\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x77\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\xa1\x00\x00\x00\x7d\x00\x00\x00\xda\x00\x00\x00\x29\x01\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xdb\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x98\x00\x00\x00\xd6\x00\x00\x00\xdf\x00\x00\x00\x97\x00\x00\x00\x98\x00\x00\x00\xa1\x00\x00\x00\xa1\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x20\x01\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\x98\x00\x00\x00\x18\x01\x00\x00\xa1\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x15\x01\x00\x00\x93\x01\x00\x00\x91\x01\x00\x00\x97\x00\x00\x00\x77\x00\x00\x00\xff\xff\xff\xff\x5b\x00\x00\x00\x13\x01\x00\x00\x77\x00\x00\x00\x0f\x01\x00\x00\x14\x01\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x03\x02\x00\x00\x77\x00\x00\x00\x04\x02\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x0d\x01\x00\x00\x98\x00\x00\x00\x6c\x00\x00\x00\x32\x01\x00\x00\x7d\x00\x00\x00\x8b\x00\x00\x00\x2f\x01\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x97\x00\x00\x00\x8b\xff\xff\xff\xff\xff\xff\xff\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\xff\xff\xff\xff\x98\x00\x00\x00\xd1\x01\x00\x00\x98\x00\x00\x00\x98\x00\x00\x00\x0c\x01\x00\x00\xd2\x01\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xfc\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\x98\x00\x00\x00\xad\x00\x00\x00\xf8\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x2d\x00\x00\x00\x98\x00\x00\x00\xc0\x00\x00\x00\xdc\x00\x00\x00\x92\x00\x00\x00\x77\x00\x00\x00\x5b\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\x1c\x02\x00\x00\x07\x01\x00\x00\x1d\x02\x00\x00\xff\xff\xff\xff\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x9b\x00\x00\x00\x03\x01\x00\x00\x92\x00\x00\x00\xff\xff\xff\xff\xbc\x01\x00\x00\x6c\x00\x00\x00\x22\x01\x00\x00\x77\x00\x00\x00\xbd\x01\x00\x00\x0e\x01\x00\x00\x98\x00\x00\x00\xff\xff\xff\xff\x23\x01\x00\x00\xc0\x00\x00\x00\x81\x01\x00\x00\x70\x00\x00\x00\x8b\xff\xff\xff\x2d\x00\x00\x00\x2d\x00\x00\x00\x9b\x00\x00\x00\x2d\x00\x00\x00\xd8\x00\x00\x00\x92\x00\x00\x00\xfd\x00\x00\x00\xe8\x00\x00\x00\x9c\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x7d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x37\x01\x00\x00\x77\x00\x00\x00\x38\x01\x00\x00\xa8\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\xff\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\x2d\x00\x00\x00\x2e\x00\x00\x00\x92\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xad\x00\x00\x00\x7f\x01\x00\x00\x2d\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xa9\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\xfa\x00\x00\x00\xff\xff\xff\xff\x93\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xff\xff\xff\xff\x2d\x00\x00\x00\xac\x00\x00\x00\x94\x00\x00\x00\x6f\x01\x00\x00\xe7\x00\x00\x00\x5b\x00\x00\x00\x2d\x00\x00\x00\x0f\x01\x00\x00\x32\x00\x00\x00\x70\x00\x00\x00\xe6\x00\x00\x00\x82\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x39\x01\x00\x00\x3a\x01\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x2d\x00\x00\x00\x6c\x00\x00\x00\xf8\x00\x00\x00\x7d\x00\x00\x00\xd6\x00\x00\x00\xdd\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xff\xff\xff\xff\x97\x00\x00\x00\xf3\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\xf7\x00\x00\x00\xd6\x00\x00\x00\x80\x01\x00\x00\x92\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x77\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\xff\xff\xff\xff\xf0\x00\x00\x00\xef\x00\x00\x00\x9b\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x05\x01\x00\x00\x55\x01\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x5b\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x77\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xff\xff\xff\xff\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x2d\x00\x00\x00\x25\x01\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xa9\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x6c\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x98\x00\x00\x00\xe4\x00\x00\x00\xb4\x00\x00\x00\xe0\x00\x00\x00\x70\x00\x00\x00\x2d\x00\x00\x00\xaa\x00\x00\x00\x7a\x01\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x70\x00\x00\x00\x3a\x01\x00\x00\xb5\x00\x00\x00\xb6\x00\x00\x00\x77\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x31\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x32\x00\x00\x00\xa1\x01\x00\x00\x77\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\xd4\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x77\x00\x00\x00\xb4\x00\x00\x00\xbc\x00\x00\x00\xff\xff\xff\xff\x2d\x00\x00\x00\x2e\x00\x00\x00\x8c\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xbd\x00\x00\x00\x93\x00\x00\x00\xb5\x00\x00\x00\xf1\x00\x00\x00\x93\x00\x00\x00\x8b\x01\x00\x00\x31\x00\x00\x00\xff\x00\x00\x00\x00\x01\x00\x00\x94\x00\x00\x00\xce\x01\x00\x00\x32\x00\x00\x00\x94\x00\x00\x00\xcc\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x48\x01\x00\x00\x31\x00\x00\x00\x8a\x01\x00\x00\x89\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\xf9\x01\x00\x00\xc0\x00\x00\x00\x84\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\xbc\x00\x00\x00\x2d\x00\x00\x00\x83\x01\x00\x00\xb4\x00\x00\x00\x2d\x00\x00\x00\xbc\x00\x00\x00\x31\x00\x00\x00\xe5\x00\x00\x00\x7c\x01\x00\x00\x8e\x00\x00\x00\x8f\x00\x00\x00\x32\x00\x00\x00\xe3\x00\x00\x00\xb7\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\x8e\x00\x00\x00\x71\x01\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\xb4\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x7b\x01\x00\x00\x71\x01\x00\x00\xb4\x00\x00\x00\x98\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x58\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xb4\x01\x00\x00\xb1\x01\x00\x00\x9b\x00\x00\x00\xb5\x00\x00\x00\x7e\x01\x00\x00\x93\x00\x00\x00\xaf\x01\x00\x00\x31\x00\x00\x00\xaf\x01\x00\x00\xaa\x01\x00\x00\x8e\x00\x00\x00\x6a\x01\x00\x00\x32\x00\x00\x00\x94\x00\x00\x00\xc1\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\x8e\x00\x00\x00\x5b\x01\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\xa6\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xa4\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x61\x01\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x92\x00\x00\x00\xa3\x01\x00\x00\x92\x00\x00\x00\x9c\x01\x00\x00\x9b\x01\x00\x00\x62\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xa1\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x9a\x01\x00\x00\x2d\x00\x00\x00\xba\x00\x00\x00\xe0\x01\x00\x00\xde\x01\x00\x00\x5f\x01\x00\x00\x4e\x01\x00\x00\x31\x00\x00\x00\xa6\x00\x00\x00\xfd\x00\x00\x00\x91\x00\x00\x00\xdc\x01\x00\x00\x32\x00\x00\x00\x60\x01\x00\x00\x4f\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\xca\x01\x00\x00\xbc\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x78\x00\x00\x00\xc9\x01\x00\x00\xc4\x01\x00\x00\xc8\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xc7\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xf8\x01\x00\x00\xf7\x01\x00\x00\xf6\x01\x00\x00\xf5\x01\x00\x00\xf1\x01\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x31\x00\x00\x00\xee\x01\x00\x00\xa9\x00\x00\x00\xed\x01\x00\x00\xec\x01\x00\x00\x32\x00\x00\x00\xeb\x01\x00\x00\xba\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2e\x01\x00\x00\x31\x00\x00\x00\xaa\x00\x00\x00\xab\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x1e\x01\x00\x00\xea\x01\x00\x00\xe5\x01\x00\x00\xe3\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x14\x02\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x12\x02\x00\x00\x10\x02\x00\x00\x0f\x02\x00\x00\x0e\x02\x00\x00\x0d\x02\x00\x00\x2d\x00\x00\x00\x1e\x02\x00\x00\x31\x00\x00\x00\x0c\x02\x00\x00\xa9\x00\x00\x00\x0b\x02\x00\x00\x0a\x02\x00\x00\x32\x00\x00\x00\x09\x02\x00\x00\x01\x02\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x11\x01\x00\x00\x31\x00\x00\x00\xaa\x00\x00\x00\xee\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf5\x00\x00\x00\x08\x02\x00\x00\x00\x02\x00\x00\xff\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xfe\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x31\x00\x00\x00\xfd\x01\x00\x00\xfc\x01\x00\x00\x21\x02\x00\x00\x2c\x02\x00\x00\x32\x00\x00\x00\x31\x02\x00\x00\x26\x02\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf0\x00\x00\x00\x31\x00\x00\x00\x2a\x02\x00\x00\x2f\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xec\x00\x00\x00\xd4\x00\x00\x00\xd1\x00\x00\x00\xd2\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xb8\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xbe\x00\x00\x00\xba\x00\x00\x00\x8d\x00\x00\x00\x83\x00\x00\x00\xb2\x00\x00\x00\x20\x01\x00\x00\x07\x01\x00\x00\x31\x00\x00\x00\xb1\x00\x00\x00\xe2\x00\x00\x00\xe1\x00\x00\x00\xde\x00\x00\x00\x32\x00\x00\x00\x87\x01\x00\x00\x7d\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xeb\x00\x00\x00\x31\x00\x00\x00\x86\x01\x00\x00\x85\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xea\x00\x00\x00\x84\x01\x00\x00\x73\x01\x00\x00\x69\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x4a\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xb4\x01\x00\x00\xa6\x01\x00\x00\x54\x01\x00\x00\xad\x01\x00\x00\x8e\x01\x00\x00\xd9\x01\x00\x00\x07\x01\x00\x00\x31\x00\x00\x00\xd8\x01\x00\x00\x00\x00\x00\x00\xe5\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe9\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x77\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x76\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x72\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6e\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6c\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x63\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x52\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb8\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb6\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xac\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xa8\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9e\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9c\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x98\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x97\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x8d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x8c\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xde\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xdc\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xda\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd7\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xcd\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xcb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xca\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc2\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbf\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xfa\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf8\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xef\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe6\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe1\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x12\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x10\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x06\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x05\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x04\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x01\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x1f\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x1e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x15\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x14\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x28\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x27\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x26\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x24\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2a\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2c\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x7a\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x47\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x3e\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x3d\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\xb2\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\xb1\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x23\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x22\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x21\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x1a\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x19\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x18\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x17\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x16\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x64\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x46\x01\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x45\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\xcf\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x44\x01\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x43\x01\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x80\x00\x00\x00\x99\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xc5\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x42\x01\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x41\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xa2\x00\x00\x00\x32\x00\x00\x00\xa3\x00\x00\x00\xa4\x00\x00\x00\x33\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x3f\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x00\x00\x7b\x00\x00\x00\xa5\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x68\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x92\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x67\x01\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\xfa\x00\x00\x00\x66\x01\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x65\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2b\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x29\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x21\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x1d\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1c\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1a\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x19\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x15\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x03\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x5e\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x9d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x01\x00\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\xaa\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x4e\x01\x00\x00\x03\x01\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\xf3\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x9e\x00\x00\x00\xf4\x00\x00\x00\x95\x01\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x9e\x00\x00\x00\x96\x01\x00\x00\x2d\x00\x00\x00\x9e\x00\x00\x00\x9f\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x9e\x00\x00\x00\x2c\x01\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x9e\x00\x00\x00\x01\x01\x00\x00\x2d\x00\x00\x00\x9e\x00\x00\x00\x93\x01\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x9e\x00\x00\x00\x91\x01\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x8f\x01\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x75\x01\x00\x00\x00\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\xe8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\xfd\x00\x00\x00\xc3\x00\x00\x00\xc4\x00\x00\x00\xc5\x00\x00\x00\xc6\x00\x00\x00\xc7\x00\x00\x00\xc8\x00\x00\x00\xc9\x00\x00\x00\xca\x00\x00\x00\xcb\x00\x00\x00\x00\x00\x00\x00\xcc\x00\x00\x00\xcd\x00\x00\x00\xce\x00\x00\x00\xcf\x00\x00\x00\xd0\x00\x00\x00\xd1\x00\x00\x00\x09\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x75\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xb6\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xa8\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xa5\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (43, 242) [
-        (43 , happyReduce_43),
-        (44 , happyReduce_44),
-        (45 , happyReduce_45),
-        (46 , happyReduce_46),
-        (47 , happyReduce_47),
-        (48 , happyReduce_48),
-        (49 , happyReduce_49),
-        (50 , happyReduce_50),
-        (51 , happyReduce_51),
-        (52 , happyReduce_52),
-        (53 , happyReduce_53),
-        (54 , happyReduce_54),
-        (55 , happyReduce_55),
-        (56 , happyReduce_56),
-        (57 , happyReduce_57),
-        (58 , happyReduce_58),
-        (59 , happyReduce_59),
-        (60 , happyReduce_60),
-        (61 , happyReduce_61),
-        (62 , happyReduce_62),
-        (63 , happyReduce_63),
-        (64 , happyReduce_64),
-        (65 , happyReduce_65),
-        (66 , happyReduce_66),
-        (67 , happyReduce_67),
-        (68 , happyReduce_68),
-        (69 , happyReduce_69),
-        (70 , happyReduce_70),
-        (71 , happyReduce_71),
-        (72 , happyReduce_72),
-        (73 , happyReduce_73),
-        (74 , happyReduce_74),
-        (75 , happyReduce_75),
-        (76 , happyReduce_76),
-        (77 , happyReduce_77),
-        (78 , happyReduce_78),
-        (79 , happyReduce_79),
-        (80 , happyReduce_80),
-        (81 , happyReduce_81),
-        (82 , happyReduce_82),
-        (83 , happyReduce_83),
-        (84 , happyReduce_84),
-        (85 , happyReduce_85),
-        (86 , happyReduce_86),
-        (87 , happyReduce_87),
-        (88 , happyReduce_88),
-        (89 , happyReduce_89),
-        (90 , happyReduce_90),
-        (91 , happyReduce_91),
-        (92 , happyReduce_92),
-        (93 , happyReduce_93),
-        (94 , happyReduce_94),
-        (95 , happyReduce_95),
-        (96 , happyReduce_96),
-        (97 , happyReduce_97),
-        (98 , happyReduce_98),
-        (99 , happyReduce_99),
-        (100 , happyReduce_100),
-        (101 , happyReduce_101),
-        (102 , happyReduce_102),
-        (103 , happyReduce_103),
-        (104 , happyReduce_104),
-        (105 , happyReduce_105),
-        (106 , happyReduce_106),
-        (107 , happyReduce_107),
-        (108 , happyReduce_108),
-        (109 , happyReduce_109),
-        (110 , happyReduce_110),
-        (111 , happyReduce_111),
-        (112 , happyReduce_112),
-        (113 , happyReduce_113),
-        (114 , happyReduce_114),
-        (115 , happyReduce_115),
-        (116 , happyReduce_116),
-        (117 , happyReduce_117),
-        (118 , happyReduce_118),
-        (119 , happyReduce_119),
-        (120 , happyReduce_120),
-        (121 , happyReduce_121),
-        (122 , happyReduce_122),
-        (123 , happyReduce_123),
-        (124 , happyReduce_124),
-        (125 , happyReduce_125),
-        (126 , happyReduce_126),
-        (127 , happyReduce_127),
-        (128 , happyReduce_128),
-        (129 , happyReduce_129),
-        (130 , happyReduce_130),
-        (131 , happyReduce_131),
-        (132 , happyReduce_132),
-        (133 , happyReduce_133),
-        (134 , happyReduce_134),
-        (135 , happyReduce_135),
-        (136 , happyReduce_136),
-        (137 , happyReduce_137),
-        (138 , happyReduce_138),
-        (139 , happyReduce_139),
-        (140 , happyReduce_140),
-        (141 , happyReduce_141),
-        (142 , happyReduce_142),
-        (143 , happyReduce_143),
-        (144 , happyReduce_144),
-        (145 , happyReduce_145),
-        (146 , happyReduce_146),
-        (147 , happyReduce_147),
-        (148 , happyReduce_148),
-        (149 , happyReduce_149),
-        (150 , happyReduce_150),
-        (151 , happyReduce_151),
-        (152 , happyReduce_152),
-        (153 , happyReduce_153),
-        (154 , happyReduce_154),
-        (155 , happyReduce_155),
-        (156 , happyReduce_156),
-        (157 , happyReduce_157),
-        (158 , happyReduce_158),
-        (159 , happyReduce_159),
-        (160 , happyReduce_160),
-        (161 , happyReduce_161),
-        (162 , happyReduce_162),
-        (163 , happyReduce_163),
-        (164 , happyReduce_164),
-        (165 , happyReduce_165),
-        (166 , happyReduce_166),
-        (167 , happyReduce_167),
-        (168 , happyReduce_168),
-        (169 , happyReduce_169),
-        (170 , happyReduce_170),
-        (171 , happyReduce_171),
-        (172 , happyReduce_172),
-        (173 , happyReduce_173),
-        (174 , happyReduce_174),
-        (175 , happyReduce_175),
-        (176 , happyReduce_176),
-        (177 , happyReduce_177),
-        (178 , happyReduce_178),
-        (179 , happyReduce_179),
-        (180 , happyReduce_180),
-        (181 , happyReduce_181),
-        (182 , happyReduce_182),
-        (183 , happyReduce_183),
-        (184 , happyReduce_184),
-        (185 , happyReduce_185),
-        (186 , happyReduce_186),
-        (187 , happyReduce_187),
-        (188 , happyReduce_188),
-        (189 , happyReduce_189),
-        (190 , happyReduce_190),
-        (191 , happyReduce_191),
-        (192 , happyReduce_192),
-        (193 , happyReduce_193),
-        (194 , happyReduce_194),
-        (195 , happyReduce_195),
-        (196 , happyReduce_196),
-        (197 , happyReduce_197),
-        (198 , happyReduce_198),
-        (199 , happyReduce_199),
-        (200 , happyReduce_200),
-        (201 , happyReduce_201),
-        (202 , happyReduce_202),
-        (203 , happyReduce_203),
-        (204 , happyReduce_204),
-        (205 , happyReduce_205),
-        (206 , happyReduce_206),
-        (207 , happyReduce_207),
-        (208 , happyReduce_208),
-        (209 , happyReduce_209),
-        (210 , happyReduce_210),
-        (211 , happyReduce_211),
-        (212 , happyReduce_212),
-        (213 , happyReduce_213),
-        (214 , happyReduce_214),
-        (215 , happyReduce_215),
-        (216 , happyReduce_216),
-        (217 , happyReduce_217),
-        (218 , happyReduce_218),
-        (219 , happyReduce_219),
-        (220 , happyReduce_220),
-        (221 , happyReduce_221),
-        (222 , happyReduce_222),
-        (223 , happyReduce_223),
-        (224 , happyReduce_224),
-        (225 , happyReduce_225),
-        (226 , happyReduce_226),
-        (227 , happyReduce_227),
-        (228 , happyReduce_228),
-        (229 , happyReduce_229),
-        (230 , happyReduce_230),
-        (231 , happyReduce_231),
-        (232 , happyReduce_232),
-        (233 , happyReduce_233),
-        (234 , happyReduce_234),
-        (235 , happyReduce_235),
-        (236 , happyReduce_236),
-        (237 , happyReduce_237),
-        (238 , happyReduce_238),
-        (239 , happyReduce_239),
-        (240 , happyReduce_240),
-        (241 , happyReduce_241),
-        (242 , happyReduce_242)
-        ]
-
-happyRuleArr :: HappyAddr
-happyRuleArr = HappyA# "\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x03\x00\x00\x00\x0b\x00\x00\x00\x04\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x0d\x00\x00\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x03\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x03\x00\x00\x00\x11\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x05\x00\x00\x00\x12\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x15\x00\x00\x00\x03\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x07\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x17\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x03\x00\x00\x00\x1a\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1b\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x03\x00\x00\x00\x1d\x00\x00\x00\x01\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1f\x00\x00\x00\x01\x00\x00\x00\x1f\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x21\x00\x00\x00\x01\x00\x00\x00\x21\x00\x00\x00\x03\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x03\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x07\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x0e\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x07\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x01\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x01\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x05\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x06\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x07\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x09\x00\x00\x00\x2b\x00\x00\x00\x09\x00\x00\x00\x2b\x00\x00\x00\x0a\x00\x00\x00\x2b\x00\x00\x00\x0b\x00\x00\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2c\x00\x00\x00\x03\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x2d\x00\x00\x00\x01\x00\x00\x00\x2d\x00\x00\x00\x03\x00\x00\x00"#
-
-happyCatchStates :: [Happy_Prelude.Int]
-happyCatchStates = []
-
-happy_n_terms = 125 :: Happy_Prelude.Int
-happy_n_nonterms = 46 :: Happy_Prelude.Int
-
-happy_n_starts = 43 :: Happy_Prelude.Int
-
-happyReduce_43 = happySpecReduce_1  0# happyReduction_43
-happyReduction_43 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn47
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), (Data.Text.unpack ((\(PT _ (TL s)) -> s) happy_var_1)))
-        )}
-
-happyReduce_44 = happySpecReduce_1  1# happyReduction_44
-happyReduction_44 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn48
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.VarIdentToken (tokenText happy_var_1))
-        )}
-
-happyReduce_45 = happySpecReduce_1  2# happyReduction_45
-happyReduction_45 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn49
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.HoleIdentToken (tokenText happy_var_1))
-        )}
-
-happyReduce_46 = happySpecReduce_2  3# happyReduction_46
-happyReduction_46 happy_x_2
-        happy_x_1
-         =  case happyOut54 happy_x_1 of { (HappyWrap54 happy_var_1) -> 
-        case happyOut57 happy_x_2 of { (HappyWrap57 happy_var_2) -> 
-        happyIn50
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Module (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))
-        )}}
-
-happyReduce_47 = happySpecReduce_1  4# happyReduction_47
-happyReduction_47 happy_x_1
-         =  case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> 
-        happyIn51
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.HoleIdent (fst happy_var_1) (snd happy_var_1))
-        )}
-
-happyReduce_48 = happySpecReduce_1  5# happyReduction_48
-happyReduction_48 happy_x_1
-         =  case happyOut48 happy_x_1 of { (HappyWrap48 happy_var_1) -> 
-        happyIn52
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.VarIdent (fst happy_var_1) (snd happy_var_1))
-        )}
-
-happyReduce_49 = happySpecReduce_1  6# happyReduction_49
-happyReduction_49 happy_x_1
-         =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
-        happyIn53
-                 ((fst happy_var_1, (:[]) (snd happy_var_1))
-        )}
-
-happyReduce_50 = happySpecReduce_2  6# happyReduction_50
-happyReduction_50 happy_x_2
-        happy_x_1
-         =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
-        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
-        happyIn53
-                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))
-        )}}
-
-happyReduce_51 = happySpecReduce_3  7# happyReduction_51
-happyReduction_51 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut55 happy_x_2 of { (HappyWrap55 happy_var_2) -> 
-        happyIn54
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LanguageDecl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_52 = happySpecReduce_1  8# happyReduction_52
-happyReduction_52 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn55
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Rzk1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_53 = happyReduce 4# 9# happyReduction_53
-happyReduction_53 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut47 happy_x_2 of { (HappyWrap47 happy_var_2) -> 
-        case happyOut47 happy_x_4 of { (HappyWrap47 happy_var_4) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_54 = happySpecReduce_2  9# happyReduction_54
-happyReduction_54 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut47 happy_x_2 of { (HappyWrap47 happy_var_2) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandUnsetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_55 = happyReduce 4# 9# happyReduction_55
-happyReduction_55 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandCheck (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_56 = happySpecReduce_2  9# happyReduction_56
-happyReduction_56 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandCompute (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_57 = happySpecReduce_2  9# happyReduction_57
-happyReduction_57 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandComputeWHNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_58 = happySpecReduce_2  9# happyReduction_58
-happyReduction_58 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandComputeNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_59 = happyReduce 6# 9# happyReduction_59
-happyReduction_59 (happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> 
-        case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> 
-        case happyOut74 happy_x_4 of { (HappyWrap74 happy_var_4) -> 
-        case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandPostulate (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6))
-        ) `HappyStk` happyRest}}}}}
-
-happyReduce_60 = happyReduce 5# 9# happyReduction_60
-happyReduction_60 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> 
-        case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandPostulateNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_61 = happyReduce 4# 9# happyReduction_61
-happyReduction_61 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandAssume (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_62 = happyReduce 4# 9# happyReduction_62
-happyReduction_62 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandVariable (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_63 = happyReduce 4# 9# happyReduction_63
-happyReduction_63 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandVariables (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_64 = happySpecReduce_2  9# happyReduction_64
-happyReduction_64 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut59 happy_x_2 of { (HappyWrap59 happy_var_2) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSection (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_65 = happySpecReduce_2  9# happyReduction_65
-happyReduction_65 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut59 happy_x_2 of { (HappyWrap59 happy_var_2) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSectionEnd (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_66 = happyReduce 8# 9# happyReduction_66
-happyReduction_66 (happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> 
-        case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> 
-        case happyOut74 happy_x_4 of { (HappyWrap74 happy_var_4) -> 
-        case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) -> 
-        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandDefine (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))
-        ) `HappyStk` happyRest}}}}}}
-
-happyReduce_67 = happyReduce 7# 9# happyReduction_67
-happyReduction_67 (happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> 
-        case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        case happyOut91 happy_x_7 of { (HappyWrap91 happy_var_7) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefineNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))
-        ) `HappyStk` happyRest}}}}}
-
-happyReduce_68 = happyReduce 8# 9# happyReduction_68
-happyReduction_68 (happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> 
-        case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> 
-        case happyOut74 happy_x_4 of { (HappyWrap74 happy_var_4) -> 
-        case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) -> 
-        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDef (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))
-        ) `HappyStk` happyRest}}}}}}
-
-happyReduce_69 = happyReduce 7# 9# happyReduction_69
-happyReduction_69 (happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> 
-        case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        case happyOut91 happy_x_7 of { (HappyWrap91 happy_var_7) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))
-        ) `HappyStk` happyRest}}}}}
-
-happyReduce_70 = happyReduce 6# 9# happyReduction_70
-happyReduction_70 (happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> 
-        case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> 
-        case happyOut74 happy_x_4 of { (HappyWrap74 happy_var_4) -> 
-        case happyOut60 happy_x_5 of { (HappyWrap60 happy_var_5) -> 
-        case happyOut61 happy_x_6 of { (HappyWrap61 happy_var_6) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandData (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_5) (snd happy_var_6))
-        ) `HappyStk` happyRest}}}}}}
-
-happyReduce_71 = happyReduce 5# 9# 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 happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> 
-        case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> 
-        case happyOut60 happy_x_4 of { (HappyWrap60 happy_var_4) -> 
-        case happyOut61 happy_x_5 of { (HappyWrap61 happy_var_5) -> 
-        happyIn56
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDataNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_5))
-        ) `HappyStk` happyRest}}}}}
-
-happyReduce_72 = happySpecReduce_0  10# happyReduction_72
-happyReduction_72  =  happyIn57
-                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, [])
-        )
-
-happyReduce_73 = happySpecReduce_3  10# happyReduction_73
-happyReduction_73 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> 
-        case happyOut57 happy_x_3 of { (HappyWrap57 happy_var_3) -> 
-        happyIn57
-                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_74 = happyReduce 4# 11# happyReduction_74
-happyReduction_74 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut53 happy_x_3 of { (HappyWrap53 happy_var_3) -> 
-        happyIn58
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.DeclUsedVars (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3))
-        ) `HappyStk` happyRest}}
-
-happyReduce_75 = happySpecReduce_0  11# happyReduction_75
-happyReduction_75  =  happyIn58
-                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.noDeclUsedVars Language.Rzk.Syntax.Abs.BNFC'NoPosition)
-        )
-
-happyReduce_76 = happySpecReduce_0  12# happyReduction_76
-happyReduction_76  =  happyIn59
-                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoSectionName Language.Rzk.Syntax.Abs.BNFC'NoPosition)
-        )
-
-happyReduce_77 = happySpecReduce_1  12# happyReduction_77
-happyReduction_77 happy_x_1
-         =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
-        happyIn59
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.SomeSectionName (fst happy_var_1) (snd happy_var_1))
-        )}
-
-happyReduce_78 = happySpecReduce_2  13# happyReduction_78
-happyReduction_78 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        happyIn60
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.SomeDataSort (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_79 = happySpecReduce_0  13# happyReduction_79
-happyReduction_79  =  happyIn60
-                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoDataSort Language.Rzk.Syntax.Abs.BNFC'NoPosition)
-        )
-
-happyReduce_80 = happySpecReduce_3  14# happyReduction_80
-happyReduction_80 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut63 happy_x_2 of { (HappyWrap63 happy_var_2) -> 
-        case happyOut66 happy_x_3 of { (HappyWrap66 happy_var_3) -> 
-        happyIn61
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.SomeDataBody (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
-        )}}}
-
-happyReduce_81 = happySpecReduce_0  14# happyReduction_81
-happyReduction_81  =  happyIn61
-                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoDataBody Language.Rzk.Syntax.Abs.BNFC'NoPosition)
-        )
-
-happyReduce_82 = happySpecReduce_3  15# happyReduction_82
-happyReduction_82 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
-        case happyOut74 happy_x_2 of { (HappyWrap74 happy_var_2) -> 
-        case happyOut64 happy_x_3 of { (HappyWrap64 happy_var_3) -> 
-        happyIn62
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Constructor (fst happy_var_1) (snd happy_var_1) (snd happy_var_2) (snd happy_var_3))
-        )}}}
-
-happyReduce_83 = happySpecReduce_2  15# happyReduction_83
-happyReduction_83 happy_x_2
-        happy_x_1
-         =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
-        case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> 
-        happyIn62
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.constructorNoParams (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))
-        )}}
-
-happyReduce_84 = happySpecReduce_1  16# happyReduction_84
-happyReduction_84 happy_x_1
-         =  case happyOut62 happy_x_1 of { (HappyWrap62 happy_var_1) -> 
-        happyIn63
-                 ((fst happy_var_1, (:[]) (snd happy_var_1))
-        )}
-
-happyReduce_85 = happySpecReduce_3  16# happyReduction_85
-happyReduction_85 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut62 happy_x_1 of { (HappyWrap62 happy_var_1) -> 
-        case happyOut63 happy_x_3 of { (HappyWrap63 happy_var_3) -> 
-        happyIn63
-                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_86 = happySpecReduce_2  17# happyReduction_86
-happyReduction_86 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        happyIn64
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.SomeConstructorType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_87 = happySpecReduce_0  17# happyReduction_87
-happyReduction_87  =  happyIn64
-                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoConstructorType Language.Rzk.Syntax.Abs.BNFC'NoPosition)
-        )
-
-happyReduce_88 = happyReduce 5# 18# happyReduction_88
-happyReduction_88 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        happyIn65
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.DataElim (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_89 = happyReduce 5# 18# happyReduction_89
-happyReduction_89 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        happyIn65
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.DataCompute (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_90 = happySpecReduce_0  19# happyReduction_90
-happyReduction_90  =  happyIn66
-                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, [])
-        )
-
-happyReduce_91 = happySpecReduce_2  19# happyReduction_91
-happyReduction_91 happy_x_2
-        happy_x_1
-         =  case happyOut65 happy_x_1 of { (HappyWrap65 happy_var_1) -> 
-        case happyOut66 happy_x_2 of { (HappyWrap66 happy_var_2) -> 
-        happyIn66
-                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))
-        )}}
-
-happyReduce_92 = happyReduce 4# 20# happyReduction_92
-happyReduction_92 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
-        case happyOut70 happy_x_2 of { (HappyWrap70 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn67
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.MatchBranch (fst happy_var_1) (snd happy_var_1) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_93 = happySpecReduce_3  20# happyReduction_93
-happyReduction_93 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
-        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
-        happyIn67
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.matchBranchNoParams (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_94 = happyReduce 4# 20# happyReduction_94
-happyReduction_94 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
-        case happyOut70 happy_x_2 of { (HappyWrap70 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn67
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ascii_MatchBranch (fst happy_var_1) (snd happy_var_1) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_95 = happySpecReduce_3  20# happyReduction_95
-happyReduction_95 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
-        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
-        happyIn67
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ascii_matchBranchNoParams (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_96 = happySpecReduce_1  21# happyReduction_96
-happyReduction_96 happy_x_1
-         =  case happyOut67 happy_x_1 of { (HappyWrap67 happy_var_1) -> 
-        happyIn68
-                 ((fst happy_var_1, (:[]) (snd happy_var_1))
-        )}
-
-happyReduce_97 = happySpecReduce_3  21# happyReduction_97
-happyReduction_97 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut67 happy_x_1 of { (HappyWrap67 happy_var_1) -> 
-        case happyOut68 happy_x_3 of { (HappyWrap68 happy_var_3) -> 
-        happyIn68
-                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_98 = happySpecReduce_1  22# happyReduction_98
-happyReduction_98 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn69
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_99 = happySpecReduce_1  22# happyReduction_99
-happyReduction_99 happy_x_1
-         =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
-        happyIn69
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.PatternVar (fst happy_var_1) (snd happy_var_1))
-        )}
-
-happyReduce_100 = happyReduce 5# 22# happyReduction_100
-happyReduction_100 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut69 happy_x_2 of { (HappyWrap69 happy_var_2) -> 
-        case happyOut69 happy_x_4 of { (HappyWrap69 happy_var_4) -> 
-        happyIn69
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternPair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_101 = happyReduce 7# 22# happyReduction_101
-happyReduction_101 (happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut69 happy_x_2 of { (HappyWrap69 happy_var_2) -> 
-        case happyOut69 happy_x_4 of { (HappyWrap69 happy_var_4) -> 
-        case happyOut72 happy_x_6 of { (HappyWrap72 happy_var_6) -> 
-        happyIn69
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternTuple (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_102 = happySpecReduce_1  23# happyReduction_102
-happyReduction_102 happy_x_1
-         =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
-        happyIn70
-                 ((fst happy_var_1, (:[]) (snd happy_var_1))
-        )}
-
-happyReduce_103 = happySpecReduce_2  23# happyReduction_103
-happyReduction_103 happy_x_2
-        happy_x_1
-         =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
-        case happyOut70 happy_x_2 of { (HappyWrap70 happy_var_2) -> 
-        happyIn70
-                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))
-        )}}
-
-happyReduce_104 = happySpecReduce_1  24# happyReduction_104
-happyReduction_104 happy_x_1
-         =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
-        happyIn71
-                 ((fst happy_var_1, (snd happy_var_1))
-        )}
-
-happyReduce_105 = happySpecReduce_1  25# happyReduction_105
-happyReduction_105 happy_x_1
-         =  case happyOut71 happy_x_1 of { (HappyWrap71 happy_var_1) -> 
-        happyIn72
-                 ((fst happy_var_1, (:[]) (snd happy_var_1))
-        )}
-
-happyReduce_106 = happySpecReduce_3  25# happyReduction_106
-happyReduction_106 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut71 happy_x_1 of { (HappyWrap71 happy_var_1) -> 
-        case happyOut72 happy_x_3 of { (HappyWrap72 happy_var_3) -> 
-        happyIn72
-                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_107 = happySpecReduce_1  26# happyReduction_107
-happyReduction_107 happy_x_1
-         =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
-        happyIn73
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamPattern (fst happy_var_1) (snd happy_var_1))
-        )}
-
-happyReduce_108 = happyReduce 5# 26# happyReduction_108
-happyReduction_108 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut70 happy_x_2 of { (HappyWrap70 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn73
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_109 = happyReduce 7# 26# happyReduction_109
-happyReduction_109 (happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut70 happy_x_2 of { (HappyWrap70 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) -> 
-        happyIn73
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_110 = happyReduce 5# 26# happyReduction_110
-happyReduction_110 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut70 happy_x_2 of { (HappyWrap70 happy_var_2) -> 
-        case happyOut83 happy_x_3 of { (HappyWrap83 happy_var_3) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn73
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternModalType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_111 = happyReduce 7# 26# happyReduction_111
-happyReduction_111 (happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut70 happy_x_2 of { (HappyWrap70 happy_var_2) -> 
-        case happyOut83 happy_x_3 of { (HappyWrap83 happy_var_3) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) -> 
-        happyIn73
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternModalShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6))
-        ) `HappyStk` happyRest}}}}}
-
-happyReduce_112 = happySpecReduce_1  27# happyReduction_112
-happyReduction_112 happy_x_1
-         =  case happyOut73 happy_x_1 of { (HappyWrap73 happy_var_1) -> 
-        happyIn74
-                 ((fst happy_var_1, (:[]) (snd happy_var_1))
-        )}
-
-happyReduce_113 = happySpecReduce_2  27# happyReduction_113
-happyReduction_113 happy_x_2
-        happy_x_1
-         =  case happyOut73 happy_x_1 of { (HappyWrap73 happy_var_1) -> 
-        case happyOut74 happy_x_2 of { (HappyWrap74 happy_var_2) -> 
-        happyIn74
-                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))
-        )}}
-
-happyReduce_114 = happySpecReduce_1  28# happyReduction_114
-happyReduction_114 happy_x_1
-         =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
-        happyIn75
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.BindPattern (fst happy_var_1) (snd happy_var_1))
-        )}
-
-happyReduce_115 = happySpecReduce_3  28# happyReduction_115
-happyReduction_115 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
-        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
-        happyIn75
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.BindPatternType (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_116 = happySpecReduce_1  29# happyReduction_116
-happyReduction_116 happy_x_1
-         =  case happyOut89 happy_x_1 of { (HappyWrap89 happy_var_1) -> 
-        happyIn76
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamType (fst happy_var_1) (snd happy_var_1))
-        )}
-
-happyReduce_117 = happyReduce 5# 29# happyReduction_117
-happyReduction_117 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn76
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_118 = happyReduce 7# 29# happyReduction_118
-happyReduction_118 (happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) -> 
-        happyIn76
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_119 = happyReduce 5# 29# happyReduction_119
-happyReduction_119 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        case happyOut83 happy_x_3 of { (HappyWrap83 happy_var_3) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn76
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermModalType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_120 = happyReduce 7# 29# happyReduction_120
-happyReduction_120 (happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        case happyOut83 happy_x_3 of { (HappyWrap83 happy_var_3) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) -> 
-        happyIn76
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermModalShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6))
-        ) `HappyStk` happyRest}}}}}
-
-happyReduce_121 = happySpecReduce_3  30# happyReduction_121
-happyReduction_121 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
-        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
-        happyIn77
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.SigmaParam (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_122 = happySpecReduce_3  30# happyReduction_122
-happyReduction_122 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
-        case happyOut83 happy_x_2 of { (HappyWrap83 happy_var_2) -> 
-        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
-        happyIn77
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.SigmaParamModal (fst happy_var_1) (snd happy_var_1) (snd happy_var_2) (snd happy_var_3))
-        )}}}
-
-happyReduce_123 = happySpecReduce_1  31# happyReduction_123
-happyReduction_123 happy_x_1
-         =  case happyOut77 happy_x_1 of { (HappyWrap77 happy_var_1) -> 
-        happyIn78
-                 ((fst happy_var_1, (:[]) (snd happy_var_1))
-        )}
-
-happyReduce_124 = happySpecReduce_3  31# happyReduction_124
-happyReduction_124 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut77 happy_x_1 of { (HappyWrap77 happy_var_1) -> 
-        case happyOut78 happy_x_3 of { (HappyWrap78 happy_var_3) -> 
-        happyIn78
-                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_125 = happySpecReduce_3  32# happyReduction_125
-happyReduction_125 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut91 happy_x_1 of { (HappyWrap91 happy_var_1) -> 
-        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
-        happyIn79
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_126 = happySpecReduce_3  32# happyReduction_126
-happyReduction_126 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut91 happy_x_1 of { (HappyWrap91 happy_var_1) -> 
-        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
-        happyIn79
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_127 = happySpecReduce_1  33# happyReduction_127
-happyReduction_127 happy_x_1
-         =  case happyOut79 happy_x_1 of { (HappyWrap79 happy_var_1) -> 
-        happyIn80
-                 ((fst happy_var_1, (:[]) (snd happy_var_1))
-        )}
-
-happyReduce_128 = happySpecReduce_3  33# happyReduction_128
-happyReduction_128 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut79 happy_x_1 of { (HappyWrap79 happy_var_1) -> 
-        case happyOut80 happy_x_3 of { (HappyWrap80 happy_var_3) -> 
-        happyIn80
-                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_129 = happySpecReduce_1  34# happyReduction_129
-happyReduction_129 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Flat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_130 = happySpecReduce_1  34# happyReduction_130
-happyReduction_130 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Flat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_131 = happySpecReduce_1  34# happyReduction_131
-happyReduction_131 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Sharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_132 = happySpecReduce_1  34# happyReduction_132
-happyReduction_132 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Sharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_133 = happySpecReduce_1  34# happyReduction_133
-happyReduction_133 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Op (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_134 = happySpecReduce_1  34# happyReduction_134
-happyReduction_134 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Op (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_135 = happySpecReduce_1  34# happyReduction_135
-happyReduction_135 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Id (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_136 = happySpecReduce_1  35# happyReduction_136
-happyReduction_136 happy_x_1
-         =  case happyOut81 happy_x_1 of { (HappyWrap81 happy_var_1) -> 
-        happyIn82
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Single (fst happy_var_1) (snd happy_var_1))
-        )}
-
-happyReduce_137 = happySpecReduce_3  35# happyReduction_137
-happyReduction_137 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut81 happy_x_1 of { (HappyWrap81 happy_var_1) -> 
-        case happyOut81 happy_x_3 of { (HappyWrap81 happy_var_3) -> 
-        happyIn82
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Comp (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_138 = happySpecReduce_1  36# happyReduction_138
-happyReduction_138 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonFlat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_139 = happySpecReduce_1  36# happyReduction_139
-happyReduction_139 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonSharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_140 = happySpecReduce_1  36# happyReduction_140
-happyReduction_140 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonOp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_141 = happySpecReduce_1  36# happyReduction_141
-happyReduction_141 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonId (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_142 = happySpecReduce_1  36# happyReduction_142
-happyReduction_142 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_ModalColonFlat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_143 = happySpecReduce_1  36# happyReduction_143
-happyReduction_143 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_ModalColonSharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_144 = happySpecReduce_1  36# happyReduction_144
-happyReduction_144 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_ModalColonOp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_145 = happySpecReduce_1  37# happyReduction_145
-happyReduction_145 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Universe (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_146 = happySpecReduce_1  37# happyReduction_146
-happyReduction_146 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseCube (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_147 = happySpecReduce_1  37# happyReduction_147
-happyReduction_147 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseTope (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_148 = happySpecReduce_1  37# happyReduction_148
-happyReduction_148 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_149 = happySpecReduce_1  37# happyReduction_149
-happyReduction_149 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_150 = happySpecReduce_1  37# happyReduction_150
-happyReduction_150 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_151 = happySpecReduce_1  37# happyReduction_151
-happyReduction_151 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_152 = happySpecReduce_1  37# happyReduction_152
-happyReduction_152 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_153 = happySpecReduce_1  37# happyReduction_153
-happyReduction_153 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeI (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_154 = happySpecReduce_1  37# happyReduction_154
-happyReduction_154 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeI_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_155 = happySpecReduce_1  37# happyReduction_155
-happyReduction_155 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeI_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_156 = happySpecReduce_1  37# happyReduction_156
-happyReduction_156 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_157 = happySpecReduce_1  37# happyReduction_157
-happyReduction_157 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_158 = happySpecReduce_1  37# happyReduction_158
-happyReduction_158 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_159 = happyReduce 4# 37# happyReduction_159
-happyReduction_159 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut80 happy_x_3 of { (HappyWrap80 happy_var_3) -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3))
-        ) `HappyStk` happyRest}}
-
-happyReduce_160 = happySpecReduce_1  37# happyReduction_160
-happyReduction_160 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_161 = happyReduce 5# 37# happyReduction_161
-happyReduction_161 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Pair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_162 = happyReduce 7# 37# happyReduction_162
-happyReduction_162 (happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        case happyOut92 happy_x_6 of { (HappyWrap92 happy_var_6) -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Tuple (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_163 = happySpecReduce_3  37# happyReduction_163
-happyReduction_163 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut81 happy_x_2 of { (HappyWrap81 happy_var_2) -> 
-        case happyOut84 happy_x_3 of { (HappyWrap84 happy_var_3) -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModApp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
-        )}}}
-
-happyReduce_164 = happySpecReduce_2  37# happyReduction_164
-happyReduction_164 happy_x_2
-        happy_x_1
-         =  case happyOut81 happy_x_1 of { (HappyWrap81 happy_var_1) -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn84
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ModType (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))
-        )}}
-
-happyReduce_165 = happySpecReduce_1  37# happyReduction_165
-happyReduction_165 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Unit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_166 = happySpecReduce_1  37# happyReduction_166
-happyReduction_166 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Refl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_167 = happySpecReduce_3  37# happyReduction_167
-happyReduction_167 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTerm (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_168 = happyReduce 5# 37# happyReduction_168
-happyReduction_168 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTermType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_169 = happyReduce 14# 37# happyReduction_169
-happyReduction_169 (happy_x_14 `HappyStk`
-        happy_x_13 `HappyStk`
-        happy_x_12 `HappyStk`
-        happy_x_11 `HappyStk`
-        happy_x_10 `HappyStk`
-        happy_x_9 `HappyStk`
-        happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        case happyOut91 happy_x_7 of { (HappyWrap91 happy_var_7) -> 
-        case happyOut91 happy_x_9 of { (HappyWrap91 happy_var_9) -> 
-        case happyOut91 happy_x_11 of { (HappyWrap91 happy_var_11) -> 
-        case happyOut91 happy_x_13 of { (HappyWrap91 happy_var_13) -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.IdJ (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9) (snd happy_var_11) (snd happy_var_13))
-        ) `HappyStk` happyRest}}}}}}}
-
-happyReduce_170 = happyReduce 5# 37# happyReduction_170
-happyReduction_170 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        case happyOut68 happy_x_4 of { (HappyWrap68 happy_var_4) -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Match (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_171 = happyReduce 7# 37# happyReduction_171
-happyReduction_171 (happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        case happyOut84 happy_x_4 of { (HappyWrap84 happy_var_4) -> 
-        case happyOut68 happy_x_6 of { (HappyWrap68 happy_var_6) -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.MatchInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_172 = happySpecReduce_1  37# happyReduction_172
-happyReduction_172 happy_x_1
-         =  case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> 
-        happyIn84
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Hole (fst happy_var_1) (snd happy_var_1))
-        )}
-
-happyReduce_173 = happySpecReduce_1  37# happyReduction_173
-happyReduction_173 happy_x_1
-         =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
-        happyIn84
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Var (fst happy_var_1) (snd happy_var_1))
-        )}
-
-happyReduce_174 = happySpecReduce_3  37# happyReduction_174
-happyReduction_174 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut91 happy_x_2 of { (HappyWrap91 happy_var_2) -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), (snd happy_var_2))
-        )}}
-
-happyReduce_175 = happySpecReduce_1  37# happyReduction_175
-happyReduction_175 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_176 = happySpecReduce_1  37# happyReduction_176
-happyReduction_176 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_177 = happySpecReduce_1  37# happyReduction_177
-happyReduction_177 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_178 = happySpecReduce_1  37# happyReduction_178
-happyReduction_178 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeI (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_179 = happySpecReduce_1  37# happyReduction_179
-happyReduction_179 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeI_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_180 = happySpecReduce_1  37# happyReduction_180
-happyReduction_180 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeI_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_181 = happySpecReduce_1  37# happyReduction_181
-happyReduction_181 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_182 = happySpecReduce_1  37# happyReduction_182
-happyReduction_182 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
-happyReduce_183 = happySpecReduce_3  38# happyReduction_183
-happyReduction_183 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
-        case happyOut89 happy_x_3 of { (HappyWrap89 happy_var_3) -> 
-        happyIn85
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_184 = happySpecReduce_3  38# happyReduction_184
-happyReduction_184 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
-        case happyOut89 happy_x_3 of { (HappyWrap89 happy_var_3) -> 
-        happyIn85
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeSup (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_185 = happySpecReduce_3  38# happyReduction_185
-happyReduction_185 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
-        case happyOut89 happy_x_3 of { (HappyWrap89 happy_var_3) -> 
-        happyIn85
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeInf (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_186 = happySpecReduce_1  38# happyReduction_186
-happyReduction_186 happy_x_1
-         =  case happyOut89 happy_x_1 of { (HappyWrap89 happy_var_1) -> 
-        happyIn85
-                 ((fst happy_var_1, (snd happy_var_1))
-        )}
-
-happyReduce_187 = happySpecReduce_3  38# happyReduction_187
-happyReduction_187 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
-        case happyOut89 happy_x_3 of { (HappyWrap89 happy_var_3) -> 
-        happyIn85
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ascii_CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_188 = happySpecReduce_3  39# happyReduction_188
-happyReduction_188 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
-        case happyOut85 happy_x_3 of { (HappyWrap85 happy_var_3) -> 
-        happyIn86
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_189 = happySpecReduce_3  39# happyReduction_189
-happyReduction_189 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
-        case happyOut85 happy_x_3 of { (HappyWrap85 happy_var_3) -> 
-        happyIn86
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_190 = happySpecReduce_1  39# happyReduction_190
-happyReduction_190 happy_x_1
-         =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
-        happyIn86
-                 ((fst happy_var_1, (snd happy_var_1))
-        )}
-
-happyReduce_191 = happySpecReduce_3  39# happyReduction_191
-happyReduction_191 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
-        case happyOut85 happy_x_3 of { (HappyWrap85 happy_var_3) -> 
-        happyIn86
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_192 = happySpecReduce_3  39# happyReduction_192
-happyReduction_192 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
-        case happyOut85 happy_x_3 of { (HappyWrap85 happy_var_3) -> 
-        happyIn86
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_193 = happySpecReduce_3  40# happyReduction_193
-happyReduction_193 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
-        case happyOut87 happy_x_3 of { (HappyWrap87 happy_var_3) -> 
-        happyIn87
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_194 = happySpecReduce_1  40# happyReduction_194
-happyReduction_194 happy_x_1
-         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
-        happyIn87
-                 ((fst happy_var_1, (snd happy_var_1))
-        )}
-
-happyReduce_195 = happySpecReduce_3  40# happyReduction_195
-happyReduction_195 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
-        case happyOut87 happy_x_3 of { (HappyWrap87 happy_var_3) -> 
-        happyIn87
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_196 = happySpecReduce_3  41# happyReduction_196
-happyReduction_196 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut87 happy_x_1 of { (HappyWrap87 happy_var_1) -> 
-        case happyOut88 happy_x_3 of { (HappyWrap88 happy_var_3) -> 
-        happyIn88
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_197 = happySpecReduce_1  41# happyReduction_197
-happyReduction_197 happy_x_1
-         =  case happyOut87 happy_x_1 of { (HappyWrap87 happy_var_1) -> 
-        happyIn88
-                 ((fst happy_var_1, (snd happy_var_1))
-        )}
-
-happyReduce_198 = happySpecReduce_3  41# happyReduction_198
-happyReduction_198 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut87 happy_x_1 of { (HappyWrap87 happy_var_1) -> 
-        case happyOut88 happy_x_3 of { (HappyWrap88 happy_var_3) -> 
-        happyIn88
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_199 = happySpecReduce_2  42# happyReduction_199
-happyReduction_199 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeInv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_200 = happySpecReduce_2  42# happyReduction_200
-happyReduction_200 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TopeInv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_201 = happySpecReduce_2  42# happyReduction_201
-happyReduction_201 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeUninv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_202 = happySpecReduce_2  42# happyReduction_202
-happyReduction_202 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TopeUninv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_203 = happySpecReduce_2  42# happyReduction_203
-happyReduction_203 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeFlip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_204 = happySpecReduce_2  42# happyReduction_204
-happyReduction_204 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeFlip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_205 = happySpecReduce_2  42# happyReduction_205
-happyReduction_205 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnflip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_206 = happySpecReduce_2  42# happyReduction_206
-happyReduction_206 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeUnflip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_207 = happyReduce 4# 42# happyReduction_207
-happyReduction_207 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOut89 happy_x_1 of { (HappyWrap89 happy_var_1) -> 
-        case happyOut80 happy_x_3 of { (HappyWrap80 happy_var_3) -> 
-        happyIn89
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeRestricted (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        ) `HappyStk` happyRest}}
-
-happyReduce_208 = happySpecReduce_2  42# happyReduction_208
-happyReduction_208 happy_x_2
-        happy_x_1
-         =  case happyOut89 happy_x_1 of { (HappyWrap89 happy_var_1) -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.App (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))
-        )}}
-
-happyReduce_209 = happySpecReduce_3  42# happyReduction_209
-happyReduction_209 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut82 happy_x_2 of { (HappyWrap82 happy_var_2) -> 
-        case happyOut84 happy_x_3 of { (HappyWrap84 happy_var_3) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModExtract (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
-        )}}}
-
-happyReduce_210 = happySpecReduce_2  42# happyReduction_210
-happyReduction_210 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_211 = happySpecReduce_2  42# happyReduction_211
-happyReduction_211 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_212 = happySpecReduce_1  42# happyReduction_212
-happyReduction_212 happy_x_1
-         =  case happyOut84 happy_x_1 of { (HappyWrap84 happy_var_1) -> 
-        happyIn89
-                 ((fst happy_var_1, (snd happy_var_1))
-        )}
-
-happyReduce_213 = happySpecReduce_3  42# happyReduction_213
-happyReduction_213 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        case happyOut84 happy_x_3 of { (HappyWrap84 happy_var_3) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeSup (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
-        )}}}
-
-happyReduce_214 = happySpecReduce_3  42# happyReduction_214
-happyReduction_214 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        case happyOut84 happy_x_3 of { (HappyWrap84 happy_var_3) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeInf (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
-        )}}}
-
-happyReduce_215 = happySpecReduce_2  42# happyReduction_215
-happyReduction_215 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_216 = happySpecReduce_2  42# happyReduction_216
-happyReduction_216 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
-happyReduce_217 = happySpecReduce_3  43# happyReduction_217
-happyReduction_217 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut76 happy_x_1 of { (HappyWrap76 happy_var_1) -> 
-        case happyOut90 happy_x_3 of { (HappyWrap90 happy_var_3) -> 
-        happyIn90
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_218 = happyReduce 8# 43# happyReduction_218
-happyReduction_218 (happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut69 happy_x_3 of { (HappyWrap69 happy_var_3) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        case happyOut90 happy_x_8 of { (HappyWrap90 happy_var_8) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_219 = happyReduce 8# 43# happyReduction_219
-happyReduction_219 (happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut69 happy_x_3 of { (HappyWrap69 happy_var_3) -> 
-        case happyOut83 happy_x_4 of { (HappyWrap83 happy_var_4) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        case happyOut90 happy_x_8 of { (HappyWrap90 happy_var_8) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigmaModal (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_5) (snd happy_var_8))
-        ) `HappyStk` happyRest}}}}}
-
-happyReduce_220 = happyReduce 8# 43# happyReduction_220
-happyReduction_220 (happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut77 happy_x_3 of { (HappyWrap77 happy_var_3) -> 
-        case happyOut78 happy_x_5 of { (HappyWrap78 happy_var_5) -> 
-        case happyOut90 happy_x_8 of { (HappyWrap90 happy_var_8) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigmaTuple (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_221 = happyReduce 5# 43# happyReduction_221
-happyReduction_221 (happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) -> 
-        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
-        case happyOut88 happy_x_5 of { (HappyWrap88 happy_var_5) -> 
-        happyIn90
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeId (fst happy_var_1) (snd happy_var_1) (snd happy_var_3) (snd happy_var_5))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_222 = happySpecReduce_3  43# happyReduction_222
-happyReduction_222 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) -> 
-        case happyOut88 happy_x_3 of { (HappyWrap88 happy_var_3) -> 
-        happyIn90
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeIdSimple (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_223 = happyReduce 6# 43# happyReduction_223
-happyReduction_223 (happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut75 happy_x_2 of { (HappyWrap75 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
-        case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Let (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_224 = happyReduce 4# 43# happyReduction_224
-happyReduction_224 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut74 happy_x_2 of { (HappyWrap74 happy_var_2) -> 
-        case happyOut90 happy_x_4 of { (HappyWrap90 happy_var_4) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_225 = happyReduce 7# 43# happyReduction_225
-happyReduction_225 (happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut81 happy_x_2 of { (HappyWrap81 happy_var_2) -> 
-        case happyOut75 happy_x_3 of { (HappyWrap75 happy_var_3) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        case happyOut91 happy_x_7 of { (HappyWrap91 happy_var_7) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModBind (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))
-        ) `HappyStk` happyRest}}}}}
-
-happyReduce_226 = happyReduce 8# 43# happyReduction_226
-happyReduction_226 (happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut81 happy_x_3 of { (HappyWrap81 happy_var_3) -> 
-        case happyOut75 happy_x_4 of { (HappyWrap75 happy_var_4) -> 
-        case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) -> 
-        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetMod (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))
-        ) `HappyStk` happyRest}}}}}
-
-happyReduce_227 = happyReduce 9# 43# happyReduction_227
-happyReduction_227 (happy_x_9 `HappyStk`
-        happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut81 happy_x_2 of { (HappyWrap81 happy_var_2) -> 
-        case happyOut81 happy_x_4 of { (HappyWrap81 happy_var_4) -> 
-        case happyOut75 happy_x_5 of { (HappyWrap75 happy_var_5) -> 
-        case happyOut91 happy_x_7 of { (HappyWrap91 happy_var_7) -> 
-        case happyOut91 happy_x_9 of { (HappyWrap91 happy_var_9) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModFramed (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9))
-        ) `HappyStk` happyRest}}}}}}
-
-happyReduce_228 = happyReduce 9# 43# happyReduction_228
-happyReduction_228 (happy_x_9 `HappyStk`
-        happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut81 happy_x_2 of { (HappyWrap81 happy_var_2) -> 
-        case happyOut75 happy_x_3 of { (HappyWrap75 happy_var_3) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        case happyOut91 happy_x_7 of { (HappyWrap91 happy_var_7) -> 
-        case happyOut91 happy_x_9 of { (HappyWrap91 happy_var_9) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModBindInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9))
-        ) `HappyStk` happyRest}}}}}}
-
-happyReduce_229 = happyReduce 10# 43# happyReduction_229
-happyReduction_229 (happy_x_10 `HappyStk`
-        happy_x_9 `HappyStk`
-        happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut81 happy_x_3 of { (HappyWrap81 happy_var_3) -> 
-        case happyOut75 happy_x_4 of { (HappyWrap75 happy_var_4) -> 
-        case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) -> 
-        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
-        case happyOut91 happy_x_10 of { (HappyWrap91 happy_var_10) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8) (snd happy_var_10))
-        ) `HappyStk` happyRest}}}}}}
-
-happyReduce_230 = happyReduce 11# 43# happyReduction_230
-happyReduction_230 (happy_x_11 `HappyStk`
-        happy_x_10 `HappyStk`
-        happy_x_9 `HappyStk`
-        happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut81 happy_x_2 of { (HappyWrap81 happy_var_2) -> 
-        case happyOut81 happy_x_4 of { (HappyWrap81 happy_var_4) -> 
-        case happyOut75 happy_x_5 of { (HappyWrap75 happy_var_5) -> 
-        case happyOut91 happy_x_7 of { (HappyWrap91 happy_var_7) -> 
-        case happyOut91 happy_x_9 of { (HappyWrap91 happy_var_9) -> 
-        case happyOut91 happy_x_11 of { (HappyWrap91 happy_var_11) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModFramedInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9) (snd happy_var_11))
-        ) `HappyStk` happyRest}}}}}}}
-
-happyReduce_231 = happySpecReduce_1  43# happyReduction_231
-happyReduction_231 happy_x_1
-         =  case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) -> 
-        happyIn90
-                 ((fst happy_var_1, (snd happy_var_1))
-        )}
-
-happyReduce_232 = happySpecReduce_3  43# happyReduction_232
-happyReduction_232 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut76 happy_x_1 of { (HappyWrap76 happy_var_1) -> 
-        case happyOut90 happy_x_3 of { (HappyWrap90 happy_var_3) -> 
-        happyIn90
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_233 = happyReduce 8# 43# happyReduction_233
-happyReduction_233 (happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut69 happy_x_3 of { (HappyWrap69 happy_var_3) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        case happyOut90 happy_x_8 of { (HappyWrap90 happy_var_8) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_234 = happyReduce 8# 43# happyReduction_234
-happyReduction_234 (happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut69 happy_x_3 of { (HappyWrap69 happy_var_3) -> 
-        case happyOut83 happy_x_4 of { (HappyWrap83 happy_var_4) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        case happyOut90 happy_x_8 of { (HappyWrap90 happy_var_8) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TypeSigmaModal (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_5) (snd happy_var_8))
-        ) `HappyStk` happyRest}}}}}
-
-happyReduce_235 = happyReduce 8# 43# happyReduction_235
-happyReduction_235 (happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut77 happy_x_3 of { (HappyWrap77 happy_var_3) -> 
-        case happyOut78 happy_x_5 of { (HappyWrap78 happy_var_5) -> 
-        case happyOut90 happy_x_8 of { (HappyWrap90 happy_var_8) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TypeSigmaTuple (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_236 = happyReduce 4# 43# happyReduction_236
-happyReduction_236 (happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut74 happy_x_2 of { (HappyWrap74 happy_var_2) -> 
-        case happyOut90 happy_x_4 of { (HappyWrap90 happy_var_4) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
-        ) `HappyStk` happyRest}}}
-
-happyReduce_237 = happyReduce 8# 43# happyReduction_237
-happyReduction_237 (happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut69 happy_x_3 of { (HappyWrap69 happy_var_3) -> 
-        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
-        case happyOut90 happy_x_8 of { (HappyWrap90 happy_var_8) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaAlt (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_238 = happyReduce 8# 43# happyReduction_238
-happyReduction_238 (happy_x_8 `HappyStk`
-        happy_x_7 `HappyStk`
-        happy_x_6 `HappyStk`
-        happy_x_5 `HappyStk`
-        happy_x_4 `HappyStk`
-        happy_x_3 `HappyStk`
-        happy_x_2 `HappyStk`
-        happy_x_1 `HappyStk`
-        happyRest)
-         = case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut77 happy_x_3 of { (HappyWrap77 happy_var_3) -> 
-        case happyOut78 happy_x_5 of { (HappyWrap78 happy_var_5) -> 
-        case happyOut90 happy_x_8 of { (HappyWrap90 happy_var_8) -> 
-        happyIn90
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaTupleAlt (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
-        ) `HappyStk` happyRest}}}}
-
-happyReduce_239 = happySpecReduce_3  44# happyReduction_239
-happyReduction_239 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) -> 
-        case happyOut90 happy_x_3 of { (HappyWrap90 happy_var_3) -> 
-        happyIn91
-                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeAsc (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyReduce_240 = happySpecReduce_1  44# happyReduction_240
-happyReduction_240 happy_x_1
-         =  case happyOut90 happy_x_1 of { (HappyWrap90 happy_var_1) -> 
-        happyIn91
-                 ((fst happy_var_1, (snd happy_var_1))
-        )}
-
-happyReduce_241 = happySpecReduce_1  45# happyReduction_241
-happyReduction_241 happy_x_1
-         =  case happyOut91 happy_x_1 of { (HappyWrap91 happy_var_1) -> 
-        happyIn92
-                 ((fst happy_var_1, (:[]) (snd happy_var_1))
-        )}
-
-happyReduce_242 = happySpecReduce_3  45# happyReduction_242
-happyReduction_242 happy_x_3
-        happy_x_2
-        happy_x_1
-         =  case happyOut91 happy_x_1 of { (HappyWrap91 happy_var_1) -> 
-        case happyOut92 happy_x_3 of { (HappyWrap92 happy_var_3) -> 
-        happyIn92
-                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
-        )}}
-
-happyTerminalToTok term = case term of {
-        PT _ (TS _ 1) -> 2#;
-        PT _ (TS _ 2) -> 3#;
-        PT _ (TS _ 3) -> 4#;
-        PT _ (TS _ 4) -> 5#;
-        PT _ (TS _ 5) -> 6#;
-        PT _ (TS _ 6) -> 7#;
-        PT _ (TS _ 7) -> 8#;
-        PT _ (TS _ 8) -> 9#;
-        PT _ (TS _ 9) -> 10#;
-        PT _ (TS _ 10) -> 11#;
-        PT _ (TS _ 11) -> 12#;
-        PT _ (TS _ 12) -> 13#;
-        PT _ (TS _ 13) -> 14#;
-        PT _ (TS _ 14) -> 15#;
-        PT _ (TS _ 15) -> 16#;
-        PT _ (TS _ 16) -> 17#;
-        PT _ (TS _ 17) -> 18#;
-        PT _ (TS _ 18) -> 19#;
-        PT _ (TS _ 19) -> 20#;
-        PT _ (TS _ 20) -> 21#;
-        PT _ (TS _ 21) -> 22#;
-        PT _ (TS _ 22) -> 23#;
-        PT _ (TS _ 23) -> 24#;
-        PT _ (TS _ 24) -> 25#;
-        PT _ (TS _ 25) -> 26#;
-        PT _ (TS _ 26) -> 27#;
-        PT _ (TS _ 27) -> 28#;
-        PT _ (TS _ 28) -> 29#;
-        PT _ (TS _ 29) -> 30#;
-        PT _ (TS _ 30) -> 31#;
-        PT _ (TS _ 31) -> 32#;
-        PT _ (TS _ 32) -> 33#;
-        PT _ (TS _ 33) -> 34#;
-        PT _ (TS _ 34) -> 35#;
-        PT _ (TS _ 35) -> 36#;
-        PT _ (TS _ 36) -> 37#;
-        PT _ (TS _ 37) -> 38#;
-        PT _ (TS _ 38) -> 39#;
-        PT _ (TS _ 39) -> 40#;
-        PT _ (TS _ 40) -> 41#;
-        PT _ (TS _ 41) -> 42#;
-        PT _ (TS _ 42) -> 43#;
-        PT _ (TS _ 43) -> 44#;
-        PT _ (TS _ 44) -> 45#;
-        PT _ (TS _ 45) -> 46#;
-        PT _ (TS _ 46) -> 47#;
-        PT _ (TS _ 47) -> 48#;
-        PT _ (TS _ 48) -> 49#;
-        PT _ (TS _ 49) -> 50#;
-        PT _ (TS _ 50) -> 51#;
-        PT _ (TS _ 51) -> 52#;
-        PT _ (TS _ 52) -> 53#;
-        PT _ (TS _ 53) -> 54#;
-        PT _ (TS _ 54) -> 55#;
-        PT _ (TS _ 55) -> 56#;
-        PT _ (TS _ 56) -> 57#;
-        PT _ (TS _ 57) -> 58#;
-        PT _ (TS _ 58) -> 59#;
-        PT _ (TS _ 59) -> 60#;
-        PT _ (TS _ 60) -> 61#;
-        PT _ (TS _ 61) -> 62#;
-        PT _ (TS _ 62) -> 63#;
-        PT _ (TS _ 63) -> 64#;
-        PT _ (TS _ 64) -> 65#;
-        PT _ (TS _ 65) -> 66#;
-        PT _ (TS _ 66) -> 67#;
-        PT _ (TS _ 67) -> 68#;
-        PT _ (TS _ 68) -> 69#;
-        PT _ (TS _ 69) -> 70#;
-        PT _ (TS _ 70) -> 71#;
-        PT _ (TS _ 71) -> 72#;
-        PT _ (TS _ 72) -> 73#;
-        PT _ (TS _ 73) -> 74#;
-        PT _ (TS _ 74) -> 75#;
-        PT _ (TS _ 75) -> 76#;
-        PT _ (TS _ 76) -> 77#;
-        PT _ (TS _ 77) -> 78#;
-        PT _ (TS _ 78) -> 79#;
-        PT _ (TS _ 79) -> 80#;
-        PT _ (TS _ 80) -> 81#;
-        PT _ (TS _ 81) -> 82#;
-        PT _ (TS _ 82) -> 83#;
-        PT _ (TS _ 83) -> 84#;
-        PT _ (TS _ 84) -> 85#;
-        PT _ (TS _ 85) -> 86#;
-        PT _ (TS _ 86) -> 87#;
-        PT _ (TS _ 87) -> 88#;
-        PT _ (TS _ 88) -> 89#;
-        PT _ (TS _ 89) -> 90#;
-        PT _ (TS _ 90) -> 91#;
-        PT _ (TS _ 91) -> 92#;
-        PT _ (TS _ 92) -> 93#;
-        PT _ (TS _ 93) -> 94#;
-        PT _ (TS _ 94) -> 95#;
-        PT _ (TS _ 95) -> 96#;
-        PT _ (TS _ 96) -> 97#;
-        PT _ (TS _ 97) -> 98#;
-        PT _ (TS _ 98) -> 99#;
-        PT _ (TS _ 99) -> 100#;
-        PT _ (TS _ 100) -> 101#;
-        PT _ (TS _ 101) -> 102#;
-        PT _ (TS _ 102) -> 103#;
-        PT _ (TS _ 103) -> 104#;
-        PT _ (TS _ 104) -> 105#;
-        PT _ (TS _ 105) -> 106#;
-        PT _ (TS _ 106) -> 107#;
-        PT _ (TS _ 107) -> 108#;
-        PT _ (TS _ 108) -> 109#;
-        PT _ (TS _ 109) -> 110#;
-        PT _ (TS _ 110) -> 111#;
-        PT _ (TS _ 111) -> 112#;
-        PT _ (TS _ 112) -> 113#;
-        PT _ (TS _ 113) -> 114#;
-        PT _ (TS _ 114) -> 115#;
-        PT _ (TS _ 115) -> 116#;
-        PT _ (TS _ 116) -> 117#;
-        PT _ (TS _ 117) -> 118#;
-        PT _ (TS _ 118) -> 119#;
-        PT _ (TS _ 119) -> 120#;
-        PT _ (TL _) -> 121#;
-        PT _ (T_VarIdentToken _) -> 122#;
-        PT _ (T_HoleIdentToken _) -> 123#;
-        _ -> -1#;
-        }
-{-# NOINLINE happyTerminalToTok #-}
-
-happyLex kend  _kmore []       = kend notHappyAtAll []
-happyLex _kend kmore  (tk:tks) = kmore (happyTerminalToTok tk) tk tks
-{-# INLINE happyLex #-}
-
-happyNewToken action sts stk = happyLex (\tk -> happyDoAction 124# notHappyAtAll action sts stk) (\i tk -> happyDoAction i tk action sts stk)
-
-happyReport 124# tk explist resume tks = happyReport' tks explist resume
-happyReport _ tk explist resume tks = happyReport' (tk:tks) explist (\tks -> resume (Happy_Prelude.tail tks))
-
-
-happyThen :: () => (Err a) -> (a -> (Err b)) -> (Err b)
-happyThen = ((>>=))
-happyReturn :: () => a -> (Err a)
-happyReturn = (return)
-happyThen1 m k tks = ((>>=)) m (\a -> k a tks)
-happyFmap1 f m tks = happyThen (m tks) (\a -> happyReturn (f a))
-happyReturn1 :: () => a -> b -> (Err a)
-happyReturn1 = \a tks -> (return) a
-happyReport' :: () => [(Token)] -> [Happy_Prelude.String] -> ([(Token)] -> (Err a)) -> (Err a)
-happyReport' = (\tokens expected resume -> happyError tokens)
-
-happyAbort :: () => [(Token)] -> (Err a)
-happyAbort = Happy_Prelude.error "Called abort handler in non-resumptive parser"
-
-pModule_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 0# tks) (\x -> happyReturn (let {(HappyWrap50 x') = happyOut50 x} in x'))
-
-pHoleIdent_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 1# tks) (\x -> happyReturn (let {(HappyWrap51 x') = happyOut51 x} in x'))
-
-pVarIdent_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 2# tks) (\x -> happyReturn (let {(HappyWrap52 x') = happyOut52 x} in x'))
-
-pListVarIdent_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 3# tks) (\x -> happyReturn (let {(HappyWrap53 x') = happyOut53 x} in x'))
-
-pLanguageDecl_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 4# tks) (\x -> happyReturn (let {(HappyWrap54 x') = happyOut54 x} in x'))
-
-pLanguage_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 5# tks) (\x -> happyReturn (let {(HappyWrap55 x') = happyOut55 x} in x'))
-
-pCommand_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 6# tks) (\x -> happyReturn (let {(HappyWrap56 x') = happyOut56 x} in x'))
-
-pListCommand_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 7# tks) (\x -> happyReturn (let {(HappyWrap57 x') = happyOut57 x} in x'))
-
-pDeclUsedVars_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 8# tks) (\x -> happyReturn (let {(HappyWrap58 x') = happyOut58 x} in x'))
-
-pSectionName_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 9# tks) (\x -> happyReturn (let {(HappyWrap59 x') = happyOut59 x} in x'))
-
-pDataSort_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 10# tks) (\x -> happyReturn (let {(HappyWrap60 x') = happyOut60 x} in x'))
-
-pDataBody_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 11# tks) (\x -> happyReturn (let {(HappyWrap61 x') = happyOut61 x} in x'))
-
-pConstructor_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 12# tks) (\x -> happyReturn (let {(HappyWrap62 x') = happyOut62 x} in x'))
-
-pListConstructor_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 13# tks) (\x -> happyReturn (let {(HappyWrap63 x') = happyOut63 x} in x'))
-
-pConstructorType_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 14# tks) (\x -> happyReturn (let {(HappyWrap64 x') = happyOut64 x} in x'))
-
-pDataElim_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 15# tks) (\x -> happyReturn (let {(HappyWrap65 x') = happyOut65 x} in x'))
-
-pListDataElim_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 16# tks) (\x -> happyReturn (let {(HappyWrap66 x') = happyOut66 x} in x'))
-
-pMatchBranch_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 17# tks) (\x -> happyReturn (let {(HappyWrap67 x') = happyOut67 x} in x'))
-
-pListMatchBranch_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 18# tks) (\x -> happyReturn (let {(HappyWrap68 x') = happyOut68 x} in x'))
-
-pPattern_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 19# tks) (\x -> happyReturn (let {(HappyWrap69 x') = happyOut69 x} in x'))
-
-pListPattern_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 20# tks) (\x -> happyReturn (let {(HappyWrap70 x') = happyOut70 x} in x'))
-
-pPattern1_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 21# tks) (\x -> happyReturn (let {(HappyWrap71 x') = happyOut71 x} in x'))
-
-pListPattern1_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 22# tks) (\x -> happyReturn (let {(HappyWrap72 x') = happyOut72 x} in x'))
-
-pParam_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 23# tks) (\x -> happyReturn (let {(HappyWrap73 x') = happyOut73 x} in x'))
-
-pListParam_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 24# tks) (\x -> happyReturn (let {(HappyWrap74 x') = happyOut74 x} in x'))
-
-pBind_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 25# tks) (\x -> happyReturn (let {(HappyWrap75 x') = happyOut75 x} in x'))
-
-pParamDecl_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 26# tks) (\x -> happyReturn (let {(HappyWrap76 x') = happyOut76 x} in x'))
-
-pSigmaParam_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 27# tks) (\x -> happyReturn (let {(HappyWrap77 x') = happyOut77 x} in x'))
-
-pListSigmaParam_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 28# tks) (\x -> happyReturn (let {(HappyWrap78 x') = happyOut78 x} in x'))
-
-pRestriction_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 29# tks) (\x -> happyReturn (let {(HappyWrap79 x') = happyOut79 x} in x'))
-
-pListRestriction_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 30# tks) (\x -> happyReturn (let {(HappyWrap80 x') = happyOut80 x} in x'))
-
-pModality_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 31# tks) (\x -> happyReturn (let {(HappyWrap81 x') = happyOut81 x} in x'))
-
-pModComp_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 32# tks) (\x -> happyReturn (let {(HappyWrap82 x') = happyOut82 x} in x'))
-
-pModalColon_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 33# tks) (\x -> happyReturn (let {(HappyWrap83 x') = happyOut83 x} in x'))
-
-pTerm7_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 34# tks) (\x -> happyReturn (let {(HappyWrap84 x') = happyOut84 x} in x'))
-
-pTerm5_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 35# tks) (\x -> happyReturn (let {(HappyWrap85 x') = happyOut85 x} in x'))
-
-pTerm4_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 36# tks) (\x -> happyReturn (let {(HappyWrap86 x') = happyOut86 x} in x'))
-
-pTerm3_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 37# tks) (\x -> happyReturn (let {(HappyWrap87 x') = happyOut87 x} in x'))
-
-pTerm2_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 38# tks) (\x -> happyReturn (let {(HappyWrap88 x') = happyOut88 x} in x'))
-
-pTerm6_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 39# tks) (\x -> happyReturn (let {(HappyWrap89 x') = happyOut89 x} in x'))
-
-pTerm1_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 40# tks) (\x -> happyReturn (let {(HappyWrap90 x') = happyOut90 x} in x'))
-
-pTerm_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 41# tks) (\x -> happyReturn (let {(HappyWrap91 x') = happyOut91 x} in x'))
-
-pListTerm_internal tks = happySomeParser where
- happySomeParser = happyThen (happyDoParse 42# tks) (\x -> happyReturn (let {(HappyWrap92 x') = happyOut92 x} in x'))
-
-happySeq = happyDontSeq
-
-
-type Err = Either String
-
-happyError :: [Token] -> Err a
-happyError ts = Left $
-  "syntax error at " ++ tokenPos ts ++
-  case ts of
-    []      -> []
-    [Err _] -> " due to lexer error"
-    t:_     -> " before `" ++ (prToken t) ++ "'"
-
-myLexer :: Data.Text.Text -> [Token]
-myLexer = tokens
-
--- Entrypoints
-
-pModule :: [Token] -> Err Language.Rzk.Syntax.Abs.Module
-pModule = fmap snd . pModule_internal
-
-pHoleIdent :: [Token] -> Err Language.Rzk.Syntax.Abs.HoleIdent
-pHoleIdent = fmap snd . pHoleIdent_internal
-
-pVarIdent :: [Token] -> Err Language.Rzk.Syntax.Abs.VarIdent
-pVarIdent = fmap snd . pVarIdent_internal
-
-pListVarIdent :: [Token] -> Err [Language.Rzk.Syntax.Abs.VarIdent]
-pListVarIdent = fmap snd . pListVarIdent_internal
-
-pLanguageDecl :: [Token] -> Err Language.Rzk.Syntax.Abs.LanguageDecl
-pLanguageDecl = fmap snd . pLanguageDecl_internal
-
-pLanguage :: [Token] -> Err Language.Rzk.Syntax.Abs.Language
-pLanguage = fmap snd . pLanguage_internal
-
-pCommand :: [Token] -> Err Language.Rzk.Syntax.Abs.Command
-pCommand = fmap snd . pCommand_internal
-
-pListCommand :: [Token] -> Err [Language.Rzk.Syntax.Abs.Command]
-pListCommand = fmap snd . pListCommand_internal
-
-pDeclUsedVars :: [Token] -> Err Language.Rzk.Syntax.Abs.DeclUsedVars
-pDeclUsedVars = fmap snd . pDeclUsedVars_internal
-
-pSectionName :: [Token] -> Err Language.Rzk.Syntax.Abs.SectionName
-pSectionName = fmap snd . pSectionName_internal
-
-pDataSort :: [Token] -> Err Language.Rzk.Syntax.Abs.DataSort
-pDataSort = fmap snd . pDataSort_internal
-
-pDataBody :: [Token] -> Err Language.Rzk.Syntax.Abs.DataBody
-pDataBody = fmap snd . pDataBody_internal
-
-pConstructor :: [Token] -> Err Language.Rzk.Syntax.Abs.Constructor
-pConstructor = fmap snd . pConstructor_internal
-
-pListConstructor :: [Token] -> Err [Language.Rzk.Syntax.Abs.Constructor]
-pListConstructor = fmap snd . pListConstructor_internal
-
-pConstructorType :: [Token] -> Err Language.Rzk.Syntax.Abs.ConstructorType
-pConstructorType = fmap snd . pConstructorType_internal
-
-pDataElim :: [Token] -> Err Language.Rzk.Syntax.Abs.DataElim
-pDataElim = fmap snd . pDataElim_internal
-
-pListDataElim :: [Token] -> Err [Language.Rzk.Syntax.Abs.DataElim]
-pListDataElim = fmap snd . pListDataElim_internal
-
-pMatchBranch :: [Token] -> Err Language.Rzk.Syntax.Abs.MatchBranch
-pMatchBranch = fmap snd . pMatchBranch_internal
-
-pListMatchBranch :: [Token] -> Err [Language.Rzk.Syntax.Abs.MatchBranch]
-pListMatchBranch = fmap snd . pListMatchBranch_internal
-
-pPattern :: [Token] -> Err Language.Rzk.Syntax.Abs.Pattern
-pPattern = fmap snd . pPattern_internal
-
-pListPattern :: [Token] -> Err [Language.Rzk.Syntax.Abs.Pattern]
-pListPattern = fmap snd . pListPattern_internal
-
-pPattern1 :: [Token] -> Err Language.Rzk.Syntax.Abs.Pattern
-pPattern1 = fmap snd . pPattern1_internal
-
-pListPattern1 :: [Token] -> Err [Language.Rzk.Syntax.Abs.Pattern]
-pListPattern1 = fmap snd . pListPattern1_internal
-
-pParam :: [Token] -> Err Language.Rzk.Syntax.Abs.Param
-pParam = fmap snd . pParam_internal
-
-pListParam :: [Token] -> Err [Language.Rzk.Syntax.Abs.Param]
-pListParam = fmap snd . pListParam_internal
-
-pBind :: [Token] -> Err Language.Rzk.Syntax.Abs.Bind
-pBind = fmap snd . pBind_internal
-
-pParamDecl :: [Token] -> Err Language.Rzk.Syntax.Abs.ParamDecl
-pParamDecl = fmap snd . pParamDecl_internal
-
-pSigmaParam :: [Token] -> Err Language.Rzk.Syntax.Abs.SigmaParam
-pSigmaParam = fmap snd . pSigmaParam_internal
-
-pListSigmaParam :: [Token] -> Err [Language.Rzk.Syntax.Abs.SigmaParam]
-pListSigmaParam = fmap snd . pListSigmaParam_internal
-
-pRestriction :: [Token] -> Err Language.Rzk.Syntax.Abs.Restriction
-pRestriction = fmap snd . pRestriction_internal
-
-pListRestriction :: [Token] -> Err [Language.Rzk.Syntax.Abs.Restriction]
-pListRestriction = fmap snd . pListRestriction_internal
-
-pModality :: [Token] -> Err Language.Rzk.Syntax.Abs.Modality
-pModality = fmap snd . pModality_internal
-
-pModComp :: [Token] -> Err Language.Rzk.Syntax.Abs.ModComp
-pModComp = fmap snd . pModComp_internal
-
-pModalColon :: [Token] -> Err Language.Rzk.Syntax.Abs.ModalColon
-pModalColon = fmap snd . pModalColon_internal
-
-pTerm7 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
-pTerm7 = fmap snd . pTerm7_internal
-
-pTerm5 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
-pTerm5 = fmap snd . pTerm5_internal
-
-pTerm4 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
-pTerm4 = fmap snd . pTerm4_internal
-
-pTerm3 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
-pTerm3 = fmap snd . pTerm3_internal
-
-pTerm2 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
-pTerm2 = fmap snd . pTerm2_internal
-
-pTerm6 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
-pTerm6 = fmap snd . pTerm6_internal
-
-pTerm1 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
-pTerm1 = fmap snd . pTerm1_internal
+  , pTerm8
+  , pTerm5
+  , pTerm4
+  , pTerm3
+  , pTerm2
+  , pTerm6
+  , pTerm1
+  , pTerm7
+  , pTerm
+  , pListTerm
+  ) where
+
+import Prelude
+
+import qualified Language.Rzk.Syntax.Abs
+import Language.Rzk.Syntax.Lex
+import qualified Data.Text
+import qualified Control.Monad as Happy_Prelude
+import qualified Data.Bool as Happy_Prelude
+import qualified Data.Function as Happy_Prelude
+import qualified Data.Int as Happy_Prelude
+import qualified Data.List as Happy_Prelude
+import qualified Data.Maybe as Happy_Prelude
+import qualified Data.String as Happy_Prelude
+import qualified Data.Tuple as Happy_Prelude
+import qualified GHC.Err as Happy_Prelude
+import qualified GHC.Num as Happy_Prelude
+import qualified Text.Show as Happy_Prelude
+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 2.2
+
+newtype HappyAbsSyn  = HappyAbsSyn HappyAny
+#if __GLASGOW_HASKELL__ >= 607
+type HappyAny = Happy_GHC_Exts.Any
+#else
+type HappyAny = forall a . a
+#endif
+newtype HappyWrap48 = HappyWrap48 ((Language.Rzk.Syntax.Abs.BNFC'Position, String))
+happyIn48 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, String)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdentToken))
+happyIn49 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdentToken)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdentToken))
+happyIn50 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdentToken)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module))
+happyIn51 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent))
+happyIn52 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent))
+happyIn53 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent]))
+happyIn54 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent])) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl))
+happyIn55 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language))
+happyIn56 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command))
+happyIn57 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command]))
+happyIn58 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command])) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars))
+happyIn59 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName))
+happyIn60 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataSort))
+happyIn61 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataSort)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataBody))
+happyIn62 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataBody)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Constructor))
+happyIn63 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Constructor)) -> (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 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Constructor]))
+happyIn64 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Constructor])) -> (HappyAbsSyn )
+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap64 x)
+{-# INLINE happyIn64 #-}
+happyOut64 :: (HappyAbsSyn ) -> HappyWrap64
+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut64 #-}
+newtype HappyWrap65 = HappyWrap65 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ConstructorType))
+happyIn65 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ConstructorType)) -> (HappyAbsSyn )
+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap65 x)
+{-# INLINE happyIn65 #-}
+happyOut65 :: (HappyAbsSyn ) -> HappyWrap65
+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut65 #-}
+newtype HappyWrap66 = HappyWrap66 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataElim))
+happyIn66 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DataElim)) -> (HappyAbsSyn )
+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap66 x)
+{-# INLINE happyIn66 #-}
+happyOut66 :: (HappyAbsSyn ) -> HappyWrap66
+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut66 #-}
+newtype HappyWrap67 = HappyWrap67 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.DataElim]))
+happyIn67 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.DataElim])) -> (HappyAbsSyn )
+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap67 x)
+{-# INLINE happyIn67 #-}
+happyOut67 :: (HappyAbsSyn ) -> HappyWrap67
+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut67 #-}
+newtype HappyWrap68 = HappyWrap68 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.MatchBranch))
+happyIn68 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.MatchBranch)) -> (HappyAbsSyn )
+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap68 x)
+{-# INLINE happyIn68 #-}
+happyOut68 :: (HappyAbsSyn ) -> HappyWrap68
+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut68 #-}
+newtype HappyWrap69 = HappyWrap69 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.MatchBranch]))
+happyIn69 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.MatchBranch])) -> (HappyAbsSyn )
+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap69 x)
+{-# INLINE happyIn69 #-}
+happyOut69 :: (HappyAbsSyn ) -> HappyWrap69
+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut69 #-}
+newtype HappyWrap70 = HappyWrap70 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern))
+happyIn70 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern)) -> (HappyAbsSyn )
+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap70 x)
+{-# INLINE happyIn70 #-}
+happyOut70 :: (HappyAbsSyn ) -> HappyWrap70
+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut70 #-}
+newtype HappyWrap71 = HappyWrap71 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern]))
+happyIn71 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern])) -> (HappyAbsSyn )
+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap71 x)
+{-# INLINE happyIn71 #-}
+happyOut71 :: (HappyAbsSyn ) -> HappyWrap71
+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut71 #-}
+newtype HappyWrap72 = HappyWrap72 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern))
+happyIn72 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern)) -> (HappyAbsSyn )
+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap72 x)
+{-# INLINE happyIn72 #-}
+happyOut72 :: (HappyAbsSyn ) -> HappyWrap72
+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut72 #-}
+newtype HappyWrap73 = HappyWrap73 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern]))
+happyIn73 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern])) -> (HappyAbsSyn )
+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap73 x)
+{-# INLINE happyIn73 #-}
+happyOut73 :: (HappyAbsSyn ) -> HappyWrap73
+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut73 #-}
+newtype HappyWrap74 = HappyWrap74 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param))
+happyIn74 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param)) -> (HappyAbsSyn )
+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap74 x)
+{-# INLINE happyIn74 #-}
+happyOut74 :: (HappyAbsSyn ) -> HappyWrap74
+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut74 #-}
+newtype HappyWrap75 = HappyWrap75 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param]))
+happyIn75 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param])) -> (HappyAbsSyn )
+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap75 x)
+{-# INLINE happyIn75 #-}
+happyOut75 :: (HappyAbsSyn ) -> HappyWrap75
+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut75 #-}
+newtype HappyWrap76 = HappyWrap76 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Bind))
+happyIn76 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Bind)) -> (HappyAbsSyn )
+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap76 x)
+{-# INLINE happyIn76 #-}
+happyOut76 :: (HappyAbsSyn ) -> HappyWrap76
+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut76 #-}
+newtype HappyWrap77 = HappyWrap77 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl))
+happyIn77 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl)) -> (HappyAbsSyn )
+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap77 x)
+{-# INLINE happyIn77 #-}
+happyOut77 :: (HappyAbsSyn ) -> HappyWrap77
+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut77 #-}
+newtype HappyWrap78 = HappyWrap78 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SigmaParam))
+happyIn78 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SigmaParam)) -> (HappyAbsSyn )
+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap78 x)
+{-# INLINE happyIn78 #-}
+happyOut78 :: (HappyAbsSyn ) -> HappyWrap78
+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut78 #-}
+newtype HappyWrap79 = HappyWrap79 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.SigmaParam]))
+happyIn79 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.SigmaParam])) -> (HappyAbsSyn )
+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap79 x)
+{-# INLINE happyIn79 #-}
+happyOut79 :: (HappyAbsSyn ) -> HappyWrap79
+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut79 #-}
+newtype HappyWrap80 = HappyWrap80 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction))
+happyIn80 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction)) -> (HappyAbsSyn )
+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap80 x)
+{-# INLINE happyIn80 #-}
+happyOut80 :: (HappyAbsSyn ) -> HappyWrap80
+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut80 #-}
+newtype HappyWrap81 = HappyWrap81 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction]))
+happyIn81 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction])) -> (HappyAbsSyn )
+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap81 x)
+{-# INLINE happyIn81 #-}
+happyOut81 :: (HappyAbsSyn ) -> HappyWrap81
+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut81 #-}
+newtype HappyWrap82 = HappyWrap82 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Modality))
+happyIn82 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Modality)) -> (HappyAbsSyn )
+happyIn82 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap82 x)
+{-# INLINE happyIn82 #-}
+happyOut82 :: (HappyAbsSyn ) -> HappyWrap82
+happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut82 #-}
+newtype HappyWrap83 = HappyWrap83 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ModComp))
+happyIn83 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ModComp)) -> (HappyAbsSyn )
+happyIn83 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap83 x)
+{-# INLINE happyIn83 #-}
+happyOut83 :: (HappyAbsSyn ) -> HappyWrap83
+happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut83 #-}
+newtype HappyWrap84 = HappyWrap84 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ModalColon))
+happyIn84 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ModalColon)) -> (HappyAbsSyn )
+happyIn84 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap84 x)
+{-# INLINE happyIn84 #-}
+happyOut84 :: (HappyAbsSyn ) -> HappyWrap84
+happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut84 #-}
+newtype HappyWrap85 = HappyWrap85 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
+happyIn85 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
+happyIn85 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap85 x)
+{-# INLINE happyIn85 #-}
+happyOut85 :: (HappyAbsSyn ) -> HappyWrap85
+happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut85 #-}
+newtype HappyWrap86 = HappyWrap86 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
+happyIn86 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
+happyIn86 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap86 x)
+{-# INLINE happyIn86 #-}
+happyOut86 :: (HappyAbsSyn ) -> HappyWrap86
+happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut86 #-}
+newtype HappyWrap87 = HappyWrap87 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
+happyIn87 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
+happyIn87 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap87 x)
+{-# INLINE happyIn87 #-}
+happyOut87 :: (HappyAbsSyn ) -> HappyWrap87
+happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut87 #-}
+newtype HappyWrap88 = HappyWrap88 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
+happyIn88 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
+happyIn88 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap88 x)
+{-# INLINE happyIn88 #-}
+happyOut88 :: (HappyAbsSyn ) -> HappyWrap88
+happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut88 #-}
+newtype HappyWrap89 = HappyWrap89 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
+happyIn89 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
+happyIn89 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap89 x)
+{-# INLINE happyIn89 #-}
+happyOut89 :: (HappyAbsSyn ) -> HappyWrap89
+happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut89 #-}
+newtype HappyWrap90 = HappyWrap90 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
+happyIn90 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
+happyIn90 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap90 x)
+{-# INLINE happyIn90 #-}
+happyOut90 :: (HappyAbsSyn ) -> HappyWrap90
+happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut90 #-}
+newtype HappyWrap91 = HappyWrap91 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
+happyIn91 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
+happyIn91 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap91 x)
+{-# INLINE happyIn91 #-}
+happyOut91 :: (HappyAbsSyn ) -> HappyWrap91
+happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut91 #-}
+newtype HappyWrap92 = HappyWrap92 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
+happyIn92 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
+happyIn92 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap92 x)
+{-# INLINE happyIn92 #-}
+happyOut92 :: (HappyAbsSyn ) -> HappyWrap92
+happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut92 #-}
+newtype HappyWrap93 = HappyWrap93 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))
+happyIn93 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )
+happyIn93 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap93 x)
+{-# INLINE happyIn93 #-}
+happyOut93 :: (HappyAbsSyn ) -> HappyWrap93
+happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut93 #-}
+newtype HappyWrap94 = HappyWrap94 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term]))
+happyIn94 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term])) -> (HappyAbsSyn )
+happyIn94 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap94 x)
+{-# INLINE happyIn94 #-}
+happyOut94 :: (HappyAbsSyn ) -> HappyWrap94
+happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut94 #-}
+happyInTok :: (Token) -> (HappyAbsSyn )
+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyInTok #-}
+happyOutTok :: (HappyAbsSyn ) -> (Token)
+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOutTok #-}
+
+
+{-# NOINLINE happyTokenStrings #-}
+happyTokenStrings = ["'#assume'","'#check'","'#compute'","'#compute-nf'","'#compute-whnf'","'#data'","'#def'","'#define'","'#end'","'#lang'","'#postulate'","'#section'","'#set-option'","'#unset-option'","'#variable'","'#variables'","'$extract$'","'('","')'","'*'","'*_1'","'*\8321'","','","'->'","'/'","'/\\\\'","'0_2'","'0_I'","'0\7522'","'0\8322'","'1'","'1_2'","'1_I'","'1\7522'","'1\8322'","'2'","':'","':='","':_#'","':_b'","':_id'","':_op'","':\7506\7510'","':\9837'","':\9839'","';'","'<='","'='","'==='","'=>'","'=_{'","'BOT'","'CUBE'","'II'","'Sigma'","'TOP'","'TOPE'","'U'","'Unit'","'['","'\\\\'","'\\\\/'","']'","'_#'","'_b'","'_id'","'_op'","'as'","'compute'","'eliminate'","'first'","'flip_op'","'flip\7506\7510'","'idJ'","'in'","'inf'","'into'","'inv_op'","'inv\7506\7510'","'let'","'match'","'mod'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'sup'","'unflip_op'","'unflip\7506\7510'","'uninv_op'","'uninv\7506\7510'","'unit'","'uses'","'with'","'|'","'|->'","'}'","'\215'","'\931'","'\960\8321'","'\960\8322'","'\7506\7510'","'\8594'","'\8614'","'\8658'","'\8721'","'\8743'","'\8744'","'\8801'","'\8804'","'\8851'","'\8852'","'\8868'","'\8869'","'\9837'","'\9839'","'\120128'","L_quoted","L_VarIdentToken","L_HoleIdentToken","%eof"]
+
+happyActOffsets :: HappyAddr
+happyActOffsets = HappyA# "\xff\xff\xff\xff\x9d\xff\xff\xff\xa9\xff\xff\xff\xa9\xff\xff\xff\x23\x00\x00\x00\xdd\xff\xff\xff\xee\x0c\x00\x00\xee\x0c\x00\x00\xdb\xff\xff\xff\xd5\xff\xff\xff\x39\x00\x00\x00\x3b\x00\x00\x00\xfa\xff\xff\xff\xfa\xff\xff\xff\x61\x00\x00\x00\xbd\xff\xff\xff\xbd\xff\xff\xff\x1d\x00\x00\x00\x1d\x00\x00\x00\x41\x00\x00\x00\x41\x00\x00\x00\x41\x00\x00\x00\x41\x00\x00\x00\xc4\x00\x00\x00\xc4\x00\x00\x00\xd4\x00\x00\x00\x59\x00\x00\x00\xd4\x00\x00\x00\xd4\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x8f\x01\x00\x00\x8f\x01\x00\x00\x77\x0a\x00\x00\x93\x02\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xef\xff\xff\xff\xf7\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\xff\xf7\x01\x00\x00\x00\x00\x00\x00\x91\x01\x00\x00\xed\xff\xff\xff\xd8\xff\xff\xff\x54\x00\x00\x00\x43\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x35\x00\x00\x00\x8f\x01\x00\x00\xef\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xcc\x00\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x82\x02\x00\x00\x45\x02\x00\x00\x8f\x01\x00\x00\x00\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\xe5\x00\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x00\x00\xb1\x00\x00\x00\xef\xff\xff\xff\xfb\xff\xff\xff\xb1\x00\x00\x00\xf5\x00\x00\x00\xb1\x00\x00\x00\xa9\x01\x00\x00\xb1\x00\x00\x00\xb1\x00\x00\x00\x0d\x00\x00\x00\xb1\x00\x00\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x01\x00\x00\xbe\x00\x00\x00\xbe\x00\x00\x00\x27\x01\x00\x00\xd6\x00\x00\x00\x33\x00\x00\x00\xd6\x00\x00\x00\x00\x00\x00\x00\xda\x0c\x00\x00\x35\x01\x00\x00\xdc\x00\x00\x00\x13\x01\x00\x00\x00\x00\x00\x00\xdc\x00\x00\x00\xdc\x00\x00\x00\xa9\x01\x00\x00\x37\x01\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x22\x01\x00\x00\xfa\x00\x00\x00\x2a\x01\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x86\x01\x00\x00\x24\x01\x00\x00\x24\x01\x00\x00\x2a\x01\x00\x00\x24\x01\x00\x00\x24\x01\x00\x00\x48\x01\x00\x00\x46\x01\x00\x00\x53\x01\x00\x00\x53\x01\x00\x00\xbd\xff\xff\xff\x53\x01\x00\x00\x74\x01\x00\x00\x8d\x01\x00\x00\x6b\x01\x00\x00\x6b\x01\x00\x00\xef\xff\xff\xff\xf4\xff\xff\xff\xa7\x01\x00\x00\x6c\x01\x00\x00\x6c\x01\x00\x00\x6c\x01\x00\x00\x95\x01\x00\x00\x94\x01\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x94\x01\x00\x00\x94\x01\x00\x00\xfe\x01\x00\x00\xf9\x01\x00\x00\xb3\x01\x00\x00\xba\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xba\x01\x00\x00\xba\x01\x00\x00\xba\x01\x00\x00\xba\x01\x00\x00\xba\x01\x00\x00\xba\x01\x00\x00\xbc\x01\x00\x00\xbc\x01\x00\x00\xc4\x01\x00\x00\xc4\x01\x00\x00\xca\x01\x00\x00\xca\x01\x00\x00\x00\x00\x00\x00\xca\x01\x00\x00\xde\x01\x00\x00\xd6\x01\x00\x00\xdb\x01\x00\x00\xdb\x01\x00\x00\xdb\x01\x00\x00\xdb\x01\x00\x00\xee\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x02\x00\x00\x34\x02\x00\x00\x39\x02\x00\x00\x00\x00\x00\x00\x3f\x02\x00\x00\x00\x00\x00\x00\x18\x02\x00\x00\x00\x00\x00\x00\x18\x02\x00\x00\x18\x02\x00\x00\x18\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x5d\x02\x00\x00\xee\x0c\x00\x00\x0a\x02\x00\x00\x00\x00\x00\x00\xbd\xff\xff\xff\x0a\x02\x00\x00\x00\x00\x00\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x17\x02\x00\x00\x17\x02\x00\x00\x00\x00\x00\x00\x17\x02\x00\x00\xe6\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x2a\x01\x00\x00\x09\x00\x00\x00\xe3\x0c\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x7b\x02\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x8f\x01\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xef\xff\xff\xff\x79\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\xf5\xff\xff\xff\xef\xff\xff\xff\xf7\x01\x00\x00\x93\x02\x00\x00\x02\x00\x00\x00\x71\x02\x00\x00\x85\x00\x00\x00\x8f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x2a\x01\x00\x00\x89\x0c\x00\x00\xf7\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xde\x00\x00\x00\xde\x00\x00\x00\xde\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xec\x0c\x00\x00\x8d\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x95\x02\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x9a\x02\x00\x00\x8f\x01\x00\x00\xef\xff\xff\xff\x56\x02\x00\x00\x93\x02\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xc4\x02\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x0c\x00\x00\xcb\x02\x00\x00\xfe\x0c\x00\x00\xd4\x02\x00\x00\x92\x02\x00\x00\x00\x00\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\xa9\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\x2a\x01\x00\x00\xbb\x02\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\xe3\x02\x00\x00\xe4\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x60\x00\x00\x00\xc8\x00\x00\x00\x15\x01\x00\x00\x16\x01\x00\x00\xa6\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x02\x00\x00\xef\xff\xff\xff\x00\x03\x00\x00\xef\xff\xff\xff\x02\x03\x00\x00\xef\xff\xff\xff\x05\x03\x00\x00\x2a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\xa7\x00\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\x2a\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xf1\x02\x00\x00\x00\x00\x00\x00\xdc\x02\x00\x00\x93\x02\x00\x00\x4a\x03\x00\x00\x50\x03\x00\x00\x12\x03\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\x3f\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x22\x00\x00\x00\x5f\x01\x00\x00\x29\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x53\x03\x00\x00\x55\x03\x00\x00\x6e\x03\x00\x00\x76\x03\x00\x00\xef\xff\xff\xff\x3e\x00\x00\x00\x44\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x19\x03\x00\x00\x83\x03\x00\x00\x85\x03\x00\x00\x00\x00\x00\x00\x87\x03\x00\x00\x88\x03\x00\x00\x8e\x03\x00\x00\x8f\x03\x00\x00\x91\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x70\x03\x00\x00\x00\x00\x00\x00\x78\x03\x00\x00\xef\xff\xff\xff\x7d\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x80\x03\x00\x00\xef\xff\xff\xff\x96\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xa6\x03\x00\x00\xac\x03\x00\x00\xb8\x03\x00\x00\x92\x03\x00\x00\xb9\x03\x00\x00\xbc\x03\x00\x00\xbd\x03\x00\x00\xbe\x03\x00\x00\x00\x00\x00\x00\x58\x03\x00\x00\xc3\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xf8\x00\x00\x00\xef\xff\xff\xff\xc1\x03\x00\x00\xc2\x03\x00\x00\xc5\x03\x00\x00\xcc\x03\x00\x00\xcd\x03\x00\x00\xd1\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xca\x03\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xc4\x03\x00\x00\x00\x00\x00\x00\x09\x01\x00\x00\x00\x00\x00\x00\xf4\x03\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\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\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xec\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xed\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xfd\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x04\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyGotoOffsets :: HappyAddr
+happyGotoOffsets = HappyA# "\x06\x01\x00\x00\xa3\x00\x00\x00\xa0\x01\x00\x00\x1f\x01\x00\x00\x39\x04\x00\x00\x09\x04\x00\x00\x38\x04\x00\x00\x14\x00\x00\x00\x3d\x04\x00\x00\x3c\x02\x00\x00\x5b\x04\x00\x00\x37\x04\x00\x00\x40\x01\x00\x00\x4e\x02\x00\x00\x58\x04\x00\x00\x5e\x04\x00\x00\xda\x00\x00\x00\xdc\x01\x00\x00\xd1\x00\x00\x00\xae\x01\x00\x00\xe2\x03\x00\x00\xc7\x0c\x00\x00\x8a\x02\x00\x00\xce\x03\x00\x00\xa9\x0c\x00\x00\x9a\x01\x00\x00\x36\x0c\x00\x00\x7c\x03\x00\x00\xd3\x01\x00\x00\x9c\x03\x00\x00\x20\x03\x00\x00\x4f\x04\x00\x00\x60\x01\x00\x00\x51\x04\x00\x00\x5c\x00\x00\x00\x48\x0c\x00\x00\x1c\x0c\x00\x00\xf0\x0b\x00\x00\x93\x0b\x00\x00\xe8\x03\x00\x00\x6a\x0a\x00\x00\x72\x02\x00\x00\xc9\x03\x00\x00\xd8\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\xd8\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x01\x00\x00\xda\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x68\x05\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\xc8\x05\x00\x00\xf8\x05\x00\x00\x28\x06\x00\x00\x87\x01\x00\x00\xd5\x01\x00\x00\x56\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x03\x00\x00\x58\x06\x00\x00\x88\x06\x00\x00\xb8\x06\x00\x00\xe8\x06\x00\x00\x18\x07\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x07\x00\x00\x00\x00\x00\x00\xd8\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x0c\x00\x00\x00\x00\x00\x00\x12\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x04\x00\x00\x8e\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x02\x00\x00\x00\x00\x00\x00\x3a\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\x06\x02\x00\x00\x59\x04\x00\x00\x6a\x04\x00\x00\x89\x04\x00\x00\x9a\x04\x00\x00\xad\x01\x00\x00\xb0\x01\x00\x00\xee\x01\x00\x00\xe1\x02\x00\x00\xf4\x01\x00\x00\x60\x03\x00\x00\x99\x04\x00\x00\xa0\x04\x00\x00\x42\x02\x00\x00\x24\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x04\x00\x00\xdf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\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\x96\x04\x00\x00\x00\x00\x00\x00\xbd\x04\x00\x00\xbe\x04\x00\x00\xc5\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x01\x00\x00\x29\x03\x00\x00\x00\x00\x00\x00\xc9\x01\x00\x00\x22\x03\x00\x00\x00\x00\x00\x00\x97\x04\x00\x00\x00\x00\x00\x00\x91\x02\x00\x00\xc6\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\xb9\x04\x00\x00\xca\x04\x00\x00\x00\x00\x00\x00\x38\x0c\x00\x00\xa2\x04\x00\x00\xad\x04\x00\x00\x00\x00\x00\x00\xe9\x04\x00\x00\x00\x00\x00\x00\x4d\x03\x00\x00\x00\x00\x00\x00\x21\x02\x00\x00\xfa\x04\x00\x00\x19\x05\x00\x00\x2a\x05\x00\x00\x49\x05\x00\x00\x5e\x03\x00\x00\xb3\x04\x00\x00\x18\x04\x00\x00\x48\x04\x00\x00\x78\x04\x00\x00\xa8\x04\x00\x00\xb2\x0b\x00\x00\x5a\x05\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x03\x00\x00\x38\x08\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x03\x00\x00\xb6\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x79\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x0c\x00\x00\xd4\x04\x00\x00\x98\x08\x00\x00\xef\x02\x00\x00\x89\x0a\x00\x00\xc2\x0b\x00\x00\xd1\x0b\x00\x00\xfd\x0b\x00\x00\x0a\x0c\x00\x00\x55\x0c\x00\x00\x62\x0c\x00\x00\x74\x0c\x00\x00\x81\x0c\x00\x00\x00\x00\x00\x00\x99\x0a\x00\x00\xb8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x05\x00\x00\x00\x00\x00\x00\xa9\x05\x00\x00\xba\x05\x00\x00\xd5\x04\x00\x00\x00\x00\x00\x00\xc8\x0a\x00\x00\xe7\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x03\x00\x00\x00\x00\x00\x00\xc7\x04\x00\x00\xd9\x05\x00\x00\xbd\x02\x00\x00\xd2\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x04\x00\x00\x00\x00\x00\x00\xdd\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x08\x00\x00\xc8\x08\x00\x00\xc8\x08\x00\x00\xc8\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\x02\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x06\x00\x00\x1a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x06\x00\x00\x4a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x06\x00\x00\x7a\x06\x00\x00\xab\x0c\x00\x00\xc6\x0c\x00\x00\xc8\x0c\x00\x00\xcf\x0c\x00\x00\x05\x05\x00\x00\x99\x06\x00\x00\xaa\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x06\x00\x00\x00\x00\x00\x00\xda\x06\x00\x00\x00\x00\x00\x00\xf9\x06\x00\x00\xf4\x04\x00\x00\xfb\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x07\x00\x00\x29\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x0b\x00\x00\x26\x02\x00\x00\x3a\x07\x00\x00\x89\x02\x00\x00\x59\x07\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x02\x00\x00\x57\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x03\x00\x00\x89\x07\x00\x00\x00\x00\x00\x00\x9a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x03\x00\x00\xb9\x07\x00\x00\xca\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x07\x00\x00\x00\x00\x00\x00\x0e\x03\x00\x00\x00\x00\x00\x00\xfa\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x08\x00\x00\x00\x00\x00\x00\xf4\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\xd6\x0c\x00\x00\x00\x00\x00\x00\x49\x08\x00\x00\x00\x00\x00\x00\x5a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x08\x00\x00\x00\x00\x00\x00\x8a\x08\x00\x00\x00\x00\x00\x00\xa9\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x08\x00\x00\x00\x00\x00\x00\xd9\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\x18\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x08\x00\x00\x09\x09\x00\x00\x1a\x09\x00\x00\x00\x00\x00\x00\x39\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x0a\x00\x00\x16\x0b\x00\x00\x26\x0b\x00\x00\x00\x00\x00\x00\x4a\x09\x00\x00\x69\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x0b\x00\x00\x55\x0b\x00\x00\x74\x0b\x00\x00\x84\x0b\x00\x00\xa3\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x09\x00\x00\x00\x00\x00\x00\x99\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x09\x00\x00\xc9\x09\x00\x00\xda\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x0a\x00\x00\x00\x00\x00\x00\x3a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyDefActions :: HappyAddr
+happyDefActions = 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\xb6\xff\xff\xff\xb3\xff\xff\xff\xb2\xff\xff\xff\xaf\xff\xff\xff\xad\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa7\xff\xff\xff\x00\x00\x00\x00\xa4\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\xff\xff\xff\xce\xff\xff\xff\xcf\xff\xff\xff\x56\xff\xff\xff\x55\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x0d\xff\xff\xff\x44\xff\xff\xff\x40\xff\xff\xff\x3d\xff\xff\xff\x1b\xff\xff\xff\x48\xff\xff\xff\x0b\xff\xff\xff\x2e\xff\xff\xff\x0a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xff\xff\xff\x69\xff\xff\xff\x52\xff\xff\xff\x4f\xff\xff\xff\x64\xff\xff\xff\x67\xff\xff\xff\x6a\xff\xff\xff\x51\xff\xff\xff\x4e\xff\xff\xff\x63\xff\xff\xff\x66\xff\xff\xff\x68\xff\xff\xff\x4c\xff\xff\xff\x6c\xff\xff\xff\x50\xff\xff\xff\x00\x00\x00\x00\x4d\xff\xff\xff\x6b\xff\xff\xff\x6d\xff\xff\xff\x5e\xff\xff\xff\x00\x00\x00\x00\x7a\xff\xff\xff\x7c\xff\xff\xff\x77\xff\xff\xff\x78\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\x00\x00\x00\x00\x60\xff\xff\xff\x00\x00\x00\x00\x5a\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\x5b\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\xff\xff\xff\x00\x00\x00\x00\x62\xff\xff\xff\x61\xff\xff\xff\x7d\xff\xff\xff\x7b\xff\xff\xff\x65\xff\xff\xff\xd2\xff\xff\xff\xd1\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xff\xff\xff\x70\xff\xff\xff\x71\xff\xff\xff\x6e\xff\xff\xff\x72\xff\xff\xff\x74\xff\xff\xff\x73\xff\xff\xff\x76\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xff\xff\xff\x00\x00\x00\x00\x83\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xff\xff\xff\x8c\xff\xff\xff\x00\x00\x00\x00\x93\xff\xff\xff\x8e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xff\xff\xff\x95\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x98\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa4\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\xa7\xff\xff\xff\xaa\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\xb1\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\xff\xff\xff\x00\x00\x00\x00\xb2\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\xca\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\xff\xff\xff\xd0\xff\xff\xff\xcc\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\xff\xff\x00\x00\x00\x00\xbe\xff\xff\xff\xb3\xff\xff\xff\xbd\xff\xff\xff\xb3\xff\xff\xff\xb3\xff\xff\xff\xb3\xff\xff\xff\xc5\xff\xff\xff\xc4\xff\xff\xff\xc6\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb6\xff\xff\xff\x00\x00\x00\x00\xb0\xff\xff\xff\xa4\xff\xff\xff\x00\x00\x00\x00\xab\xff\xff\xff\xa7\xff\xff\xff\xa8\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa3\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xff\xff\xff\x00\x00\x00\x00\x98\xff\xff\xff\x00\x00\x00\x00\x8d\xff\xff\xff\x00\x00\x00\x00\x32\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\xff\xff\xff\x30\xff\xff\xff\x00\x00\x00\x00\x39\xff\xff\xff\x38\xff\xff\xff\x35\xff\xff\xff\x34\xff\xff\xff\x00\x00\x00\x00\x2a\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\x3b\xff\xff\xff\x3a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x37\xff\xff\xff\x36\xff\xff\xff\x2b\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x29\xff\xff\xff\x1a\xff\xff\xff\x45\xff\xff\xff\x46\xff\xff\xff\x43\xff\xff\xff\x42\xff\xff\xff\x41\xff\xff\xff\x3f\xff\xff\xff\x3e\xff\xff\xff\x3c\xff\xff\xff\x0c\xff\xff\xff\x09\xff\xff\xff\x31\xff\xff\xff\x00\x00\x00\x00\x54\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\x2c\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\x13\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x59\xff\xff\xff\x2d\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\xff\xff\xff\x4a\xff\xff\xff\x49\xff\xff\xff\x4b\xff\xff\xff\x47\xff\xff\xff\x75\xff\xff\xff\x7e\xff\xff\xff\x81\xff\xff\xff\x80\xff\xff\xff\x85\xff\xff\xff\x84\xff\xff\xff\x82\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x94\xff\xff\xff\xa1\xff\xff\xff\x9f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xac\xff\xff\xff\xa9\xff\xff\xff\xae\xff\xff\xff\x00\x00\x00\x00\xb5\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xaf\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\xcb\xff\xff\xff\xbf\xff\xff\xff\xc0\xff\xff\xff\xc9\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\xad\xff\xff\xff\xaf\xff\xff\xff\xc7\xff\xff\xff\xc1\xff\xff\xff\xb4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xff\xff\xff\xa0\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x33\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\x5f\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\x22\xff\xff\xff\x16\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\x87\xff\xff\xff\x00\x00\x00\x00\x5d\xff\xff\xff\x00\x00\x00\x00\x89\xff\xff\xff\x00\x00\x00\x00\x85\xff\xff\xff\x84\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\x11\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xff\xff\xff\x85\xff\xff\xff\x84\xff\xff\xff\x00\x00\x00\x00\x85\xff\xff\xff\x00\x00\x00\x00\x25\xff\xff\xff\x9a\xff\xff\xff\x00\x00\x00\x00\x90\xff\xff\xff\x00\x00\x00\x00\x92\xff\xff\xff\x00\x00\x00\x00\xa5\xff\xff\xff\xa6\xff\xff\xff\xad\xff\xff\xff\xb7\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\xff\xff\xff\x00\x00\x00\x00\xc3\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\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\x0f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x23\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\x00\x00\x00\x00\x00\x00\x00\x00\x86\xff\xff\xff\x5c\xff\xff\xff\x88\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\x21\xff\xff\xff\x00\x00\x00\x00\x10\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\x99\xff\xff\xff\x8f\xff\xff\xff\x91\xff\xff\xff\xb9\xff\xff\xff\x00\x00\x00\x00\xbb\xff\xff\xff\x00\x00\x00\x00\xbc\xff\xff\xff\xba\xff\xff\xff\x14\xff\xff\xff\x15\xff\xff\xff\x26\xff\xff\xff\x27\xff\xff\xff\x28\xff\xff\xff\x0e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\xff\xff\x00\x00\x00\x00\x17\xff\xff\xff\x18\xff\xff\xff\x19\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1e\xff\xff\xff\x00\x00\x00\x00\x1f\xff\xff\xff\x00\x00\x00\x00\x1d\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x57\xff\xff\xff"#
+
+happyCheck :: HappyAddr
+happyCheck = HappyA# "\xff\xff\xff\xff\x12\x00\x00\x00\x13\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x1b\x00\x00\x00\x19\x00\x00\x00\x0b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x3f\x00\x00\x00\x7b\x00\x00\x00\x33\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x13\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x14\x00\x00\x00\x19\x00\x00\x00\x18\x00\x00\x00\x15\x00\x00\x00\x7a\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x31\x00\x00\x00\x3e\x00\x00\x00\x0b\x00\x00\x00\x34\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x14\x00\x00\x00\x58\x00\x00\x00\x14\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x60\x00\x00\x00\x4d\x00\x00\x00\x14\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x6f\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x4e\x00\x00\x00\x4e\x00\x00\x00\x6c\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x64\x00\x00\x00\x6a\x00\x00\x00\x6e\x00\x00\x00\x6d\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x26\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x27\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x62\x00\x00\x00\x7a\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x6a\x00\x00\x00\x65\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x25\x00\x00\x00\x62\x00\x00\x00\x7a\x00\x00\x00\x62\x00\x00\x00\x31\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x34\x00\x00\x00\x7c\x00\x00\x00\x4c\x00\x00\x00\x62\x00\x00\x00\x4e\x00\x00\x00\x14\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x18\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x63\x00\x00\x00\x7a\x00\x00\x00\x13\x00\x00\x00\x45\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x6b\x00\x00\x00\x79\x00\x00\x00\x5f\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x02\x00\x00\x00\x4d\x00\x00\x00\x04\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x18\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x7c\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x13\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x5f\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x53\x00\x00\x00\x18\x00\x00\x00\x7a\x00\x00\x00\x13\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x13\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x5f\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x26\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x15\x00\x00\x00\x4d\x00\x00\x00\x13\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x13\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x7a\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x13\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x07\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x5f\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x13\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7c\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x5f\x00\x00\x00\x1a\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x7c\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x18\x00\x00\x00\x4b\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x65\x00\x00\x00\x4c\x00\x00\x00\x05\x00\x00\x00\x4e\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x18\x00\x00\x00\x7a\x00\x00\x00\x0f\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x7c\x00\x00\x00\x5f\x00\x00\x00\x5f\x00\x00\x00\x4c\x00\x00\x00\x13\x00\x00\x00\x4e\x00\x00\x00\x7c\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x19\x00\x00\x00\x26\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x5f\x00\x00\x00\x14\x00\x00\x00\x5f\x00\x00\x00\x5f\x00\x00\x00\x7c\x00\x00\x00\x18\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x33\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x5f\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x16\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x7c\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x1c\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x15\x00\x00\x00\x5f\x00\x00\x00\x62\x00\x00\x00\x22\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x6c\x00\x00\x00\x05\x00\x00\x00\x1c\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x30\x00\x00\x00\x7a\x00\x00\x00\x32\x00\x00\x00\x16\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x7c\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x61\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x05\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x61\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x01\x00\x00\x00\x65\x00\x00\x00\x22\x00\x00\x00\x69\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x62\x00\x00\x00\x13\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x7a\x00\x00\x00\x7c\x00\x00\x00\x13\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x2f\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x05\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7c\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x7a\x00\x00\x00\x79\x00\x00\x00\x58\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x01\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x7c\x00\x00\x00\x05\x00\x00\x00\x0c\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x5f\x00\x00\x00\x7c\x00\x00\x00\x13\x00\x00\x00\x2f\x00\x00\x00\x26\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x26\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x31\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x60\x00\x00\x00\x01\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x05\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x7a\x00\x00\x00\x26\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x18\x00\x00\x00\x22\x00\x00\x00\x13\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x27\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x01\x00\x00\x00\x2c\x00\x00\x00\x16\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x5f\x00\x00\x00\x18\x00\x00\x00\x13\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x18\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x27\x00\x00\x00\x05\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x05\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x7a\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x53\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x01\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x05\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x69\x00\x00\x00\x18\x00\x00\x00\x0c\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x5f\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x64\x00\x00\x00\x25\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x22\x00\x00\x00\x40\x00\x00\x00\x7a\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x78\x00\x00\x00\x1d\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x14\x00\x00\x00\x79\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x1d\x00\x00\x00\x27\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x22\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x1c\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x26\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x64\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x4c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x27\x00\x00\x00\x14\x00\x00\x00\x16\x00\x00\x00\x14\x00\x00\x00\x1d\x00\x00\x00\x27\x00\x00\x00\x0c\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x27\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x1e\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x27\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x27\x00\x00\x00\x14\x00\x00\x00\x16\x00\x00\x00\x27\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x18\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1c\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x27\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x18\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x14\x00\x00\x00\x1e\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x14\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x4c\x00\x00\x00\x08\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2c\x00\x00\x00\x18\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x4c\x00\x00\x00\x4c\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2c\x00\x00\x00\x0e\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x0d\x00\x00\x00\x11\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x12\x00\x00\x00\x22\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2c\x00\x00\x00\x24\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2c\x00\x00\x00\x08\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x0b\x00\x00\x00\x0b\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x0b\x00\x00\x00\x24\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2c\x00\x00\x00\x22\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x24\x00\x00\x00\x24\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x24\x00\x00\x00\x24\x00\x00\x00\x0e\x00\x00\x00\x01\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x0d\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x0e\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\x01\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x22\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\x1e\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x19\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x2c\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x14\x00\x00\x00\x2a\x00\x00\x00\x11\x00\x00\x00\x2c\x00\x00\x00\x18\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2c\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x0d\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x1a\x00\x00\x00\x1b\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x16\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x05\x00\x00\x00\x16\x00\x00\x00\x16\x00\x00\x00\x16\x00\x00\x00\x18\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x00\x00\x1b\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x19\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\xff\xff\xff\xff\x0c\x00\x00\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xb3\x00\x00\x00\xb4\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\xa4\x00\x00\x00\x39\x01\x00\x00\x40\x01\x00\x00\xd9\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x5d\x01\x00\x00\xb0\x01\x00\x00\x37\x01\x00\x00\x7a\x00\x00\x00\x7e\x01\x00\x00\xb7\x00\x00\x00\x62\x01\x00\x00\x9a\x00\x00\x00\xc3\x00\x00\x00\xc4\x00\x00\x00\xde\x01\x00\x00\x55\x01\x00\x00\x76\x01\x00\x00\x11\x01\x00\x00\x79\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x15\x01\x00\x00\x55\x00\x00\x00\xd9\x00\x00\x00\x16\x01\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\xdc\x01\x00\x00\xd7\x00\x00\x00\xc5\x01\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\xc3\x00\x00\x00\x5e\x00\x00\x00\xc1\x01\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x38\x01\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x6e\x00\x00\x00\x79\x00\x00\x00\x5e\x01\x00\x00\xb1\x01\x00\x00\x7f\x01\x00\x00\x9b\x00\x00\x00\x9a\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x72\x00\x00\x00\x63\x01\x00\x00\x41\x01\x00\x00\x3a\x01\x00\x00\x73\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\xbf\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xbd\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x9b\x00\x00\x00\x79\x00\x00\x00\x7a\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xdf\x01\x00\x00\x79\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x56\x01\x00\x00\x12\x01\x00\x00\xa4\x00\x00\x00\x79\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x13\x01\x00\x00\x14\x01\x00\x00\x85\x00\x00\x00\xdd\x01\x00\x00\x79\x00\x00\x00\xc6\x01\x00\x00\x15\x01\x00\x00\xbf\x00\x00\x00\xb7\x00\x00\x00\x16\x01\x00\x00\xff\xff\xff\xff\xfd\x01\x00\x00\xc2\x01\x00\x00\xfe\x01\x00\x00\x50\x01\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x51\x01\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x0d\x01\x00\x00\x79\x00\x00\x00\x9a\x00\x00\x00\x36\x01\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x0e\x01\x00\x00\x2e\x00\x00\x00\x9b\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x2f\x00\x00\x00\x5e\x00\x00\x00\xdc\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x35\x01\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\xff\xff\xff\xff\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x6e\x00\x00\x00\x3f\x00\x00\x00\x7d\x00\x00\x00\x79\x00\x00\x00\x32\x01\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x9b\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x72\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x2e\x00\x00\x00\x79\x00\x00\x00\x7a\x00\x00\x00\xda\x01\x00\x00\xac\x00\x00\x00\xa4\x00\x00\x00\x5b\x01\x00\x00\xdb\x01\x00\x00\x79\x00\x00\x00\xa4\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x2d\x01\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x9b\x00\x00\x00\xad\x00\x00\x00\xae\x00\x00\x00\x9a\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\xb0\x00\x00\x00\xb1\x00\x00\x00\x9a\x01\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x11\x01\x00\x00\x5e\x00\x00\x00\x23\x01\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x1b\x01\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x79\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x6e\x00\x00\x00\xa4\x00\x00\x00\x7d\x00\x00\x00\xdd\x00\x00\x00\x18\x01\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\xde\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x72\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x2e\x00\x00\x00\x79\x00\x00\x00\x7a\x00\x00\x00\x9b\x00\x00\x00\xd9\x00\x00\x00\xda\x00\x00\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\xa4\x00\x00\x00\xa4\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\xff\xff\xff\xff\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x08\x01\x00\x00\x9b\x00\x00\x00\x10\x01\x00\x00\xa4\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\xff\xff\xff\xff\x98\x01\x00\x00\x96\x01\x00\x00\x9a\x00\x00\x00\x79\x00\x00\x00\x0f\x01\x00\x00\x5d\x00\x00\x00\x2e\x00\x00\x00\x79\x00\x00\x00\x12\x01\x00\x00\x0e\x02\x00\x00\xb7\x00\x00\x00\x0f\x02\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x0a\x01\x00\x00\x79\x00\x00\x00\xba\x00\x00\x00\x13\x01\x00\x00\x14\x01\x00\x00\xff\xff\xff\xff\x9b\x00\x00\x00\x6e\x00\x00\x00\x29\x02\x00\x00\x7d\x00\x00\x00\x2a\x02\x00\x00\xff\xff\xff\xff\x41\x00\x00\x00\x42\x00\x00\x00\x9a\x00\x00\x00\x8a\xff\xff\xff\x06\x01\x00\x00\x72\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x79\x00\x00\x00\x79\x00\x00\x00\x7a\x00\x00\x00\xff\xff\xff\xff\x9b\x00\x00\x00\xc3\x01\x00\x00\x9b\x00\x00\x00\x9b\x00\x00\x00\xff\xff\xff\xff\xc4\x01\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\xff\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x08\x01\x00\x00\x9b\x00\x00\x00\x8e\x00\x00\x00\x8f\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x2e\x00\x00\x00\x9b\x00\x00\x00\x8e\x00\x00\x00\x33\x01\x00\x00\x95\x00\x00\x00\x79\x00\x00\x00\x5d\x00\x00\x00\x79\x00\x00\x00\x79\x00\x00\x00\xb0\x00\x00\x00\xfb\x00\x00\x00\xc3\x00\x00\x00\xdf\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x2e\x00\x00\x00\x79\x00\x00\x00\x9e\x00\x00\x00\x02\x01\x00\x00\x95\x00\x00\x00\xff\xff\xff\xff\x2e\x00\x00\x00\x6e\x00\x00\x00\x26\x01\x00\x00\x79\x00\x00\x00\xdb\x00\x00\x00\x11\x01\x00\x00\x9b\x00\x00\x00\xfd\x00\x00\x00\x27\x01\x00\x00\xc3\x00\x00\x00\x86\x01\x00\x00\x72\x00\x00\x00\x8a\xff\xff\xff\x2e\x00\x00\x00\x2e\x00\x00\x00\x9e\x00\x00\x00\x2e\x00\x00\x00\xeb\x00\x00\x00\x95\x00\x00\x00\x00\x01\x00\x00\xea\x00\x00\x00\x9f\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x7d\x00\x00\x00\x79\x00\x00\x00\x7a\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x3b\x01\x00\x00\x79\x00\x00\x00\x3c\x01\x00\x00\xab\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\xff\xff\xff\xff\x56\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x2e\x00\x00\x00\xfb\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x95\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xb0\x00\x00\x00\x84\x01\x00\x00\x2e\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\xac\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x08\x01\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\xfa\x00\x00\x00\x2e\x00\x00\x00\xaf\x00\x00\x00\x97\x00\x00\x00\x98\x00\x00\x00\xe9\x00\x00\x00\x5d\x00\x00\x00\x2e\x00\x00\x00\x12\x01\x00\x00\x24\x01\x00\x00\x72\x00\x00\x00\xe7\x00\x00\x00\x25\x01\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x3d\x01\x00\x00\x3e\x01\x00\x00\x13\x01\x00\x00\x14\x01\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x2e\x00\x00\x00\x6e\x00\x00\x00\xf6\x00\x00\x00\x7d\x00\x00\x00\xd9\x00\x00\x00\xf0\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x79\x00\x00\x00\xff\xff\xff\xff\xf3\x00\x00\x00\x72\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x2e\x00\x00\x00\x79\x00\x00\x00\x7a\x00\x00\x00\x2e\x00\x00\x00\x95\x00\x00\x00\x2e\x00\x00\x00\xf2\x00\x00\x00\xd9\x00\x00\x00\xe2\x00\x00\x00\x95\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\xff\xff\xff\xff\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x79\x00\x00\x00\x2e\x00\x00\x00\xd7\x00\x00\x00\x96\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x96\x00\x00\x00\x2e\x00\x00\x00\x79\x00\x00\x00\x97\x00\x00\x00\x74\x01\x00\x00\xbf\x00\x00\x00\x5d\x00\x00\x00\x2e\x00\x00\x00\x97\x00\x00\x00\xd7\x01\x00\x00\xff\xff\xff\xff\xe3\x00\x00\x00\xc0\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x2e\x00\x00\x00\x79\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\xb7\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x6e\x00\x00\x00\xff\xff\xff\xff\x7d\x00\x00\x00\x91\x01\x00\x00\x90\x01\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\xb8\x00\x00\x00\xb9\x00\x00\x00\x8f\x01\x00\x00\x72\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x8e\x01\x00\x00\x79\x00\x00\x00\x7a\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x5e\x01\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xc3\x00\x00\x00\x2e\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\xac\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x89\x01\x00\x00\x88\x01\x00\x00\x79\x00\x00\x00\xb7\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x2e\x00\x00\x00\x2e\x00\x00\x00\xad\x00\x00\x00\x7f\x01\x00\x00\x95\x00\x00\x00\x95\x00\x00\x00\x5d\x00\x00\x00\x79\x00\x00\x00\x2e\x00\x00\x00\x76\x01\x00\x00\x33\x00\x00\x00\x9a\x00\x00\x00\x81\x01\x00\x00\x34\x00\x00\x00\x5c\x01\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x2e\x00\x00\x00\x7b\x00\x00\x00\x96\x00\x00\x00\xa5\x00\x00\x00\xb7\x00\x00\x00\xa6\x00\x00\x00\xa7\x00\x00\x00\x6e\x00\x00\x00\xbb\x01\x00\x00\x7d\x00\x00\x00\x97\x00\x00\x00\xd5\x01\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\xb8\x00\x00\x00\xf4\x00\x00\x00\xb8\x01\x00\x00\x72\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x2e\x00\x00\x00\x79\x00\x00\x00\x7a\x00\x00\x00\xb6\x01\x00\x00\xac\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x2e\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x80\x01\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x79\x00\x00\x00\xad\x00\x00\x00\xb2\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x29\x01\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xaf\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x2e\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x5d\x00\x00\x00\xac\x00\x00\x00\x2e\x00\x00\x00\x9b\x00\x00\x00\x2e\x00\x00\x00\xab\x01\x00\x00\xd9\x00\x00\x00\xe0\x00\x00\x00\xbf\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x72\x00\x00\x00\xa9\x01\x00\x00\xe8\x00\x00\x00\xad\x00\x00\x00\xd1\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x6e\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x32\x00\x00\x00\xa8\x01\x00\x00\xb1\x01\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x33\x00\x00\x00\xa6\x01\x00\x00\x79\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\xa1\x01\x00\x00\xa0\x01\x00\x00\x78\x00\x00\x00\x32\x00\x00\x00\x79\x00\x00\x00\x7a\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x4c\x01\x00\x00\x9f\x01\x00\x00\x2e\x00\x00\x00\xe9\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x2e\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xe7\x01\x00\x00\xb7\x00\x00\x00\xe5\x01\x00\x00\x2e\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\xbd\x00\x00\x00\x95\x00\x00\x00\xd9\x00\x00\x00\x85\x01\x00\x00\x33\x00\x00\x00\xb8\x00\x00\x00\x83\x01\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x04\x02\x00\x00\x32\x00\x00\x00\x9e\x00\x00\x00\x2e\x00\x00\x00\x91\x00\x00\x00\x92\x00\x00\x00\x33\x00\x00\x00\x95\x00\x00\x00\x59\x01\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x93\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\xbf\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x2e\x00\x00\x00\x9e\x00\x00\x00\xd3\x01\x00\x00\x79\x00\x00\x00\x95\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\xb6\x01\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xd0\x01\x00\x00\xce\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x2e\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xcf\x01\x00\x00\xbf\x00\x00\x00\xcb\x01\x00\x00\x03\x02\x00\x00\x96\x00\x00\x00\x02\x02\x00\x00\x32\x00\x00\x00\xfc\x01\x00\x00\xe6\x00\x00\x00\x91\x00\x00\x00\x76\x01\x00\x00\x33\x00\x00\x00\x97\x00\x00\x00\xc8\x01\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x93\x00\x00\x00\x32\x00\x00\x00\xd0\x01\x00\x00\x2e\x00\x00\x00\x91\x00\x00\x00\x6f\x01\x00\x00\x33\x00\x00\x00\x95\x00\x00\x00\x01\x02\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x93\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x02\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x2e\x00\x00\x00\x96\x00\x00\x00\x79\x00\x00\x00\x2e\x00\x00\x00\x95\x00\x00\x00\xf9\x01\x00\x00\xbd\x00\x00\x00\x95\x00\x00\x00\xf8\x01\x00\x00\x9b\x00\x00\x00\xf7\x01\x00\x00\xf6\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\xee\x01\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xf5\x01\x00\x00\xf4\x01\x00\x00\xec\x01\x00\x00\xf3\x01\x00\x00\x66\x01\x00\x00\x20\x02\x00\x00\x32\x00\x00\x00\x9e\x00\x00\x00\x19\x02\x00\x00\x91\x00\x00\x00\x60\x01\x00\x00\x33\x00\x00\x00\x67\x01\x00\x00\xcc\x01\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x93\x00\x00\x00\x32\x00\x00\x00\x1c\x02\x00\x00\x2e\x00\x00\x00\x94\x00\x00\x00\x1e\x02\x00\x00\x33\x00\x00\x00\x95\x00\x00\x00\x1b\x02\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x93\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1a\x02\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x2e\x00\x00\x00\x64\x01\x00\x00\x18\x02\x00\x00\x79\x00\x00\x00\x95\x00\x00\x00\x17\x02\x00\x00\x16\x02\x00\x00\x15\x02\x00\x00\x13\x02\x00\x00\x65\x01\x00\x00\x0c\x02\x00\x00\x0b\x02\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x0a\x02\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x09\x02\x00\x00\x08\x02\x00\x00\x2e\x02\x00\x00\x2e\x00\x00\x00\xa0\x00\x00\x00\x07\x02\x00\x00\x32\x00\x00\x00\x95\x00\x00\x00\xa4\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x7a\x00\x00\x00\x32\x00\x00\x00\xa9\x00\x00\x00\xaa\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x32\x01\x00\x00\x28\x02\x00\x00\x39\x02\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x2b\x02\x00\x00\xd5\x00\x00\x00\x7f\x00\x00\x00\x2e\x00\x00\x00\x3b\x00\x00\x00\x3c\x02\x00\x00\x32\x00\x00\x00\x95\x00\x00\x00\x3e\x02\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x21\x01\x00\x00\x32\x00\x00\x00\x02\x01\x00\x00\x03\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x16\x01\x00\x00\x33\x02\x00\x00\x37\x02\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xd7\x00\x00\x00\xd4\x00\x00\x00\x6d\x01\x00\x00\x2e\x00\x00\x00\x3b\x00\x00\x00\xbb\x00\x00\x00\x32\x00\x00\x00\x95\x00\x00\x00\xc1\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xf8\x00\x00\x00\x32\x00\x00\x00\xa9\x00\x00\x00\x00\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xf3\x00\x00\x00\xbd\x00\x00\x00\xb5\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xb4\x00\x00\x00\x90\x00\x00\x00\x6c\x01\x00\x00\x2e\x00\x00\x00\x3b\x00\x00\x00\x86\x00\x00\x00\x32\x00\x00\x00\x95\x00\x00\x00\x23\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xef\x00\x00\x00\x32\x00\x00\x00\xa9\x00\x00\x00\xfd\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xee\x00\x00\x00\x0a\x01\x00\x00\xe5\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xe4\x00\x00\x00\x8c\x01\x00\x00\x6b\x01\x00\x00\x2e\x00\x00\x00\x3b\x00\x00\x00\xe1\x00\x00\x00\x32\x00\x00\x00\x95\x00\x00\x00\x82\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xed\x00\x00\x00\x32\x00\x00\x00\xa9\x00\x00\x00\x00\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xec\x00\x00\x00\x8b\x01\x00\x00\x8a\x01\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x89\x01\x00\x00\x78\x01\x00\x00\x6a\x01\x00\x00\x2e\x00\x00\x00\x3b\x00\x00\x00\x6e\x01\x00\x00\x32\x00\x00\x00\x95\x00\x00\x00\x58\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x7c\x01\x00\x00\x32\x00\x00\x00\x08\x01\x00\x00\xb4\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x7b\x01\x00\x00\x4e\x01\x00\x00\xbb\x01\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xab\x01\x00\x00\x0a\x01\x00\x00\xe2\x01\x00\x00\x2e\x00\x00\x00\x3e\x01\x00\x00\x93\x01\x00\x00\x32\x00\x00\x00\x95\x00\x00\x00\xe1\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x77\x01\x00\x00\x32\x00\x00\x00\xa6\x01\x00\x00\xee\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x73\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x72\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x71\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x70\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x68\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x56\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xbe\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xbd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xb3\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xad\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xa4\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xa3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xa2\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xa1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x9d\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x9c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x92\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x91\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xe7\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xe5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xe3\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xdf\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xd6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xd4\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xd3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xcb\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xc9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xc7\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xc6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x05\x02\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x03\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xfe\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xfa\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xf0\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xef\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xec\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xea\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xe9\x01\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x1e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x34\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x01\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x1c\x02\x00\x00\x32\x00\x00\x00\xad\x00\x00\x00\xf9\x01\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x11\x02\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\xac\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\xad\x00\x00\x00\x13\x02\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x10\x02\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x0f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x0c\x02\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x2c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x2b\x02\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x21\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x20\x02\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x35\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x34\x02\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x33\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x31\x02\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x37\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3a\x02\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x39\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x02\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x7e\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x8d\x00\x00\x00\x8e\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x4b\x01\x00\x00\x3b\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x42\x01\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x41\x01\x00\x00\x3b\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\xb9\x01\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\xb8\x01\x00\x00\x3b\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x30\x02\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x2f\x02\x00\x00\x3b\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x2e\x02\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x26\x02\x00\x00\x3b\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x25\x02\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x24\x02\x00\x00\x3b\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x23\x02\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x80\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7d\x00\x00\x00\x39\x00\x00\x00\x22\x02\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x69\x01\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x4a\x01\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x49\x01\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\xd8\x01\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x48\x01\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x47\x01\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x2e\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x33\x00\x00\x00\x52\x01\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x53\x01\x00\x00\x3b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\xa5\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x46\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x33\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x34\x00\x00\x00\x45\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x44\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x01\x00\x00\x81\x00\x00\x00\xf6\x00\x00\x00\x3b\x00\x00\x00\x51\x01\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x43\x01\x00\x00\xa1\x00\x00\x00\xf7\x00\x00\x00\x2e\x00\x00\x00\x81\x00\x00\x00\x2e\x00\x00\x00\x3b\x00\x00\x00\x95\x00\x00\x00\x52\x01\x00\x00\x95\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x8d\x00\x00\x00\x8e\x00\x00\x00\x9a\x01\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x95\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x95\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x00\x00\xa2\x00\x00\x00\xa1\x00\x00\x00\x9b\x01\x00\x00\x2e\x00\x00\x00\x2e\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x95\x00\x00\x00\x95\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\xa0\x00\x00\x00\xa1\x00\x00\x00\x30\x01\x00\x00\x95\x00\x00\x00\xa1\x00\x00\x00\x04\x01\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\xa0\x00\x00\x00\xa5\x00\x00\x00\xa0\x00\x00\x00\xa8\x00\x00\x00\xa1\x00\x00\x00\x98\x01\x00\x00\xa1\x00\x00\x00\x96\x01\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x00\x00\x94\x01\x00\x00\x00\x00\x00\x00\xa5\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\xf1\x01\x00\x00\xc6\x00\x00\x00\xc7\x00\x00\x00\xc8\x00\x00\x00\xc9\x00\x00\x00\xca\x00\x00\x00\xcb\x00\x00\x00\xcc\x00\x00\x00\xcd\x00\x00\x00\xce\x00\x00\x00\x00\x00\x00\x00\xcf\x00\x00\x00\xd0\x00\x00\x00\xd1\x00\x00\x00\xd2\x00\x00\x00\xd3\x00\x00\x00\xd4\x00\x00\x00\x0c\x01\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x8d\x00\x00\x00\x8e\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x8d\x00\x00\x00\x8e\x00\x00\x00\xbd\x01\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x8d\x00\x00\x00\x8e\x00\x00\x00\xad\x01\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x8d\x00\x00\x00\x8e\x00\x00\x00\xaa\x01\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x8d\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (44, 246) [
+        (44 , happyReduce_44),
+        (45 , happyReduce_45),
+        (46 , happyReduce_46),
+        (47 , happyReduce_47),
+        (48 , happyReduce_48),
+        (49 , happyReduce_49),
+        (50 , happyReduce_50),
+        (51 , happyReduce_51),
+        (52 , happyReduce_52),
+        (53 , happyReduce_53),
+        (54 , happyReduce_54),
+        (55 , happyReduce_55),
+        (56 , happyReduce_56),
+        (57 , happyReduce_57),
+        (58 , happyReduce_58),
+        (59 , happyReduce_59),
+        (60 , happyReduce_60),
+        (61 , happyReduce_61),
+        (62 , happyReduce_62),
+        (63 , happyReduce_63),
+        (64 , happyReduce_64),
+        (65 , happyReduce_65),
+        (66 , happyReduce_66),
+        (67 , happyReduce_67),
+        (68 , happyReduce_68),
+        (69 , happyReduce_69),
+        (70 , happyReduce_70),
+        (71 , happyReduce_71),
+        (72 , happyReduce_72),
+        (73 , happyReduce_73),
+        (74 , happyReduce_74),
+        (75 , happyReduce_75),
+        (76 , happyReduce_76),
+        (77 , happyReduce_77),
+        (78 , happyReduce_78),
+        (79 , happyReduce_79),
+        (80 , happyReduce_80),
+        (81 , happyReduce_81),
+        (82 , happyReduce_82),
+        (83 , happyReduce_83),
+        (84 , happyReduce_84),
+        (85 , happyReduce_85),
+        (86 , happyReduce_86),
+        (87 , happyReduce_87),
+        (88 , happyReduce_88),
+        (89 , happyReduce_89),
+        (90 , happyReduce_90),
+        (91 , happyReduce_91),
+        (92 , happyReduce_92),
+        (93 , happyReduce_93),
+        (94 , happyReduce_94),
+        (95 , happyReduce_95),
+        (96 , happyReduce_96),
+        (97 , happyReduce_97),
+        (98 , happyReduce_98),
+        (99 , happyReduce_99),
+        (100 , happyReduce_100),
+        (101 , happyReduce_101),
+        (102 , happyReduce_102),
+        (103 , happyReduce_103),
+        (104 , happyReduce_104),
+        (105 , happyReduce_105),
+        (106 , happyReduce_106),
+        (107 , happyReduce_107),
+        (108 , happyReduce_108),
+        (109 , happyReduce_109),
+        (110 , happyReduce_110),
+        (111 , happyReduce_111),
+        (112 , happyReduce_112),
+        (113 , happyReduce_113),
+        (114 , happyReduce_114),
+        (115 , happyReduce_115),
+        (116 , happyReduce_116),
+        (117 , happyReduce_117),
+        (118 , happyReduce_118),
+        (119 , happyReduce_119),
+        (120 , happyReduce_120),
+        (121 , happyReduce_121),
+        (122 , happyReduce_122),
+        (123 , happyReduce_123),
+        (124 , happyReduce_124),
+        (125 , happyReduce_125),
+        (126 , happyReduce_126),
+        (127 , happyReduce_127),
+        (128 , happyReduce_128),
+        (129 , happyReduce_129),
+        (130 , happyReduce_130),
+        (131 , happyReduce_131),
+        (132 , happyReduce_132),
+        (133 , happyReduce_133),
+        (134 , happyReduce_134),
+        (135 , happyReduce_135),
+        (136 , happyReduce_136),
+        (137 , happyReduce_137),
+        (138 , happyReduce_138),
+        (139 , happyReduce_139),
+        (140 , happyReduce_140),
+        (141 , happyReduce_141),
+        (142 , happyReduce_142),
+        (143 , happyReduce_143),
+        (144 , happyReduce_144),
+        (145 , happyReduce_145),
+        (146 , happyReduce_146),
+        (147 , happyReduce_147),
+        (148 , happyReduce_148),
+        (149 , happyReduce_149),
+        (150 , happyReduce_150),
+        (151 , happyReduce_151),
+        (152 , happyReduce_152),
+        (153 , happyReduce_153),
+        (154 , happyReduce_154),
+        (155 , happyReduce_155),
+        (156 , happyReduce_156),
+        (157 , happyReduce_157),
+        (158 , happyReduce_158),
+        (159 , happyReduce_159),
+        (160 , happyReduce_160),
+        (161 , happyReduce_161),
+        (162 , happyReduce_162),
+        (163 , happyReduce_163),
+        (164 , happyReduce_164),
+        (165 , happyReduce_165),
+        (166 , happyReduce_166),
+        (167 , happyReduce_167),
+        (168 , happyReduce_168),
+        (169 , happyReduce_169),
+        (170 , happyReduce_170),
+        (171 , happyReduce_171),
+        (172 , happyReduce_172),
+        (173 , happyReduce_173),
+        (174 , happyReduce_174),
+        (175 , happyReduce_175),
+        (176 , happyReduce_176),
+        (177 , happyReduce_177),
+        (178 , happyReduce_178),
+        (179 , happyReduce_179),
+        (180 , happyReduce_180),
+        (181 , happyReduce_181),
+        (182 , happyReduce_182),
+        (183 , happyReduce_183),
+        (184 , happyReduce_184),
+        (185 , happyReduce_185),
+        (186 , happyReduce_186),
+        (187 , happyReduce_187),
+        (188 , happyReduce_188),
+        (189 , happyReduce_189),
+        (190 , happyReduce_190),
+        (191 , happyReduce_191),
+        (192 , happyReduce_192),
+        (193 , happyReduce_193),
+        (194 , happyReduce_194),
+        (195 , happyReduce_195),
+        (196 , happyReduce_196),
+        (197 , happyReduce_197),
+        (198 , happyReduce_198),
+        (199 , happyReduce_199),
+        (200 , happyReduce_200),
+        (201 , happyReduce_201),
+        (202 , happyReduce_202),
+        (203 , happyReduce_203),
+        (204 , happyReduce_204),
+        (205 , happyReduce_205),
+        (206 , happyReduce_206),
+        (207 , happyReduce_207),
+        (208 , happyReduce_208),
+        (209 , happyReduce_209),
+        (210 , happyReduce_210),
+        (211 , happyReduce_211),
+        (212 , happyReduce_212),
+        (213 , happyReduce_213),
+        (214 , happyReduce_214),
+        (215 , happyReduce_215),
+        (216 , happyReduce_216),
+        (217 , happyReduce_217),
+        (218 , happyReduce_218),
+        (219 , happyReduce_219),
+        (220 , happyReduce_220),
+        (221 , happyReduce_221),
+        (222 , happyReduce_222),
+        (223 , happyReduce_223),
+        (224 , happyReduce_224),
+        (225 , happyReduce_225),
+        (226 , happyReduce_226),
+        (227 , happyReduce_227),
+        (228 , happyReduce_228),
+        (229 , happyReduce_229),
+        (230 , happyReduce_230),
+        (231 , happyReduce_231),
+        (232 , happyReduce_232),
+        (233 , happyReduce_233),
+        (234 , happyReduce_234),
+        (235 , happyReduce_235),
+        (236 , happyReduce_236),
+        (237 , happyReduce_237),
+        (238 , happyReduce_238),
+        (239 , happyReduce_239),
+        (240 , happyReduce_240),
+        (241 , happyReduce_241),
+        (242 , happyReduce_242),
+        (243 , happyReduce_243),
+        (244 , happyReduce_244),
+        (245 , happyReduce_245),
+        (246 , happyReduce_246)
+        ]
+
+happyRuleArr :: HappyAddr
+happyRuleArr = HappyA# "\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x03\x00\x00\x00\x0b\x00\x00\x00\x04\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x0d\x00\x00\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x03\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x03\x00\x00\x00\x11\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x05\x00\x00\x00\x12\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x15\x00\x00\x00\x03\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x07\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x17\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x03\x00\x00\x00\x1a\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1b\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x03\x00\x00\x00\x1d\x00\x00\x00\x01\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1f\x00\x00\x00\x01\x00\x00\x00\x1f\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x21\x00\x00\x00\x01\x00\x00\x00\x21\x00\x00\x00\x03\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x03\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x07\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x0e\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x01\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x01\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x05\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x06\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x07\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x09\x00\x00\x00\x2b\x00\x00\x00\x09\x00\x00\x00\x2b\x00\x00\x00\x0a\x00\x00\x00\x2b\x00\x00\x00\x0b\x00\x00\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2c\x00\x00\x00\x03\x00\x00\x00\x2c\x00\x00\x00\x02\x00\x00\x00\x2c\x00\x00\x00\x05\x00\x00\x00\x2c\x00\x00\x00\x07\x00\x00\x00\x2c\x00\x00\x00\x06\x00\x00\x00\x2c\x00\x00\x00\x08\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x2d\x00\x00\x00\x03\x00\x00\x00\x2d\x00\x00\x00\x01\x00\x00\x00\x2e\x00\x00\x00\x01\x00\x00\x00\x2e\x00\x00\x00\x03\x00\x00\x00"#
+
+happyCatchStates :: [Happy_Prelude.Int]
+happyCatchStates = []
+
+happy_n_terms = 125 :: Happy_Prelude.Int
+happy_n_nonterms = 47 :: Happy_Prelude.Int
+
+happy_n_starts = 44 :: Happy_Prelude.Int
+
+happyReduce_44 = happySpecReduce_1  0# happyReduction_44
+happyReduction_44 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn48
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), (Data.Text.unpack ((\(PT _ (TL s)) -> s) happy_var_1)))
+        )}
+
+happyReduce_45 = happySpecReduce_1  1# happyReduction_45
+happyReduction_45 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn49
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.VarIdentToken (tokenText happy_var_1))
+        )}
+
+happyReduce_46 = happySpecReduce_1  2# happyReduction_46
+happyReduction_46 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn50
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.HoleIdentToken (tokenText happy_var_1))
+        )}
+
+happyReduce_47 = happySpecReduce_2  3# happyReduction_47
+happyReduction_47 happy_x_2
+        happy_x_1
+         =  case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> 
+        case happyOut58 happy_x_2 of { (HappyWrap58 happy_var_2) -> 
+        happyIn51
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Module (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))
+        )}}
+
+happyReduce_48 = happySpecReduce_1  4# happyReduction_48
+happyReduction_48 happy_x_1
+         =  case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> 
+        happyIn52
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.HoleIdent (fst happy_var_1) (snd happy_var_1))
+        )}
+
+happyReduce_49 = happySpecReduce_1  5# happyReduction_49
+happyReduction_49 happy_x_1
+         =  case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> 
+        happyIn53
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.VarIdent (fst happy_var_1) (snd happy_var_1))
+        )}
+
+happyReduce_50 = happySpecReduce_1  6# happyReduction_50
+happyReduction_50 happy_x_1
+         =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> 
+        happyIn54
+                 ((fst happy_var_1, (:[]) (snd happy_var_1))
+        )}
+
+happyReduce_51 = happySpecReduce_2  6# happyReduction_51
+happyReduction_51 happy_x_2
+        happy_x_1
+         =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> 
+        case happyOut54 happy_x_2 of { (HappyWrap54 happy_var_2) -> 
+        happyIn54
+                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))
+        )}}
+
+happyReduce_52 = happySpecReduce_3  7# happyReduction_52
+happyReduction_52 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> 
+        happyIn55
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LanguageDecl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_53 = happySpecReduce_1  8# happyReduction_53
+happyReduction_53 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn56
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Rzk1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_54 = happyReduce 4# 9# happyReduction_54
+happyReduction_54 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut48 happy_x_2 of { (HappyWrap48 happy_var_2) -> 
+        case happyOut48 happy_x_4 of { (HappyWrap48 happy_var_4) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_55 = happySpecReduce_2  9# happyReduction_55
+happyReduction_55 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut48 happy_x_2 of { (HappyWrap48 happy_var_2) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandUnsetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_56 = happyReduce 4# 9# happyReduction_56
+happyReduction_56 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandCheck (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_57 = happySpecReduce_2  9# happyReduction_57
+happyReduction_57 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandCompute (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_58 = happySpecReduce_2  9# happyReduction_58
+happyReduction_58 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandComputeWHNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_59 = happySpecReduce_2  9# happyReduction_59
+happyReduction_59 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandComputeNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_60 = happyReduce 6# 9# happyReduction_60
+happyReduction_60 (happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
+        case happyOut59 happy_x_3 of { (HappyWrap59 happy_var_3) -> 
+        case happyOut75 happy_x_4 of { (HappyWrap75 happy_var_4) -> 
+        case happyOut93 happy_x_6 of { (HappyWrap93 happy_var_6) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandPostulate (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6))
+        ) `HappyStk` happyRest}}}}}
+
+happyReduce_61 = happyReduce 5# 9# happyReduction_61
+happyReduction_61 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
+        case happyOut59 happy_x_3 of { (HappyWrap59 happy_var_3) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandPostulateNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_62 = happyReduce 4# 9# happyReduction_62
+happyReduction_62 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut54 happy_x_2 of { (HappyWrap54 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandAssume (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_63 = happyReduce 4# 9# happyReduction_63
+happyReduction_63 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandVariable (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_64 = happyReduce 4# 9# happyReduction_64
+happyReduction_64 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut54 happy_x_2 of { (HappyWrap54 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandVariables (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_65 = happySpecReduce_2  9# happyReduction_65
+happyReduction_65 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut60 happy_x_2 of { (HappyWrap60 happy_var_2) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSection (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_66 = happySpecReduce_2  9# happyReduction_66
+happyReduction_66 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut60 happy_x_2 of { (HappyWrap60 happy_var_2) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSectionEnd (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_67 = happyReduce 8# 9# happyReduction_67
+happyReduction_67 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
+        case happyOut59 happy_x_3 of { (HappyWrap59 happy_var_3) -> 
+        case happyOut75 happy_x_4 of { (HappyWrap75 happy_var_4) -> 
+        case happyOut93 happy_x_6 of { (HappyWrap93 happy_var_6) -> 
+        case happyOut93 happy_x_8 of { (HappyWrap93 happy_var_8) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandDefine (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))
+        ) `HappyStk` happyRest}}}}}}
+
+happyReduce_68 = happyReduce 7# 9# happyReduction_68
+happyReduction_68 (happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
+        case happyOut59 happy_x_3 of { (HappyWrap59 happy_var_3) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        case happyOut93 happy_x_7 of { (HappyWrap93 happy_var_7) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefineNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))
+        ) `HappyStk` happyRest}}}}}
+
+happyReduce_69 = happyReduce 8# 9# happyReduction_69
+happyReduction_69 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
+        case happyOut59 happy_x_3 of { (HappyWrap59 happy_var_3) -> 
+        case happyOut75 happy_x_4 of { (HappyWrap75 happy_var_4) -> 
+        case happyOut93 happy_x_6 of { (HappyWrap93 happy_var_6) -> 
+        case happyOut93 happy_x_8 of { (HappyWrap93 happy_var_8) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDef (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))
+        ) `HappyStk` happyRest}}}}}}
+
+happyReduce_70 = happyReduce 7# 9# happyReduction_70
+happyReduction_70 (happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
+        case happyOut59 happy_x_3 of { (HappyWrap59 happy_var_3) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        case happyOut93 happy_x_7 of { (HappyWrap93 happy_var_7) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))
+        ) `HappyStk` happyRest}}}}}
+
+happyReduce_71 = happyReduce 6# 9# happyReduction_71
+happyReduction_71 (happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
+        case happyOut59 happy_x_3 of { (HappyWrap59 happy_var_3) -> 
+        case happyOut75 happy_x_4 of { (HappyWrap75 happy_var_4) -> 
+        case happyOut61 happy_x_5 of { (HappyWrap61 happy_var_5) -> 
+        case happyOut62 happy_x_6 of { (HappyWrap62 happy_var_6) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandData (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_5) (snd happy_var_6))
+        ) `HappyStk` happyRest}}}}}}
+
+happyReduce_72 = happyReduce 5# 9# 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 happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) -> 
+        case happyOut59 happy_x_3 of { (HappyWrap59 happy_var_3) -> 
+        case happyOut61 happy_x_4 of { (HappyWrap61 happy_var_4) -> 
+        case happyOut62 happy_x_5 of { (HappyWrap62 happy_var_5) -> 
+        happyIn57
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDataNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_5))
+        ) `HappyStk` happyRest}}}}}
+
+happyReduce_73 = happySpecReduce_0  10# happyReduction_73
+happyReduction_73  =  happyIn58
+                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, [])
+        )
+
+happyReduce_74 = happySpecReduce_3  10# happyReduction_74
+happyReduction_74 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut57 happy_x_1 of { (HappyWrap57 happy_var_1) -> 
+        case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> 
+        happyIn58
+                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_75 = happyReduce 4# 11# happyReduction_75
+happyReduction_75 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut54 happy_x_3 of { (HappyWrap54 happy_var_3) -> 
+        happyIn59
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.DeclUsedVars (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3))
+        ) `HappyStk` happyRest}}
+
+happyReduce_76 = happySpecReduce_0  11# happyReduction_76
+happyReduction_76  =  happyIn59
+                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.noDeclUsedVars Language.Rzk.Syntax.Abs.BNFC'NoPosition)
+        )
+
+happyReduce_77 = happySpecReduce_0  12# happyReduction_77
+happyReduction_77  =  happyIn60
+                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoSectionName Language.Rzk.Syntax.Abs.BNFC'NoPosition)
+        )
+
+happyReduce_78 = happySpecReduce_1  12# happyReduction_78
+happyReduction_78 happy_x_1
+         =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> 
+        happyIn60
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.SomeSectionName (fst happy_var_1) (snd happy_var_1))
+        )}
+
+happyReduce_79 = happySpecReduce_2  13# happyReduction_79
+happyReduction_79 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        happyIn61
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.SomeDataSort (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_80 = happySpecReduce_0  13# happyReduction_80
+happyReduction_80  =  happyIn61
+                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoDataSort Language.Rzk.Syntax.Abs.BNFC'NoPosition)
+        )
+
+happyReduce_81 = happySpecReduce_3  14# happyReduction_81
+happyReduction_81 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> 
+        case happyOut67 happy_x_3 of { (HappyWrap67 happy_var_3) -> 
+        happyIn62
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.SomeDataBody (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
+        )}}}
+
+happyReduce_82 = happySpecReduce_0  14# happyReduction_82
+happyReduction_82  =  happyIn62
+                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoDataBody Language.Rzk.Syntax.Abs.BNFC'NoPosition)
+        )
+
+happyReduce_83 = happySpecReduce_3  15# happyReduction_83
+happyReduction_83 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> 
+        case happyOut75 happy_x_2 of { (HappyWrap75 happy_var_2) -> 
+        case happyOut65 happy_x_3 of { (HappyWrap65 happy_var_3) -> 
+        happyIn63
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Constructor (fst happy_var_1) (snd happy_var_1) (snd happy_var_2) (snd happy_var_3))
+        )}}}
+
+happyReduce_84 = happySpecReduce_2  15# happyReduction_84
+happyReduction_84 happy_x_2
+        happy_x_1
+         =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> 
+        case happyOut65 happy_x_2 of { (HappyWrap65 happy_var_2) -> 
+        happyIn63
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.constructorNoParams (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))
+        )}}
+
+happyReduce_85 = happySpecReduce_1  16# happyReduction_85
+happyReduction_85 happy_x_1
+         =  case happyOut63 happy_x_1 of { (HappyWrap63 happy_var_1) -> 
+        happyIn64
+                 ((fst happy_var_1, (:[]) (snd happy_var_1))
+        )}
+
+happyReduce_86 = happySpecReduce_3  16# happyReduction_86
+happyReduction_86 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut63 happy_x_1 of { (HappyWrap63 happy_var_1) -> 
+        case happyOut64 happy_x_3 of { (HappyWrap64 happy_var_3) -> 
+        happyIn64
+                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_87 = happySpecReduce_2  17# happyReduction_87
+happyReduction_87 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        happyIn65
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.SomeConstructorType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_88 = happySpecReduce_0  17# happyReduction_88
+happyReduction_88  =  happyIn65
+                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoConstructorType Language.Rzk.Syntax.Abs.BNFC'NoPosition)
+        )
+
+happyReduce_89 = happyReduce 5# 18# happyReduction_89
+happyReduction_89 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut53 happy_x_3 of { (HappyWrap53 happy_var_3) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        happyIn66
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.DataElim (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_90 = happyReduce 5# 18# happyReduction_90
+happyReduction_90 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut53 happy_x_3 of { (HappyWrap53 happy_var_3) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        happyIn66
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.DataCompute (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_91 = happySpecReduce_0  19# happyReduction_91
+happyReduction_91  =  happyIn67
+                 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, [])
+        )
+
+happyReduce_92 = happySpecReduce_2  19# happyReduction_92
+happyReduction_92 happy_x_2
+        happy_x_1
+         =  case happyOut66 happy_x_1 of { (HappyWrap66 happy_var_1) -> 
+        case happyOut67 happy_x_2 of { (HappyWrap67 happy_var_2) -> 
+        happyIn67
+                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))
+        )}}
+
+happyReduce_93 = happyReduce 4# 20# happyReduction_93
+happyReduction_93 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> 
+        case happyOut71 happy_x_2 of { (HappyWrap71 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn68
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.MatchBranch (fst happy_var_1) (snd happy_var_1) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_94 = happySpecReduce_3  20# happyReduction_94
+happyReduction_94 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> 
+        case happyOut93 happy_x_3 of { (HappyWrap93 happy_var_3) -> 
+        happyIn68
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.matchBranchNoParams (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_95 = happyReduce 4# 20# happyReduction_95
+happyReduction_95 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> 
+        case happyOut71 happy_x_2 of { (HappyWrap71 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn68
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ascii_MatchBranch (fst happy_var_1) (snd happy_var_1) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_96 = happySpecReduce_3  20# happyReduction_96
+happyReduction_96 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> 
+        case happyOut93 happy_x_3 of { (HappyWrap93 happy_var_3) -> 
+        happyIn68
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ascii_matchBranchNoParams (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_97 = happySpecReduce_1  21# happyReduction_97
+happyReduction_97 happy_x_1
+         =  case happyOut68 happy_x_1 of { (HappyWrap68 happy_var_1) -> 
+        happyIn69
+                 ((fst happy_var_1, (:[]) (snd happy_var_1))
+        )}
+
+happyReduce_98 = happySpecReduce_3  21# happyReduction_98
+happyReduction_98 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut68 happy_x_1 of { (HappyWrap68 happy_var_1) -> 
+        case happyOut69 happy_x_3 of { (HappyWrap69 happy_var_3) -> 
+        happyIn69
+                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_99 = happySpecReduce_1  22# happyReduction_99
+happyReduction_99 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn70
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_100 = happySpecReduce_1  22# happyReduction_100
+happyReduction_100 happy_x_1
+         =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> 
+        happyIn70
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.PatternVar (fst happy_var_1) (snd happy_var_1))
+        )}
+
+happyReduce_101 = happyReduce 5# 22# happyReduction_101
+happyReduction_101 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut70 happy_x_2 of { (HappyWrap70 happy_var_2) -> 
+        case happyOut70 happy_x_4 of { (HappyWrap70 happy_var_4) -> 
+        happyIn70
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternPair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_102 = happyReduce 7# 22# happyReduction_102
+happyReduction_102 (happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut70 happy_x_2 of { (HappyWrap70 happy_var_2) -> 
+        case happyOut70 happy_x_4 of { (HappyWrap70 happy_var_4) -> 
+        case happyOut73 happy_x_6 of { (HappyWrap73 happy_var_6) -> 
+        happyIn70
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternTuple (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_103 = happySpecReduce_1  23# happyReduction_103
+happyReduction_103 happy_x_1
+         =  case happyOut70 happy_x_1 of { (HappyWrap70 happy_var_1) -> 
+        happyIn71
+                 ((fst happy_var_1, (:[]) (snd happy_var_1))
+        )}
+
+happyReduce_104 = happySpecReduce_2  23# happyReduction_104
+happyReduction_104 happy_x_2
+        happy_x_1
+         =  case happyOut70 happy_x_1 of { (HappyWrap70 happy_var_1) -> 
+        case happyOut71 happy_x_2 of { (HappyWrap71 happy_var_2) -> 
+        happyIn71
+                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))
+        )}}
+
+happyReduce_105 = happySpecReduce_1  24# happyReduction_105
+happyReduction_105 happy_x_1
+         =  case happyOut70 happy_x_1 of { (HappyWrap70 happy_var_1) -> 
+        happyIn72
+                 ((fst happy_var_1, (snd happy_var_1))
+        )}
+
+happyReduce_106 = happySpecReduce_1  25# happyReduction_106
+happyReduction_106 happy_x_1
+         =  case happyOut72 happy_x_1 of { (HappyWrap72 happy_var_1) -> 
+        happyIn73
+                 ((fst happy_var_1, (:[]) (snd happy_var_1))
+        )}
+
+happyReduce_107 = happySpecReduce_3  25# happyReduction_107
+happyReduction_107 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut72 happy_x_1 of { (HappyWrap72 happy_var_1) -> 
+        case happyOut73 happy_x_3 of { (HappyWrap73 happy_var_3) -> 
+        happyIn73
+                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_108 = happySpecReduce_1  26# happyReduction_108
+happyReduction_108 happy_x_1
+         =  case happyOut70 happy_x_1 of { (HappyWrap70 happy_var_1) -> 
+        happyIn74
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamPattern (fst happy_var_1) (snd happy_var_1))
+        )}
+
+happyReduce_109 = happyReduce 5# 26# happyReduction_109
+happyReduction_109 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut71 happy_x_2 of { (HappyWrap71 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn74
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_110 = happyReduce 7# 26# happyReduction_110
+happyReduction_110 (happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut71 happy_x_2 of { (HappyWrap71 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        case happyOut93 happy_x_6 of { (HappyWrap93 happy_var_6) -> 
+        happyIn74
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_111 = happyReduce 5# 26# happyReduction_111
+happyReduction_111 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut71 happy_x_2 of { (HappyWrap71 happy_var_2) -> 
+        case happyOut84 happy_x_3 of { (HappyWrap84 happy_var_3) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn74
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternModalType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_112 = happyReduce 7# 26# happyReduction_112
+happyReduction_112 (happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut71 happy_x_2 of { (HappyWrap71 happy_var_2) -> 
+        case happyOut84 happy_x_3 of { (HappyWrap84 happy_var_3) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        case happyOut93 happy_x_6 of { (HappyWrap93 happy_var_6) -> 
+        happyIn74
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternModalShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6))
+        ) `HappyStk` happyRest}}}}}
+
+happyReduce_113 = happySpecReduce_1  27# happyReduction_113
+happyReduction_113 happy_x_1
+         =  case happyOut74 happy_x_1 of { (HappyWrap74 happy_var_1) -> 
+        happyIn75
+                 ((fst happy_var_1, (:[]) (snd happy_var_1))
+        )}
+
+happyReduce_114 = happySpecReduce_2  27# happyReduction_114
+happyReduction_114 happy_x_2
+        happy_x_1
+         =  case happyOut74 happy_x_1 of { (HappyWrap74 happy_var_1) -> 
+        case happyOut75 happy_x_2 of { (HappyWrap75 happy_var_2) -> 
+        happyIn75
+                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))
+        )}}
+
+happyReduce_115 = happySpecReduce_1  28# happyReduction_115
+happyReduction_115 happy_x_1
+         =  case happyOut70 happy_x_1 of { (HappyWrap70 happy_var_1) -> 
+        happyIn76
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.BindPattern (fst happy_var_1) (snd happy_var_1))
+        )}
+
+happyReduce_116 = happySpecReduce_3  28# happyReduction_116
+happyReduction_116 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut70 happy_x_1 of { (HappyWrap70 happy_var_1) -> 
+        case happyOut93 happy_x_3 of { (HappyWrap93 happy_var_3) -> 
+        happyIn76
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.BindPatternType (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_117 = happySpecReduce_1  29# happyReduction_117
+happyReduction_117 happy_x_1
+         =  case happyOut90 happy_x_1 of { (HappyWrap90 happy_var_1) -> 
+        happyIn77
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamType (fst happy_var_1) (snd happy_var_1))
+        )}
+
+happyReduce_118 = happyReduce 5# 29# happyReduction_118
+happyReduction_118 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn77
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_119 = happyReduce 7# 29# happyReduction_119
+happyReduction_119 (happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        case happyOut93 happy_x_6 of { (HappyWrap93 happy_var_6) -> 
+        happyIn77
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_120 = happyReduce 5# 29# happyReduction_120
+happyReduction_120 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        case happyOut84 happy_x_3 of { (HappyWrap84 happy_var_3) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn77
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermModalType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_121 = happyReduce 7# 29# happyReduction_121
+happyReduction_121 (happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        case happyOut84 happy_x_3 of { (HappyWrap84 happy_var_3) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        case happyOut93 happy_x_6 of { (HappyWrap93 happy_var_6) -> 
+        happyIn77
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermModalShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6))
+        ) `HappyStk` happyRest}}}}}
+
+happyReduce_122 = happySpecReduce_3  30# happyReduction_122
+happyReduction_122 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut70 happy_x_1 of { (HappyWrap70 happy_var_1) -> 
+        case happyOut93 happy_x_3 of { (HappyWrap93 happy_var_3) -> 
+        happyIn78
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.SigmaParam (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_123 = happySpecReduce_3  30# happyReduction_123
+happyReduction_123 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut70 happy_x_1 of { (HappyWrap70 happy_var_1) -> 
+        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
+        case happyOut93 happy_x_3 of { (HappyWrap93 happy_var_3) -> 
+        happyIn78
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.SigmaParamModal (fst happy_var_1) (snd happy_var_1) (snd happy_var_2) (snd happy_var_3))
+        )}}}
+
+happyReduce_124 = happySpecReduce_1  31# happyReduction_124
+happyReduction_124 happy_x_1
+         =  case happyOut78 happy_x_1 of { (HappyWrap78 happy_var_1) -> 
+        happyIn79
+                 ((fst happy_var_1, (:[]) (snd happy_var_1))
+        )}
+
+happyReduce_125 = happySpecReduce_3  31# happyReduction_125
+happyReduction_125 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut78 happy_x_1 of { (HappyWrap78 happy_var_1) -> 
+        case happyOut79 happy_x_3 of { (HappyWrap79 happy_var_3) -> 
+        happyIn79
+                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_126 = happySpecReduce_3  32# happyReduction_126
+happyReduction_126 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut93 happy_x_1 of { (HappyWrap93 happy_var_1) -> 
+        case happyOut93 happy_x_3 of { (HappyWrap93 happy_var_3) -> 
+        happyIn80
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_127 = happySpecReduce_3  32# happyReduction_127
+happyReduction_127 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut93 happy_x_1 of { (HappyWrap93 happy_var_1) -> 
+        case happyOut93 happy_x_3 of { (HappyWrap93 happy_var_3) -> 
+        happyIn80
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_128 = happySpecReduce_1  33# happyReduction_128
+happyReduction_128 happy_x_1
+         =  case happyOut80 happy_x_1 of { (HappyWrap80 happy_var_1) -> 
+        happyIn81
+                 ((fst happy_var_1, (:[]) (snd happy_var_1))
+        )}
+
+happyReduce_129 = happySpecReduce_3  33# happyReduction_129
+happyReduction_129 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut80 happy_x_1 of { (HappyWrap80 happy_var_1) -> 
+        case happyOut81 happy_x_3 of { (HappyWrap81 happy_var_3) -> 
+        happyIn81
+                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_130 = happySpecReduce_1  34# happyReduction_130
+happyReduction_130 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn82
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Flat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_131 = happySpecReduce_1  34# happyReduction_131
+happyReduction_131 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn82
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Flat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_132 = happySpecReduce_1  34# happyReduction_132
+happyReduction_132 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn82
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Sharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_133 = happySpecReduce_1  34# happyReduction_133
+happyReduction_133 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn82
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Sharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_134 = happySpecReduce_1  34# happyReduction_134
+happyReduction_134 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn82
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Op (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_135 = happySpecReduce_1  34# happyReduction_135
+happyReduction_135 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn82
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Op (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_136 = happySpecReduce_1  34# happyReduction_136
+happyReduction_136 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn82
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Id (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_137 = happySpecReduce_1  35# happyReduction_137
+happyReduction_137 happy_x_1
+         =  case happyOut82 happy_x_1 of { (HappyWrap82 happy_var_1) -> 
+        happyIn83
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Single (fst happy_var_1) (snd happy_var_1))
+        )}
+
+happyReduce_138 = happySpecReduce_3  35# happyReduction_138
+happyReduction_138 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut82 happy_x_1 of { (HappyWrap82 happy_var_1) -> 
+        case happyOut82 happy_x_3 of { (HappyWrap82 happy_var_3) -> 
+        happyIn83
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Comp (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_139 = happySpecReduce_1  36# happyReduction_139
+happyReduction_139 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn84
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonFlat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_140 = happySpecReduce_1  36# happyReduction_140
+happyReduction_140 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn84
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonSharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_141 = happySpecReduce_1  36# happyReduction_141
+happyReduction_141 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn84
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonOp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_142 = happySpecReduce_1  36# happyReduction_142
+happyReduction_142 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn84
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonId (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_143 = happySpecReduce_1  36# happyReduction_143
+happyReduction_143 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn84
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_ModalColonFlat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_144 = happySpecReduce_1  36# happyReduction_144
+happyReduction_144 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn84
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_ModalColonSharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_145 = happySpecReduce_1  36# happyReduction_145
+happyReduction_145 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn84
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_ModalColonOp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_146 = happySpecReduce_1  37# happyReduction_146
+happyReduction_146 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Universe (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_147 = happySpecReduce_1  37# happyReduction_147
+happyReduction_147 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseCube (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_148 = happySpecReduce_1  37# happyReduction_148
+happyReduction_148 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseTope (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_149 = happySpecReduce_1  37# happyReduction_149
+happyReduction_149 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_150 = happySpecReduce_1  37# happyReduction_150
+happyReduction_150 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_151 = happySpecReduce_1  37# happyReduction_151
+happyReduction_151 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_152 = happySpecReduce_1  37# happyReduction_152
+happyReduction_152 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_153 = happySpecReduce_1  37# happyReduction_153
+happyReduction_153 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_154 = happySpecReduce_1  37# happyReduction_154
+happyReduction_154 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeI (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_155 = happySpecReduce_1  37# happyReduction_155
+happyReduction_155 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeI_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_156 = happySpecReduce_1  37# happyReduction_156
+happyReduction_156 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeI_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_157 = happySpecReduce_1  37# happyReduction_157
+happyReduction_157 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_158 = happySpecReduce_1  37# happyReduction_158
+happyReduction_158 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_159 = happySpecReduce_1  37# happyReduction_159
+happyReduction_159 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_160 = happyReduce 4# 37# happyReduction_160
+happyReduction_160 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut81 happy_x_3 of { (HappyWrap81 happy_var_3) -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3))
+        ) `HappyStk` happyRest}}
+
+happyReduce_161 = happySpecReduce_1  37# happyReduction_161
+happyReduction_161 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_162 = happyReduce 5# 37# happyReduction_162
+happyReduction_162 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Pair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_163 = happyReduce 7# 37# happyReduction_163
+happyReduction_163 (happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        case happyOut94 happy_x_6 of { (HappyWrap94 happy_var_6) -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Tuple (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_164 = happySpecReduce_1  37# happyReduction_164
+happyReduction_164 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Unit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_165 = happySpecReduce_1  37# happyReduction_165
+happyReduction_165 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Refl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_166 = happySpecReduce_3  37# happyReduction_166
+happyReduction_166 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTerm (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_167 = happyReduce 5# 37# happyReduction_167
+happyReduction_167 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTermType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_168 = happyReduce 14# 37# happyReduction_168
+happyReduction_168 (happy_x_14 `HappyStk`
+        happy_x_13 `HappyStk`
+        happy_x_12 `HappyStk`
+        happy_x_11 `HappyStk`
+        happy_x_10 `HappyStk`
+        happy_x_9 `HappyStk`
+        happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_3 of { (HappyWrap93 happy_var_3) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        case happyOut93 happy_x_7 of { (HappyWrap93 happy_var_7) -> 
+        case happyOut93 happy_x_9 of { (HappyWrap93 happy_var_9) -> 
+        case happyOut93 happy_x_11 of { (HappyWrap93 happy_var_11) -> 
+        case happyOut93 happy_x_13 of { (HappyWrap93 happy_var_13) -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.IdJ (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9) (snd happy_var_11) (snd happy_var_13))
+        ) `HappyStk` happyRest}}}}}}}
+
+happyReduce_169 = happySpecReduce_1  37# happyReduction_169
+happyReduction_169 happy_x_1
+         =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
+        happyIn85
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Hole (fst happy_var_1) (snd happy_var_1))
+        )}
+
+happyReduce_170 = happySpecReduce_1  37# happyReduction_170
+happyReduction_170 happy_x_1
+         =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> 
+        happyIn85
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Var (fst happy_var_1) (snd happy_var_1))
+        )}
+
+happyReduce_171 = happySpecReduce_3  37# happyReduction_171
+happyReduction_171 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut93 happy_x_2 of { (HappyWrap93 happy_var_2) -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), (snd happy_var_2))
+        )}}
+
+happyReduce_172 = happySpecReduce_1  37# happyReduction_172
+happyReduction_172 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_173 = happySpecReduce_1  37# happyReduction_173
+happyReduction_173 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_174 = happySpecReduce_1  37# happyReduction_174
+happyReduction_174 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_175 = happySpecReduce_1  37# happyReduction_175
+happyReduction_175 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeI (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_176 = happySpecReduce_1  37# happyReduction_176
+happyReduction_176 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeI_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_177 = happySpecReduce_1  37# happyReduction_177
+happyReduction_177 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeI_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_178 = happySpecReduce_1  37# happyReduction_178
+happyReduction_178 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_179 = happySpecReduce_1  37# happyReduction_179
+happyReduction_179 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn85
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_180 = happySpecReduce_3  38# happyReduction_180
+happyReduction_180 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
+        case happyOut90 happy_x_3 of { (HappyWrap90 happy_var_3) -> 
+        happyIn86
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_181 = happySpecReduce_3  38# happyReduction_181
+happyReduction_181 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
+        case happyOut90 happy_x_3 of { (HappyWrap90 happy_var_3) -> 
+        happyIn86
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeSup (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_182 = happySpecReduce_3  38# happyReduction_182
+happyReduction_182 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
+        case happyOut90 happy_x_3 of { (HappyWrap90 happy_var_3) -> 
+        happyIn86
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeInf (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_183 = happySpecReduce_1  38# happyReduction_183
+happyReduction_183 happy_x_1
+         =  case happyOut90 happy_x_1 of { (HappyWrap90 happy_var_1) -> 
+        happyIn86
+                 ((fst happy_var_1, (snd happy_var_1))
+        )}
+
+happyReduce_184 = happySpecReduce_3  38# happyReduction_184
+happyReduction_184 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
+        case happyOut90 happy_x_3 of { (HappyWrap90 happy_var_3) -> 
+        happyIn86
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ascii_CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_185 = happySpecReduce_3  39# happyReduction_185
+happyReduction_185 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
+        case happyOut86 happy_x_3 of { (HappyWrap86 happy_var_3) -> 
+        happyIn87
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_186 = happySpecReduce_3  39# happyReduction_186
+happyReduction_186 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
+        case happyOut86 happy_x_3 of { (HappyWrap86 happy_var_3) -> 
+        happyIn87
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_187 = happySpecReduce_1  39# happyReduction_187
+happyReduction_187 happy_x_1
+         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
+        happyIn87
+                 ((fst happy_var_1, (snd happy_var_1))
+        )}
+
+happyReduce_188 = happySpecReduce_3  39# happyReduction_188
+happyReduction_188 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
+        case happyOut86 happy_x_3 of { (HappyWrap86 happy_var_3) -> 
+        happyIn87
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_189 = happySpecReduce_3  39# happyReduction_189
+happyReduction_189 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
+        case happyOut86 happy_x_3 of { (HappyWrap86 happy_var_3) -> 
+        happyIn87
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_190 = happySpecReduce_3  40# happyReduction_190
+happyReduction_190 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut87 happy_x_1 of { (HappyWrap87 happy_var_1) -> 
+        case happyOut88 happy_x_3 of { (HappyWrap88 happy_var_3) -> 
+        happyIn88
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_191 = happySpecReduce_1  40# happyReduction_191
+happyReduction_191 happy_x_1
+         =  case happyOut87 happy_x_1 of { (HappyWrap87 happy_var_1) -> 
+        happyIn88
+                 ((fst happy_var_1, (snd happy_var_1))
+        )}
+
+happyReduce_192 = happySpecReduce_3  40# happyReduction_192
+happyReduction_192 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut87 happy_x_1 of { (HappyWrap87 happy_var_1) -> 
+        case happyOut88 happy_x_3 of { (HappyWrap88 happy_var_3) -> 
+        happyIn88
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_193 = happySpecReduce_3  41# happyReduction_193
+happyReduction_193 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) -> 
+        case happyOut89 happy_x_3 of { (HappyWrap89 happy_var_3) -> 
+        happyIn89
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_194 = happySpecReduce_1  41# happyReduction_194
+happyReduction_194 happy_x_1
+         =  case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) -> 
+        happyIn89
+                 ((fst happy_var_1, (snd happy_var_1))
+        )}
+
+happyReduce_195 = happySpecReduce_3  41# happyReduction_195
+happyReduction_195 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) -> 
+        case happyOut89 happy_x_3 of { (HappyWrap89 happy_var_3) -> 
+        happyIn89
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_196 = happySpecReduce_2  42# happyReduction_196
+happyReduction_196 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeInv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_197 = happySpecReduce_2  42# happyReduction_197
+happyReduction_197 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TopeInv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_198 = happySpecReduce_2  42# happyReduction_198
+happyReduction_198 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeUninv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_199 = happySpecReduce_2  42# happyReduction_199
+happyReduction_199 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TopeUninv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_200 = happySpecReduce_2  42# happyReduction_200
+happyReduction_200 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeFlip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_201 = happySpecReduce_2  42# happyReduction_201
+happyReduction_201 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeFlip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_202 = happySpecReduce_2  42# happyReduction_202
+happyReduction_202 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnflip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_203 = happySpecReduce_2  42# happyReduction_203
+happyReduction_203 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeUnflip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_204 = happyReduce 4# 42# happyReduction_204
+happyReduction_204 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOut90 happy_x_1 of { (HappyWrap90 happy_var_1) -> 
+        case happyOut81 happy_x_3 of { (HappyWrap81 happy_var_3) -> 
+        happyIn90
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeRestricted (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        ) `HappyStk` happyRest}}
+
+happyReduce_205 = happySpecReduce_2  42# happyReduction_205
+happyReduction_205 happy_x_2
+        happy_x_1
+         =  case happyOut90 happy_x_1 of { (HappyWrap90 happy_var_1) -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.App (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))
+        )}}
+
+happyReduce_206 = happySpecReduce_3  42# happyReduction_206
+happyReduction_206 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut83 happy_x_2 of { (HappyWrap83 happy_var_2) -> 
+        case happyOut92 happy_x_3 of { (HappyWrap92 happy_var_3) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModExtract (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
+        )}}}
+
+happyReduce_207 = happySpecReduce_2  42# happyReduction_207
+happyReduction_207 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_208 = happySpecReduce_2  42# happyReduction_208
+happyReduction_208 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_209 = happySpecReduce_1  42# happyReduction_209
+happyReduction_209 happy_x_1
+         =  case happyOut92 happy_x_1 of { (HappyWrap92 happy_var_1) -> 
+        happyIn90
+                 ((fst happy_var_1, (snd happy_var_1))
+        )}
+
+happyReduce_210 = happySpecReduce_3  42# happyReduction_210
+happyReduction_210 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        case happyOut92 happy_x_3 of { (HappyWrap92 happy_var_3) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeSup (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
+        )}}}
+
+happyReduce_211 = happySpecReduce_3  42# happyReduction_211
+happyReduction_211 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        case happyOut92 happy_x_3 of { (HappyWrap92 happy_var_3) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeInf (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
+        )}}}
+
+happyReduce_212 = happySpecReduce_2  42# happyReduction_212
+happyReduction_212 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_213 = happySpecReduce_2  42# happyReduction_213
+happyReduction_213 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_214 = happySpecReduce_3  43# happyReduction_214
+happyReduction_214 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut77 happy_x_1 of { (HappyWrap77 happy_var_1) -> 
+        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
+        happyIn91
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_215 = happyReduce 8# 43# happyReduction_215
+happyReduction_215 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut70 happy_x_3 of { (HappyWrap70 happy_var_3) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_216 = happyReduce 8# 43# happyReduction_216
+happyReduction_216 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut70 happy_x_3 of { (HappyWrap70 happy_var_3) -> 
+        case happyOut84 happy_x_4 of { (HappyWrap84 happy_var_4) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigmaModal (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_5) (snd happy_var_8))
+        ) `HappyStk` happyRest}}}}}
+
+happyReduce_217 = happyReduce 8# 43# happyReduction_217
+happyReduction_217 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut78 happy_x_3 of { (HappyWrap78 happy_var_3) -> 
+        case happyOut79 happy_x_5 of { (HappyWrap79 happy_var_5) -> 
+        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigmaTuple (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_218 = happyReduce 5# 43# happyReduction_218
+happyReduction_218 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOut89 happy_x_1 of { (HappyWrap89 happy_var_1) -> 
+        case happyOut93 happy_x_3 of { (HappyWrap93 happy_var_3) -> 
+        case happyOut89 happy_x_5 of { (HappyWrap89 happy_var_5) -> 
+        happyIn91
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeId (fst happy_var_1) (snd happy_var_1) (snd happy_var_3) (snd happy_var_5))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_219 = happySpecReduce_3  43# happyReduction_219
+happyReduction_219 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut89 happy_x_1 of { (HappyWrap89 happy_var_1) -> 
+        case happyOut89 happy_x_3 of { (HappyWrap89 happy_var_3) -> 
+        happyIn91
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeIdSimple (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_220 = happyReduce 6# 43# happyReduction_220
+happyReduction_220 (happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut76 happy_x_2 of { (HappyWrap76 happy_var_2) -> 
+        case happyOut93 happy_x_4 of { (HappyWrap93 happy_var_4) -> 
+        case happyOut93 happy_x_6 of { (HappyWrap93 happy_var_6) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Let (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_221 = happyReduce 4# 43# happyReduction_221
+happyReduction_221 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut75 happy_x_2 of { (HappyWrap75 happy_var_2) -> 
+        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_222 = happyReduce 7# 43# happyReduction_222
+happyReduction_222 (happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut82 happy_x_2 of { (HappyWrap82 happy_var_2) -> 
+        case happyOut76 happy_x_3 of { (HappyWrap76 happy_var_3) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        case happyOut93 happy_x_7 of { (HappyWrap93 happy_var_7) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModBind (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))
+        ) `HappyStk` happyRest}}}}}
+
+happyReduce_223 = happyReduce 8# 43# happyReduction_223
+happyReduction_223 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut82 happy_x_3 of { (HappyWrap82 happy_var_3) -> 
+        case happyOut76 happy_x_4 of { (HappyWrap76 happy_var_4) -> 
+        case happyOut93 happy_x_6 of { (HappyWrap93 happy_var_6) -> 
+        case happyOut93 happy_x_8 of { (HappyWrap93 happy_var_8) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetMod (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))
+        ) `HappyStk` happyRest}}}}}
+
+happyReduce_224 = happyReduce 9# 43# happyReduction_224
+happyReduction_224 (happy_x_9 `HappyStk`
+        happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut82 happy_x_2 of { (HappyWrap82 happy_var_2) -> 
+        case happyOut82 happy_x_4 of { (HappyWrap82 happy_var_4) -> 
+        case happyOut76 happy_x_5 of { (HappyWrap76 happy_var_5) -> 
+        case happyOut93 happy_x_7 of { (HappyWrap93 happy_var_7) -> 
+        case happyOut93 happy_x_9 of { (HappyWrap93 happy_var_9) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModFramed (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9))
+        ) `HappyStk` happyRest}}}}}}
+
+happyReduce_225 = happyReduce 9# 43# happyReduction_225
+happyReduction_225 (happy_x_9 `HappyStk`
+        happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut82 happy_x_2 of { (HappyWrap82 happy_var_2) -> 
+        case happyOut76 happy_x_3 of { (HappyWrap76 happy_var_3) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        case happyOut93 happy_x_7 of { (HappyWrap93 happy_var_7) -> 
+        case happyOut93 happy_x_9 of { (HappyWrap93 happy_var_9) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModBindInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9))
+        ) `HappyStk` happyRest}}}}}}
+
+happyReduce_226 = happyReduce 10# 43# happyReduction_226
+happyReduction_226 (happy_x_10 `HappyStk`
+        happy_x_9 `HappyStk`
+        happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut82 happy_x_3 of { (HappyWrap82 happy_var_3) -> 
+        case happyOut76 happy_x_4 of { (HappyWrap76 happy_var_4) -> 
+        case happyOut93 happy_x_6 of { (HappyWrap93 happy_var_6) -> 
+        case happyOut93 happy_x_8 of { (HappyWrap93 happy_var_8) -> 
+        case happyOut93 happy_x_10 of { (HappyWrap93 happy_var_10) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8) (snd happy_var_10))
+        ) `HappyStk` happyRest}}}}}}
+
+happyReduce_227 = happyReduce 11# 43# happyReduction_227
+happyReduction_227 (happy_x_11 `HappyStk`
+        happy_x_10 `HappyStk`
+        happy_x_9 `HappyStk`
+        happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut82 happy_x_2 of { (HappyWrap82 happy_var_2) -> 
+        case happyOut82 happy_x_4 of { (HappyWrap82 happy_var_4) -> 
+        case happyOut76 happy_x_5 of { (HappyWrap76 happy_var_5) -> 
+        case happyOut93 happy_x_7 of { (HappyWrap93 happy_var_7) -> 
+        case happyOut93 happy_x_9 of { (HappyWrap93 happy_var_9) -> 
+        case happyOut93 happy_x_11 of { (HappyWrap93 happy_var_11) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModFramedInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9) (snd happy_var_11))
+        ) `HappyStk` happyRest}}}}}}}
+
+happyReduce_228 = happySpecReduce_1  43# happyReduction_228
+happyReduction_228 happy_x_1
+         =  case happyOut89 happy_x_1 of { (HappyWrap89 happy_var_1) -> 
+        happyIn91
+                 ((fst happy_var_1, (snd happy_var_1))
+        )}
+
+happyReduce_229 = happySpecReduce_3  43# happyReduction_229
+happyReduction_229 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut77 happy_x_1 of { (HappyWrap77 happy_var_1) -> 
+        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
+        happyIn91
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_230 = happyReduce 8# 43# happyReduction_230
+happyReduction_230 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut70 happy_x_3 of { (HappyWrap70 happy_var_3) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_231 = happyReduce 8# 43# happyReduction_231
+happyReduction_231 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut70 happy_x_3 of { (HappyWrap70 happy_var_3) -> 
+        case happyOut84 happy_x_4 of { (HappyWrap84 happy_var_4) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TypeSigmaModal (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_5) (snd happy_var_8))
+        ) `HappyStk` happyRest}}}}}
+
+happyReduce_232 = happyReduce 8# 43# happyReduction_232
+happyReduction_232 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut78 happy_x_3 of { (HappyWrap78 happy_var_3) -> 
+        case happyOut79 happy_x_5 of { (HappyWrap79 happy_var_5) -> 
+        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TypeSigmaTuple (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_233 = happyReduce 4# 43# happyReduction_233
+happyReduction_233 (happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut75 happy_x_2 of { (HappyWrap75 happy_var_2) -> 
+        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_234 = happyReduce 8# 43# happyReduction_234
+happyReduction_234 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut70 happy_x_3 of { (HappyWrap70 happy_var_3) -> 
+        case happyOut93 happy_x_5 of { (HappyWrap93 happy_var_5) -> 
+        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaAlt (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_235 = happyReduce 8# 43# happyReduction_235
+happyReduction_235 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut78 happy_x_3 of { (HappyWrap78 happy_var_3) -> 
+        case happyOut79 happy_x_5 of { (HappyWrap79 happy_var_5) -> 
+        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
+        happyIn91
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaTupleAlt (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_236 = happySpecReduce_3  44# happyReduction_236
+happyReduction_236 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut82 happy_x_2 of { (HappyWrap82 happy_var_2) -> 
+        case happyOut92 happy_x_3 of { (HappyWrap92 happy_var_3) -> 
+        happyIn92
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModApp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
+        )}}}
+
+happyReduce_237 = happySpecReduce_2  44# happyReduction_237
+happyReduction_237 happy_x_2
+        happy_x_1
+         =  case happyOut82 happy_x_1 of { (HappyWrap82 happy_var_1) -> 
+        case happyOut92 happy_x_2 of { (HappyWrap92 happy_var_2) -> 
+        happyIn92
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ModType (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))
+        )}}
+
+happyReduce_238 = happyReduce 5# 44# happyReduction_238
+happyReduction_238 (happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut85 happy_x_2 of { (HappyWrap85 happy_var_2) -> 
+        case happyOut69 happy_x_4 of { (HappyWrap69 happy_var_4) -> 
+        happyIn92
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Match (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_239 = happyReduce 7# 44# happyReduction_239
+happyReduction_239 (happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut85 happy_x_2 of { (HappyWrap85 happy_var_2) -> 
+        case happyOut85 happy_x_4 of { (HappyWrap85 happy_var_4) -> 
+        case happyOut69 happy_x_6 of { (HappyWrap69 happy_var_6) -> 
+        happyIn92
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.MatchInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_240 = happyReduce 6# 44# happyReduction_240
+happyReduction_240 (happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut82 happy_x_2 of { (HappyWrap82 happy_var_2) -> 
+        case happyOut85 happy_x_3 of { (HappyWrap85 happy_var_3) -> 
+        case happyOut69 happy_x_5 of { (HappyWrap69 happy_var_5) -> 
+        happyIn92
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.MatchModal (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5))
+        ) `HappyStk` happyRest}}}}
+
+happyReduce_241 = happyReduce 8# 44# happyReduction_241
+happyReduction_241 (happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut82 happy_x_2 of { (HappyWrap82 happy_var_2) -> 
+        case happyOut85 happy_x_3 of { (HappyWrap85 happy_var_3) -> 
+        case happyOut85 happy_x_5 of { (HappyWrap85 happy_var_5) -> 
+        case happyOut69 happy_x_7 of { (HappyWrap69 happy_var_7) -> 
+        happyIn92
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.MatchModalInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))
+        ) `HappyStk` happyRest}}}}}
+
+happyReduce_242 = happySpecReduce_1  44# happyReduction_242
+happyReduction_242 happy_x_1
+         =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
+        happyIn92
+                 ((fst happy_var_1, (snd happy_var_1))
+        )}
+
+happyReduce_243 = happySpecReduce_3  45# happyReduction_243
+happyReduction_243 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut89 happy_x_1 of { (HappyWrap89 happy_var_1) -> 
+        case happyOut91 happy_x_3 of { (HappyWrap91 happy_var_3) -> 
+        happyIn93
+                 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeAsc (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyReduce_244 = happySpecReduce_1  45# happyReduction_244
+happyReduction_244 happy_x_1
+         =  case happyOut91 happy_x_1 of { (HappyWrap91 happy_var_1) -> 
+        happyIn93
+                 ((fst happy_var_1, (snd happy_var_1))
+        )}
+
+happyReduce_245 = happySpecReduce_1  46# happyReduction_245
+happyReduction_245 happy_x_1
+         =  case happyOut93 happy_x_1 of { (HappyWrap93 happy_var_1) -> 
+        happyIn94
+                 ((fst happy_var_1, (:[]) (snd happy_var_1))
+        )}
+
+happyReduce_246 = happySpecReduce_3  46# happyReduction_246
+happyReduction_246 happy_x_3
+        happy_x_2
+        happy_x_1
+         =  case happyOut93 happy_x_1 of { (HappyWrap93 happy_var_1) -> 
+        case happyOut94 happy_x_3 of { (HappyWrap94 happy_var_3) -> 
+        happyIn94
+                 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
+        )}}
+
+happyTerminalToTok term = case term of {
+        PT _ (TS _ 1) -> 2#;
+        PT _ (TS _ 2) -> 3#;
+        PT _ (TS _ 3) -> 4#;
+        PT _ (TS _ 4) -> 5#;
+        PT _ (TS _ 5) -> 6#;
+        PT _ (TS _ 6) -> 7#;
+        PT _ (TS _ 7) -> 8#;
+        PT _ (TS _ 8) -> 9#;
+        PT _ (TS _ 9) -> 10#;
+        PT _ (TS _ 10) -> 11#;
+        PT _ (TS _ 11) -> 12#;
+        PT _ (TS _ 12) -> 13#;
+        PT _ (TS _ 13) -> 14#;
+        PT _ (TS _ 14) -> 15#;
+        PT _ (TS _ 15) -> 16#;
+        PT _ (TS _ 16) -> 17#;
+        PT _ (TS _ 17) -> 18#;
+        PT _ (TS _ 18) -> 19#;
+        PT _ (TS _ 19) -> 20#;
+        PT _ (TS _ 20) -> 21#;
+        PT _ (TS _ 21) -> 22#;
+        PT _ (TS _ 22) -> 23#;
+        PT _ (TS _ 23) -> 24#;
+        PT _ (TS _ 24) -> 25#;
+        PT _ (TS _ 25) -> 26#;
+        PT _ (TS _ 26) -> 27#;
+        PT _ (TS _ 27) -> 28#;
+        PT _ (TS _ 28) -> 29#;
+        PT _ (TS _ 29) -> 30#;
+        PT _ (TS _ 30) -> 31#;
+        PT _ (TS _ 31) -> 32#;
+        PT _ (TS _ 32) -> 33#;
+        PT _ (TS _ 33) -> 34#;
+        PT _ (TS _ 34) -> 35#;
+        PT _ (TS _ 35) -> 36#;
+        PT _ (TS _ 36) -> 37#;
+        PT _ (TS _ 37) -> 38#;
+        PT _ (TS _ 38) -> 39#;
+        PT _ (TS _ 39) -> 40#;
+        PT _ (TS _ 40) -> 41#;
+        PT _ (TS _ 41) -> 42#;
+        PT _ (TS _ 42) -> 43#;
+        PT _ (TS _ 43) -> 44#;
+        PT _ (TS _ 44) -> 45#;
+        PT _ (TS _ 45) -> 46#;
+        PT _ (TS _ 46) -> 47#;
+        PT _ (TS _ 47) -> 48#;
+        PT _ (TS _ 48) -> 49#;
+        PT _ (TS _ 49) -> 50#;
+        PT _ (TS _ 50) -> 51#;
+        PT _ (TS _ 51) -> 52#;
+        PT _ (TS _ 52) -> 53#;
+        PT _ (TS _ 53) -> 54#;
+        PT _ (TS _ 54) -> 55#;
+        PT _ (TS _ 55) -> 56#;
+        PT _ (TS _ 56) -> 57#;
+        PT _ (TS _ 57) -> 58#;
+        PT _ (TS _ 58) -> 59#;
+        PT _ (TS _ 59) -> 60#;
+        PT _ (TS _ 60) -> 61#;
+        PT _ (TS _ 61) -> 62#;
+        PT _ (TS _ 62) -> 63#;
+        PT _ (TS _ 63) -> 64#;
+        PT _ (TS _ 64) -> 65#;
+        PT _ (TS _ 65) -> 66#;
+        PT _ (TS _ 66) -> 67#;
+        PT _ (TS _ 67) -> 68#;
+        PT _ (TS _ 68) -> 69#;
+        PT _ (TS _ 69) -> 70#;
+        PT _ (TS _ 70) -> 71#;
+        PT _ (TS _ 71) -> 72#;
+        PT _ (TS _ 72) -> 73#;
+        PT _ (TS _ 73) -> 74#;
+        PT _ (TS _ 74) -> 75#;
+        PT _ (TS _ 75) -> 76#;
+        PT _ (TS _ 76) -> 77#;
+        PT _ (TS _ 77) -> 78#;
+        PT _ (TS _ 78) -> 79#;
+        PT _ (TS _ 79) -> 80#;
+        PT _ (TS _ 80) -> 81#;
+        PT _ (TS _ 81) -> 82#;
+        PT _ (TS _ 82) -> 83#;
+        PT _ (TS _ 83) -> 84#;
+        PT _ (TS _ 84) -> 85#;
+        PT _ (TS _ 85) -> 86#;
+        PT _ (TS _ 86) -> 87#;
+        PT _ (TS _ 87) -> 88#;
+        PT _ (TS _ 88) -> 89#;
+        PT _ (TS _ 89) -> 90#;
+        PT _ (TS _ 90) -> 91#;
+        PT _ (TS _ 91) -> 92#;
+        PT _ (TS _ 92) -> 93#;
+        PT _ (TS _ 93) -> 94#;
+        PT _ (TS _ 94) -> 95#;
+        PT _ (TS _ 95) -> 96#;
+        PT _ (TS _ 96) -> 97#;
+        PT _ (TS _ 97) -> 98#;
+        PT _ (TS _ 98) -> 99#;
+        PT _ (TS _ 99) -> 100#;
+        PT _ (TS _ 100) -> 101#;
+        PT _ (TS _ 101) -> 102#;
+        PT _ (TS _ 102) -> 103#;
+        PT _ (TS _ 103) -> 104#;
+        PT _ (TS _ 104) -> 105#;
+        PT _ (TS _ 105) -> 106#;
+        PT _ (TS _ 106) -> 107#;
+        PT _ (TS _ 107) -> 108#;
+        PT _ (TS _ 108) -> 109#;
+        PT _ (TS _ 109) -> 110#;
+        PT _ (TS _ 110) -> 111#;
+        PT _ (TS _ 111) -> 112#;
+        PT _ (TS _ 112) -> 113#;
+        PT _ (TS _ 113) -> 114#;
+        PT _ (TS _ 114) -> 115#;
+        PT _ (TS _ 115) -> 116#;
+        PT _ (TS _ 116) -> 117#;
+        PT _ (TS _ 117) -> 118#;
+        PT _ (TS _ 118) -> 119#;
+        PT _ (TS _ 119) -> 120#;
+        PT _ (TL _) -> 121#;
+        PT _ (T_VarIdentToken _) -> 122#;
+        PT _ (T_HoleIdentToken _) -> 123#;
+        _ -> -1#;
+        }
+{-# NOINLINE happyTerminalToTok #-}
+
+happyLex kend  _kmore []       = kend notHappyAtAll []
+happyLex _kend kmore  (tk:tks) = kmore (happyTerminalToTok tk) tk tks
+{-# INLINE happyLex #-}
+
+happyNewToken action sts stk = happyLex (\tk -> happyDoAction 124# notHappyAtAll action sts stk) (\i tk -> happyDoAction i tk action sts stk)
+
+happyReport 124# tk explist resume tks = happyReport' tks explist resume
+happyReport _ tk explist resume tks = happyReport' (tk:tks) explist (\tks -> resume (Happy_Prelude.tail tks))
+
+
+happyThen :: () => (Err a) -> (a -> (Err b)) -> (Err b)
+happyThen = ((>>=))
+happyReturn :: () => a -> (Err a)
+happyReturn = (return)
+happyThen1 m k tks = ((>>=)) m (\a -> k a tks)
+happyFmap1 f m tks = happyThen (m tks) (\a -> happyReturn (f a))
+happyReturn1 :: () => a -> b -> (Err a)
+happyReturn1 = \a tks -> (return) a
+happyReport' :: () => [(Token)] -> [Happy_Prelude.String] -> ([(Token)] -> (Err a)) -> (Err a)
+happyReport' = (\tokens expected resume -> happyError tokens)
+
+happyAbort :: () => [(Token)] -> (Err a)
+happyAbort = Happy_Prelude.error "Called abort handler in non-resumptive parser"
+
+pModule_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 0# tks) (\x -> happyReturn (let {(HappyWrap51 x') = happyOut51 x} in x'))
+
+pHoleIdent_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 1# tks) (\x -> happyReturn (let {(HappyWrap52 x') = happyOut52 x} in x'))
+
+pVarIdent_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 2# tks) (\x -> happyReturn (let {(HappyWrap53 x') = happyOut53 x} in x'))
+
+pListVarIdent_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 3# tks) (\x -> happyReturn (let {(HappyWrap54 x') = happyOut54 x} in x'))
+
+pLanguageDecl_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 4# tks) (\x -> happyReturn (let {(HappyWrap55 x') = happyOut55 x} in x'))
+
+pLanguage_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 5# tks) (\x -> happyReturn (let {(HappyWrap56 x') = happyOut56 x} in x'))
+
+pCommand_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 6# tks) (\x -> happyReturn (let {(HappyWrap57 x') = happyOut57 x} in x'))
+
+pListCommand_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 7# tks) (\x -> happyReturn (let {(HappyWrap58 x') = happyOut58 x} in x'))
+
+pDeclUsedVars_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 8# tks) (\x -> happyReturn (let {(HappyWrap59 x') = happyOut59 x} in x'))
+
+pSectionName_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 9# tks) (\x -> happyReturn (let {(HappyWrap60 x') = happyOut60 x} in x'))
+
+pDataSort_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 10# tks) (\x -> happyReturn (let {(HappyWrap61 x') = happyOut61 x} in x'))
+
+pDataBody_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 11# tks) (\x -> happyReturn (let {(HappyWrap62 x') = happyOut62 x} in x'))
+
+pConstructor_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 12# tks) (\x -> happyReturn (let {(HappyWrap63 x') = happyOut63 x} in x'))
+
+pListConstructor_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 13# tks) (\x -> happyReturn (let {(HappyWrap64 x') = happyOut64 x} in x'))
+
+pConstructorType_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 14# tks) (\x -> happyReturn (let {(HappyWrap65 x') = happyOut65 x} in x'))
+
+pDataElim_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 15# tks) (\x -> happyReturn (let {(HappyWrap66 x') = happyOut66 x} in x'))
+
+pListDataElim_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 16# tks) (\x -> happyReturn (let {(HappyWrap67 x') = happyOut67 x} in x'))
+
+pMatchBranch_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 17# tks) (\x -> happyReturn (let {(HappyWrap68 x') = happyOut68 x} in x'))
+
+pListMatchBranch_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 18# tks) (\x -> happyReturn (let {(HappyWrap69 x') = happyOut69 x} in x'))
+
+pPattern_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 19# tks) (\x -> happyReturn (let {(HappyWrap70 x') = happyOut70 x} in x'))
+
+pListPattern_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 20# tks) (\x -> happyReturn (let {(HappyWrap71 x') = happyOut71 x} in x'))
+
+pPattern1_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 21# tks) (\x -> happyReturn (let {(HappyWrap72 x') = happyOut72 x} in x'))
+
+pListPattern1_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 22# tks) (\x -> happyReturn (let {(HappyWrap73 x') = happyOut73 x} in x'))
+
+pParam_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 23# tks) (\x -> happyReturn (let {(HappyWrap74 x') = happyOut74 x} in x'))
+
+pListParam_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 24# tks) (\x -> happyReturn (let {(HappyWrap75 x') = happyOut75 x} in x'))
+
+pBind_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 25# tks) (\x -> happyReturn (let {(HappyWrap76 x') = happyOut76 x} in x'))
+
+pParamDecl_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 26# tks) (\x -> happyReturn (let {(HappyWrap77 x') = happyOut77 x} in x'))
+
+pSigmaParam_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 27# tks) (\x -> happyReturn (let {(HappyWrap78 x') = happyOut78 x} in x'))
+
+pListSigmaParam_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 28# tks) (\x -> happyReturn (let {(HappyWrap79 x') = happyOut79 x} in x'))
+
+pRestriction_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 29# tks) (\x -> happyReturn (let {(HappyWrap80 x') = happyOut80 x} in x'))
+
+pListRestriction_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 30# tks) (\x -> happyReturn (let {(HappyWrap81 x') = happyOut81 x} in x'))
+
+pModality_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 31# tks) (\x -> happyReturn (let {(HappyWrap82 x') = happyOut82 x} in x'))
+
+pModComp_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 32# tks) (\x -> happyReturn (let {(HappyWrap83 x') = happyOut83 x} in x'))
+
+pModalColon_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 33# tks) (\x -> happyReturn (let {(HappyWrap84 x') = happyOut84 x} in x'))
+
+pTerm8_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 34# tks) (\x -> happyReturn (let {(HappyWrap85 x') = happyOut85 x} in x'))
+
+pTerm5_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 35# tks) (\x -> happyReturn (let {(HappyWrap86 x') = happyOut86 x} in x'))
+
+pTerm4_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 36# tks) (\x -> happyReturn (let {(HappyWrap87 x') = happyOut87 x} in x'))
+
+pTerm3_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 37# tks) (\x -> happyReturn (let {(HappyWrap88 x') = happyOut88 x} in x'))
+
+pTerm2_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 38# tks) (\x -> happyReturn (let {(HappyWrap89 x') = happyOut89 x} in x'))
+
+pTerm6_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 39# tks) (\x -> happyReturn (let {(HappyWrap90 x') = happyOut90 x} in x'))
+
+pTerm1_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 40# tks) (\x -> happyReturn (let {(HappyWrap91 x') = happyOut91 x} in x'))
+
+pTerm7_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 41# tks) (\x -> happyReturn (let {(HappyWrap92 x') = happyOut92 x} in x'))
+
+pTerm_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 42# tks) (\x -> happyReturn (let {(HappyWrap93 x') = happyOut93 x} in x'))
+
+pListTerm_internal tks = happySomeParser where
+ happySomeParser = happyThen (happyDoParse 43# tks) (\x -> happyReturn (let {(HappyWrap94 x') = happyOut94 x} in x'))
+
+happySeq = happyDontSeq
+
+
+type Err = Either String
+
+happyError :: [Token] -> Err a
+happyError ts = Left $
+  "syntax error at " ++ tokenPos ts ++
+  case ts of
+    []      -> []
+    [Err _] -> " due to lexer error"
+    t:_     -> " before `" ++ (prToken t) ++ "'"
+
+myLexer :: Data.Text.Text -> [Token]
+myLexer = tokens
+
+-- Entrypoints
+
+pModule :: [Token] -> Err Language.Rzk.Syntax.Abs.Module
+pModule = fmap snd . pModule_internal
+
+pHoleIdent :: [Token] -> Err Language.Rzk.Syntax.Abs.HoleIdent
+pHoleIdent = fmap snd . pHoleIdent_internal
+
+pVarIdent :: [Token] -> Err Language.Rzk.Syntax.Abs.VarIdent
+pVarIdent = fmap snd . pVarIdent_internal
+
+pListVarIdent :: [Token] -> Err [Language.Rzk.Syntax.Abs.VarIdent]
+pListVarIdent = fmap snd . pListVarIdent_internal
+
+pLanguageDecl :: [Token] -> Err Language.Rzk.Syntax.Abs.LanguageDecl
+pLanguageDecl = fmap snd . pLanguageDecl_internal
+
+pLanguage :: [Token] -> Err Language.Rzk.Syntax.Abs.Language
+pLanguage = fmap snd . pLanguage_internal
+
+pCommand :: [Token] -> Err Language.Rzk.Syntax.Abs.Command
+pCommand = fmap snd . pCommand_internal
+
+pListCommand :: [Token] -> Err [Language.Rzk.Syntax.Abs.Command]
+pListCommand = fmap snd . pListCommand_internal
+
+pDeclUsedVars :: [Token] -> Err Language.Rzk.Syntax.Abs.DeclUsedVars
+pDeclUsedVars = fmap snd . pDeclUsedVars_internal
+
+pSectionName :: [Token] -> Err Language.Rzk.Syntax.Abs.SectionName
+pSectionName = fmap snd . pSectionName_internal
+
+pDataSort :: [Token] -> Err Language.Rzk.Syntax.Abs.DataSort
+pDataSort = fmap snd . pDataSort_internal
+
+pDataBody :: [Token] -> Err Language.Rzk.Syntax.Abs.DataBody
+pDataBody = fmap snd . pDataBody_internal
+
+pConstructor :: [Token] -> Err Language.Rzk.Syntax.Abs.Constructor
+pConstructor = fmap snd . pConstructor_internal
+
+pListConstructor :: [Token] -> Err [Language.Rzk.Syntax.Abs.Constructor]
+pListConstructor = fmap snd . pListConstructor_internal
+
+pConstructorType :: [Token] -> Err Language.Rzk.Syntax.Abs.ConstructorType
+pConstructorType = fmap snd . pConstructorType_internal
+
+pDataElim :: [Token] -> Err Language.Rzk.Syntax.Abs.DataElim
+pDataElim = fmap snd . pDataElim_internal
+
+pListDataElim :: [Token] -> Err [Language.Rzk.Syntax.Abs.DataElim]
+pListDataElim = fmap snd . pListDataElim_internal
+
+pMatchBranch :: [Token] -> Err Language.Rzk.Syntax.Abs.MatchBranch
+pMatchBranch = fmap snd . pMatchBranch_internal
+
+pListMatchBranch :: [Token] -> Err [Language.Rzk.Syntax.Abs.MatchBranch]
+pListMatchBranch = fmap snd . pListMatchBranch_internal
+
+pPattern :: [Token] -> Err Language.Rzk.Syntax.Abs.Pattern
+pPattern = fmap snd . pPattern_internal
+
+pListPattern :: [Token] -> Err [Language.Rzk.Syntax.Abs.Pattern]
+pListPattern = fmap snd . pListPattern_internal
+
+pPattern1 :: [Token] -> Err Language.Rzk.Syntax.Abs.Pattern
+pPattern1 = fmap snd . pPattern1_internal
+
+pListPattern1 :: [Token] -> Err [Language.Rzk.Syntax.Abs.Pattern]
+pListPattern1 = fmap snd . pListPattern1_internal
+
+pParam :: [Token] -> Err Language.Rzk.Syntax.Abs.Param
+pParam = fmap snd . pParam_internal
+
+pListParam :: [Token] -> Err [Language.Rzk.Syntax.Abs.Param]
+pListParam = fmap snd . pListParam_internal
+
+pBind :: [Token] -> Err Language.Rzk.Syntax.Abs.Bind
+pBind = fmap snd . pBind_internal
+
+pParamDecl :: [Token] -> Err Language.Rzk.Syntax.Abs.ParamDecl
+pParamDecl = fmap snd . pParamDecl_internal
+
+pSigmaParam :: [Token] -> Err Language.Rzk.Syntax.Abs.SigmaParam
+pSigmaParam = fmap snd . pSigmaParam_internal
+
+pListSigmaParam :: [Token] -> Err [Language.Rzk.Syntax.Abs.SigmaParam]
+pListSigmaParam = fmap snd . pListSigmaParam_internal
+
+pRestriction :: [Token] -> Err Language.Rzk.Syntax.Abs.Restriction
+pRestriction = fmap snd . pRestriction_internal
+
+pListRestriction :: [Token] -> Err [Language.Rzk.Syntax.Abs.Restriction]
+pListRestriction = fmap snd . pListRestriction_internal
+
+pModality :: [Token] -> Err Language.Rzk.Syntax.Abs.Modality
+pModality = fmap snd . pModality_internal
+
+pModComp :: [Token] -> Err Language.Rzk.Syntax.Abs.ModComp
+pModComp = fmap snd . pModComp_internal
+
+pModalColon :: [Token] -> Err Language.Rzk.Syntax.Abs.ModalColon
+pModalColon = fmap snd . pModalColon_internal
+
+pTerm8 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
+pTerm8 = fmap snd . pTerm8_internal
+
+pTerm5 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
+pTerm5 = fmap snd . pTerm5_internal
+
+pTerm4 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
+pTerm4 = fmap snd . pTerm4_internal
+
+pTerm3 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
+pTerm3 = fmap snd . pTerm3_internal
+
+pTerm2 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
+pTerm2 = fmap snd . pTerm2_internal
+
+pTerm6 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
+pTerm6 = fmap snd . pTerm6_internal
+
+pTerm1 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
+pTerm1 = fmap snd . pTerm1_internal
+
+pTerm7 :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
+pTerm7 = fmap snd . pTerm7_internal
 
 pTerm :: [Token] -> Err Language.Rzk.Syntax.Abs.Term
 pTerm = fmap snd . pTerm_internal
diff --git a/src/Language/Rzk/Syntax/Print.hs b/src/Language/Rzk/Syntax/Print.hs
--- a/src/Language/Rzk/Syntax/Print.hs
+++ b/src/Language/Rzk/Syntax/Print.hs
@@ -321,22 +321,22 @@
 
 instance Print (Language.Rzk.Syntax.Abs.Term' a) where
   prt i = \case
-    Language.Rzk.Syntax.Abs.Universe _ -> prPrec i 7 (concatD [doc (showString "U")])
-    Language.Rzk.Syntax.Abs.UniverseCube _ -> prPrec i 7 (concatD [doc (showString "CUBE")])
-    Language.Rzk.Syntax.Abs.UniverseTope _ -> prPrec i 7 (concatD [doc (showString "TOPE")])
-    Language.Rzk.Syntax.Abs.CubeUnit _ -> prPrec i 7 (concatD [doc (showString "1")])
-    Language.Rzk.Syntax.Abs.CubeUnitStar _ -> prPrec i 7 (concatD [doc (showString "*\8321")])
-    Language.Rzk.Syntax.Abs.Cube2 _ -> prPrec i 7 (concatD [doc (showString "2")])
-    Language.Rzk.Syntax.Abs.Cube2_0 _ -> prPrec i 7 (concatD [doc (showString "0\8322")])
-    Language.Rzk.Syntax.Abs.Cube2_1 _ -> prPrec i 7 (concatD [doc (showString "1\8322")])
-    Language.Rzk.Syntax.Abs.CubeI _ -> prPrec i 7 (concatD [doc (showString "\120128")])
-    Language.Rzk.Syntax.Abs.CubeI_0 _ -> prPrec i 7 (concatD [doc (showString "0\7522")])
-    Language.Rzk.Syntax.Abs.CubeI_1 _ -> prPrec i 7 (concatD [doc (showString "1\7522")])
+    Language.Rzk.Syntax.Abs.Universe _ -> prPrec i 8 (concatD [doc (showString "U")])
+    Language.Rzk.Syntax.Abs.UniverseCube _ -> prPrec i 8 (concatD [doc (showString "CUBE")])
+    Language.Rzk.Syntax.Abs.UniverseTope _ -> prPrec i 8 (concatD [doc (showString "TOPE")])
+    Language.Rzk.Syntax.Abs.CubeUnit _ -> prPrec i 8 (concatD [doc (showString "1")])
+    Language.Rzk.Syntax.Abs.CubeUnitStar _ -> prPrec i 8 (concatD [doc (showString "*\8321")])
+    Language.Rzk.Syntax.Abs.Cube2 _ -> prPrec i 8 (concatD [doc (showString "2")])
+    Language.Rzk.Syntax.Abs.Cube2_0 _ -> prPrec i 8 (concatD [doc (showString "0\8322")])
+    Language.Rzk.Syntax.Abs.Cube2_1 _ -> prPrec i 8 (concatD [doc (showString "1\8322")])
+    Language.Rzk.Syntax.Abs.CubeI _ -> prPrec i 8 (concatD [doc (showString "\120128")])
+    Language.Rzk.Syntax.Abs.CubeI_0 _ -> prPrec i 8 (concatD [doc (showString "0\7522")])
+    Language.Rzk.Syntax.Abs.CubeI_1 _ -> prPrec i 8 (concatD [doc (showString "1\7522")])
     Language.Rzk.Syntax.Abs.CubeProduct _ term1 term2 -> prPrec i 5 (concatD [prt 5 term1, doc (showString "\215"), prt 6 term2])
     Language.Rzk.Syntax.Abs.CubeSup _ term1 term2 -> prPrec i 5 (concatD [prt 5 term1, doc (showString "\8852"), prt 6 term2])
     Language.Rzk.Syntax.Abs.CubeInf _ term1 term2 -> prPrec i 5 (concatD [prt 5 term1, doc (showString "\8851"), prt 6 term2])
-    Language.Rzk.Syntax.Abs.TopeTop _ -> prPrec i 7 (concatD [doc (showString "\8868")])
-    Language.Rzk.Syntax.Abs.TopeBottom _ -> prPrec i 7 (concatD [doc (showString "\8869")])
+    Language.Rzk.Syntax.Abs.TopeTop _ -> prPrec i 8 (concatD [doc (showString "\8868")])
+    Language.Rzk.Syntax.Abs.TopeBottom _ -> prPrec i 8 (concatD [doc (showString "\8869")])
     Language.Rzk.Syntax.Abs.TopeEQ _ term1 term2 -> prPrec i 4 (concatD [prt 5 term1, doc (showString "\8801"), prt 5 term2])
     Language.Rzk.Syntax.Abs.TopeLEQ _ term1 term2 -> prPrec i 4 (concatD [prt 5 term1, doc (showString "\8804"), prt 5 term2])
     Language.Rzk.Syntax.Abs.TopeAnd _ term1 term2 -> prPrec i 3 (concatD [prt 4 term1, doc (showString "\8743"), prt 3 term2])
@@ -345,21 +345,21 @@
     Language.Rzk.Syntax.Abs.TopeUninv _ term -> prPrec i 6 (concatD [doc (showString "uninv\7506\7510"), prt 7 term])
     Language.Rzk.Syntax.Abs.CubeFlip _ term -> prPrec i 6 (concatD [doc (showString "flip\7506\7510"), prt 7 term])
     Language.Rzk.Syntax.Abs.CubeUnflip _ term -> prPrec i 6 (concatD [doc (showString "unflip\7506\7510"), prt 7 term])
-    Language.Rzk.Syntax.Abs.RecBottom _ -> prPrec i 7 (concatD [doc (showString "recBOT")])
-    Language.Rzk.Syntax.Abs.RecOr _ restrictions -> prPrec i 7 (concatD [doc (showString "recOR"), doc (showString "("), prt 0 restrictions, doc (showString ")")])
+    Language.Rzk.Syntax.Abs.RecBottom _ -> prPrec i 8 (concatD [doc (showString "recBOT")])
+    Language.Rzk.Syntax.Abs.RecOr _ restrictions -> prPrec i 8 (concatD [doc (showString "recOR"), doc (showString "("), prt 0 restrictions, doc (showString ")")])
     Language.Rzk.Syntax.Abs.TypeFun _ paramdecl term -> prPrec i 1 (concatD [prt 0 paramdecl, doc (showString "\8594"), prt 1 term])
     Language.Rzk.Syntax.Abs.TypeSigma _ pattern_ term1 term2 -> prPrec i 1 (concatD [doc (showString "\931"), doc (showString "("), prt 0 pattern_, doc (showString ":"), prt 0 term1, doc (showString ")"), doc (showString ","), prt 1 term2])
     Language.Rzk.Syntax.Abs.TypeSigmaModal _ pattern_ modalcolon term1 term2 -> prPrec i 1 (concatD [doc (showString "\931"), doc (showString "("), prt 0 pattern_, prt 0 modalcolon, prt 0 term1, doc (showString ")"), doc (showString ","), prt 1 term2])
     Language.Rzk.Syntax.Abs.TypeSigmaTuple _ sigmaparam sigmaparams term -> prPrec i 1 (concatD [doc (showString "\931"), doc (showString "("), prt 0 sigmaparam, doc (showString ","), prt 0 sigmaparams, doc (showString ")"), doc (showString ","), prt 1 term])
-    Language.Rzk.Syntax.Abs.TypeUnit _ -> prPrec i 7 (concatD [doc (showString "Unit")])
+    Language.Rzk.Syntax.Abs.TypeUnit _ -> prPrec i 8 (concatD [doc (showString "Unit")])
     Language.Rzk.Syntax.Abs.TypeId _ term1 term2 term3 -> prPrec i 1 (concatD [prt 2 term1, doc (showString "=_{"), prt 0 term2, doc (showString "}"), prt 2 term3])
     Language.Rzk.Syntax.Abs.TypeIdSimple _ term1 term2 -> prPrec i 1 (concatD [prt 2 term1, doc (showString "="), prt 2 term2])
     Language.Rzk.Syntax.Abs.TypeRestricted _ term restrictions -> prPrec i 6 (concatD [prt 6 term, doc (showString "["), prt 0 restrictions, doc (showString "]")])
     Language.Rzk.Syntax.Abs.Let _ bind term1 term2 -> prPrec i 1 (concatD [doc (showString "let"), prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "in"), prt 0 term2])
     Language.Rzk.Syntax.Abs.App _ term1 term2 -> prPrec i 6 (concatD [prt 6 term1, prt 7 term2])
     Language.Rzk.Syntax.Abs.Lambda _ params term -> prPrec i 1 (concatD [doc (showString "\\"), prt 0 params, doc (showString "\8594"), prt 1 term])
-    Language.Rzk.Syntax.Abs.Pair _ term1 term2 -> prPrec i 7 (concatD [doc (showString "("), prt 0 term1, doc (showString ","), prt 0 term2, doc (showString ")")])
-    Language.Rzk.Syntax.Abs.Tuple _ term1 term2 terms -> prPrec i 7 (concatD [doc (showString "("), prt 0 term1, doc (showString ","), prt 0 term2, doc (showString ","), prt 0 terms, doc (showString ")")])
+    Language.Rzk.Syntax.Abs.Pair _ term1 term2 -> prPrec i 8 (concatD [doc (showString "("), prt 0 term1, doc (showString ","), prt 0 term2, doc (showString ")")])
+    Language.Rzk.Syntax.Abs.Tuple _ term1 term2 terms -> prPrec i 8 (concatD [doc (showString "("), prt 0 term1, doc (showString ","), prt 0 term2, doc (showString ","), prt 0 terms, doc (showString ")")])
     Language.Rzk.Syntax.Abs.ModApp _ modality term -> prPrec i 7 (concatD [doc (showString "mod"), prt 0 modality, prt 7 term])
     Language.Rzk.Syntax.Abs.ModType _ modality term -> prPrec i 7 (concatD [prt 0 modality, prt 7 term])
     Language.Rzk.Syntax.Abs.ModExtract _ modcomp term -> prPrec i 6 (concatD [doc (showString "$extract$"), prt 0 modcomp, prt 7 term])
@@ -371,24 +371,26 @@
     Language.Rzk.Syntax.Abs.LetModFramedInto _ modality1 modality2 bind term1 term2 term3 -> prPrec i 1 (concatD [doc (showString "let"), prt 0 modality1, doc (showString "mod"), prt 0 modality2, prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "into"), prt 0 term2, doc (showString "in"), prt 0 term3])
     Language.Rzk.Syntax.Abs.First _ term -> prPrec i 6 (concatD [doc (showString "\960\8321"), prt 7 term])
     Language.Rzk.Syntax.Abs.Second _ term -> prPrec i 6 (concatD [doc (showString "\960\8322"), prt 7 term])
-    Language.Rzk.Syntax.Abs.Unit _ -> prPrec i 7 (concatD [doc (showString "unit")])
-    Language.Rzk.Syntax.Abs.Refl _ -> prPrec i 7 (concatD [doc (showString "refl")])
-    Language.Rzk.Syntax.Abs.ReflTerm _ term -> prPrec i 7 (concatD [doc (showString "refl_{"), prt 0 term, doc (showString "}")])
-    Language.Rzk.Syntax.Abs.ReflTermType _ term1 term2 -> prPrec i 7 (concatD [doc (showString "refl_{"), prt 0 term1, doc (showString ":"), prt 0 term2, doc (showString "}")])
-    Language.Rzk.Syntax.Abs.IdJ _ term1 term2 term3 term4 term5 term6 -> prPrec i 7 (concatD [doc (showString "idJ"), doc (showString "("), prt 0 term1, doc (showString ","), prt 0 term2, doc (showString ","), prt 0 term3, doc (showString ","), prt 0 term4, doc (showString ","), prt 0 term5, doc (showString ","), prt 0 term6, doc (showString ")")])
-    Language.Rzk.Syntax.Abs.Match _ term matchbranchs -> prPrec i 7 (concatD [doc (showString "match"), prt 7 term, doc (showString "("), prt 0 matchbranchs, doc (showString ")")])
-    Language.Rzk.Syntax.Abs.MatchInto _ term1 term2 matchbranchs -> prPrec i 7 (concatD [doc (showString "match"), prt 7 term1, doc (showString "into"), prt 7 term2, doc (showString "("), prt 0 matchbranchs, doc (showString ")")])
-    Language.Rzk.Syntax.Abs.Hole _ holeident -> prPrec i 7 (concatD [prt 0 holeident])
-    Language.Rzk.Syntax.Abs.Var _ varident -> prPrec i 7 (concatD [prt 0 varident])
+    Language.Rzk.Syntax.Abs.Unit _ -> prPrec i 8 (concatD [doc (showString "unit")])
+    Language.Rzk.Syntax.Abs.Refl _ -> prPrec i 8 (concatD [doc (showString "refl")])
+    Language.Rzk.Syntax.Abs.ReflTerm _ term -> prPrec i 8 (concatD [doc (showString "refl_{"), prt 0 term, doc (showString "}")])
+    Language.Rzk.Syntax.Abs.ReflTermType _ term1 term2 -> prPrec i 8 (concatD [doc (showString "refl_{"), prt 0 term1, doc (showString ":"), prt 0 term2, doc (showString "}")])
+    Language.Rzk.Syntax.Abs.IdJ _ term1 term2 term3 term4 term5 term6 -> prPrec i 8 (concatD [doc (showString "idJ"), doc (showString "("), prt 0 term1, doc (showString ","), prt 0 term2, doc (showString ","), prt 0 term3, doc (showString ","), prt 0 term4, doc (showString ","), prt 0 term5, doc (showString ","), prt 0 term6, doc (showString ")")])
+    Language.Rzk.Syntax.Abs.Match _ term matchbranchs -> prPrec i 7 (concatD [doc (showString "match"), prt 8 term, doc (showString "("), prt 0 matchbranchs, doc (showString ")")])
+    Language.Rzk.Syntax.Abs.MatchInto _ term1 term2 matchbranchs -> prPrec i 7 (concatD [doc (showString "match"), prt 8 term1, doc (showString "into"), prt 8 term2, doc (showString "("), prt 0 matchbranchs, doc (showString ")")])
+    Language.Rzk.Syntax.Abs.MatchModal _ modality term matchbranchs -> prPrec i 7 (concatD [doc (showString "match"), prt 0 modality, prt 8 term, doc (showString "("), prt 0 matchbranchs, doc (showString ")")])
+    Language.Rzk.Syntax.Abs.MatchModalInto _ modality term1 term2 matchbranchs -> prPrec i 7 (concatD [doc (showString "match"), prt 0 modality, prt 8 term1, doc (showString "into"), prt 8 term2, doc (showString "("), prt 0 matchbranchs, doc (showString ")")])
+    Language.Rzk.Syntax.Abs.Hole _ holeident -> prPrec i 8 (concatD [prt 0 holeident])
+    Language.Rzk.Syntax.Abs.Var _ varident -> prPrec i 8 (concatD [prt 0 varident])
     Language.Rzk.Syntax.Abs.TypeAsc _ term1 term2 -> prPrec i 0 (concatD [prt 2 term1, doc (showString "as"), prt 1 term2])
-    Language.Rzk.Syntax.Abs.ASCII_CubeUnitStar _ -> prPrec i 7 (concatD [doc (showString "*_1")])
-    Language.Rzk.Syntax.Abs.ASCII_Cube2_0 _ -> prPrec i 7 (concatD [doc (showString "0_2")])
-    Language.Rzk.Syntax.Abs.ASCII_Cube2_1 _ -> prPrec i 7 (concatD [doc (showString "1_2")])
-    Language.Rzk.Syntax.Abs.ASCII_CubeI _ -> prPrec i 7 (concatD [doc (showString "II")])
-    Language.Rzk.Syntax.Abs.ASCII_CubeI_0 _ -> prPrec i 7 (concatD [doc (showString "0_I")])
-    Language.Rzk.Syntax.Abs.ASCII_CubeI_1 _ -> prPrec i 7 (concatD [doc (showString "1_I")])
-    Language.Rzk.Syntax.Abs.ASCII_TopeTop _ -> prPrec i 7 (concatD [doc (showString "TOP")])
-    Language.Rzk.Syntax.Abs.ASCII_TopeBottom _ -> prPrec i 7 (concatD [doc (showString "BOT")])
+    Language.Rzk.Syntax.Abs.ASCII_CubeUnitStar _ -> prPrec i 8 (concatD [doc (showString "*_1")])
+    Language.Rzk.Syntax.Abs.ASCII_Cube2_0 _ -> prPrec i 8 (concatD [doc (showString "0_2")])
+    Language.Rzk.Syntax.Abs.ASCII_Cube2_1 _ -> prPrec i 8 (concatD [doc (showString "1_2")])
+    Language.Rzk.Syntax.Abs.ASCII_CubeI _ -> prPrec i 8 (concatD [doc (showString "II")])
+    Language.Rzk.Syntax.Abs.ASCII_CubeI_0 _ -> prPrec i 8 (concatD [doc (showString "0_I")])
+    Language.Rzk.Syntax.Abs.ASCII_CubeI_1 _ -> prPrec i 8 (concatD [doc (showString "1_I")])
+    Language.Rzk.Syntax.Abs.ASCII_TopeTop _ -> prPrec i 8 (concatD [doc (showString "TOP")])
+    Language.Rzk.Syntax.Abs.ASCII_TopeBottom _ -> prPrec i 8 (concatD [doc (showString "BOT")])
     Language.Rzk.Syntax.Abs.ASCII_TopeEQ _ term1 term2 -> prPrec i 4 (concatD [prt 5 term1, doc (showString "==="), prt 5 term2])
     Language.Rzk.Syntax.Abs.ASCII_TopeLEQ _ term1 term2 -> prPrec i 4 (concatD [prt 5 term1, doc (showString "<="), prt 5 term2])
     Language.Rzk.Syntax.Abs.ASCII_TopeAnd _ term1 term2 -> prPrec i 3 (concatD [prt 4 term1, doc (showString "/\\"), prt 3 term2])
diff --git a/src/Language/Rzk/VSCode/ReferenceIndex.hs b/src/Language/Rzk/VSCode/ReferenceIndex.hs
--- a/src/Language/Rzk/VSCode/ReferenceIndex.hs
+++ b/src/Language/Rzk/VSCode/ReferenceIndex.hs
@@ -453,6 +453,10 @@
   Rzk.Match _ scrut bs          -> goTerm file env scrut ++ concatMap (matchBranchScope file env) bs
   Rzk.MatchInto _ scrut motive bs ->
     goTerm file env scrut ++ goTerm file env motive ++ concatMap (matchBranchScope file env) bs
+  Rzk.MatchModal _ _ scrut bs ->
+    goTerm file env scrut ++ concatMap (matchBranchScope file env) bs
+  Rzk.MatchModalInto _ _ scrut motive bs ->
+    goTerm file env scrut ++ goTerm file env motive ++ concatMap (matchBranchScope file env) bs
   Rzk.TypeAsc _ a b             -> goTerm file env a ++ goTerm file env b
 
   Rzk.Universe{}           -> []
diff --git a/src/Language/Rzk/VSCode/Tokenize.hs b/src/Language/Rzk/VSCode/Tokenize.hs
--- a/src/Language/Rzk/VSCode/Tokenize.hs
+++ b/src/Language/Rzk/VSCode/Tokenize.hs
@@ -313,6 +313,15 @@
         [ go scrut
         , go motive
         , foldMap tokenizeMatchBranch branches ]
+      MatchModal _loc md scrut branches -> concat
+        [ tokenizeModality md
+        , go scrut
+        , foldMap tokenizeMatchBranch branches ]
+      MatchModalInto _loc md scrut motive branches -> concat
+        [ tokenizeModality md
+        , go scrut
+        , go motive
+        , foldMap tokenizeMatchBranch branches ]
 
       ModType _loc md type_ -> concat [tokenizeModality md, go type_]
       ModApp _loc md te -> concat [tokenizeModality md, go te]
diff --git a/src/Rzk/Diagnostic.hs b/src/Rzk/Diagnostic.hs
--- a/src/Rzk/Diagnostic.hs
+++ b/src/Rzk/Diagnostic.hs
@@ -7,14 +7,15 @@
 -- pre-formatted string. The core library produces these; the LSP maps them to
 -- LSP diagnostics, and the CLI can emit them as JSON (@rzk typecheck --json@).
 --
--- Locations are line-level: rzk currently retains only file + line at the point
--- an error is produced (the column is discarded, and core terms keep no
--- per-node position), so diagnostics point at the enclosing command's line.
+-- Locations give the source node's line and column when available, otherwise
+-- the nearest enclosing position retained by the checker.
 module Rzk.Diagnostic where
 
+import           Data.List                (intercalate)
 import           Data.Aeson           (ToJSON (..), Value (String), object,
                                        (.=))
 
+import           Language.Rzk.Foil.Names (TModality (Id))
 import           Rzk.TypeCheck
 
 -- | Diagnostic severity, mirroring the usual LSP levels.
@@ -35,7 +36,7 @@
 --
 -- > { "severity": "error" | "warning" | "information" | "hint"
 -- > , "code":     <string>           -- "hole", or a TypeError tag (e.g. "TypeErrorUnify")
--- > , "location": { "file": <string|null>, "line": <int|null> } | null
+-- > , "location": { "file": <string|null>, "line": <int|null>, "column": <int|null> } | null
 -- > , "message":  <string>           -- human-facing prose (the CLI/LSP display text)
 -- > , "hole":     <HoleData> | null  -- present only for hole diagnostics (see 'HoleData')
 -- > }
@@ -46,7 +47,7 @@
 data Diagnostic = Diagnostic
   { diagnosticSeverity :: Severity
   , diagnosticCode     :: String            -- ^ stable category, e.g. @\"TypeErrorUnify\"@ or @\"hole\"@
-  , diagnosticLocation :: Maybe LocationInfo -- ^ file + line (line-level granularity)
+  , diagnosticLocation :: Maybe LocationInfo -- ^ file, line and column when available
   , diagnosticMessage  :: String
   , diagnosticHole     :: Maybe HoleData     -- ^ structured hole payload ('Nothing' for type errors)
   } deriving (Eq, Show)
@@ -61,11 +62,18 @@
 -- > { "name":     <string|null>                 -- the ?name, if the hole was named
 -- > , "goal":     <string>                       -- the expected type (the goal)
 -- > , "shape":    { "binder": <string>, "tope": <string> } | null
--- > , "termVars": [ { "name": <string>, "type": <string> }, ... ]
--- > , "cubeVars": [ { "name": <string>, "type": <string> }, ... ]
--- > , "topes":    [ <string>, ... ]              -- local tope assumptions (excludes ⊤)
+-- > , "termVars": [ <entry>, ... ]
+-- > , "cubeVars": [ <entry>, ... ]
+-- > , "topes":    [ <string>, ... ]              -- tope assumptions in force (excludes ⊤)
+-- > , "topeInfo": [ { "tope": <string>, <modal> }, ... ]  -- all tope assumptions
 -- > }
 --
+-- where an @<entry>@ is @{ "name": <string>, "type": <string>, <modal> }@ and
+-- @<modal>@ is @"modality": <string>, "locks": <string>, "accessible": <bool>@:
+-- the declared modality, the locks accumulated since, and whether the entry
+-- can be used at the hole. An inaccessible tope is not in force, so it appears
+-- in @topeInfo@ but not in @topes@.
+--
 -- Notes for consumers:
 --
 -- * @shape@ is non-null only for a shape-restricted /argument/ goal, where the
@@ -78,11 +86,28 @@
   { holeDataName     :: Maybe String           -- ^ the @?name@, if named
   , holeDataGoal     :: String                 -- ^ the goal (expected type)
   , holeDataShape    :: Maybe (String, String) -- ^ (binder, tope) for a shape-argument goal
-  , holeDataTermVars :: [(String, String)]     -- ^ local hypotheses: (name, type)
-  , holeDataCubeVars :: [(String, String)]     -- ^ local cube variables: (name, type)
-  , holeDataTopes    :: [String]               -- ^ local tope assumptions (excluding ⊤)
+  , holeDataTermVars :: [HoleDataEntry]
+  , holeDataCubeVars :: [HoleDataEntry]
+  , holeDataTopes    :: [HoleDataTope]
   } deriving (Eq, Show)
 
+data HoleDataEntry = HoleDataEntry
+  { holeDataEntryName :: String
+  , holeDataEntryType :: String
+  , holeDataEntryMode :: HoleModalData
+  } deriving (Eq, Show)
+
+data HoleDataTope = HoleDataTope
+  { holeDataTopeValue :: String
+  , holeDataTopeMode  :: HoleModalData
+  } deriving (Eq, Show)
+
+data HoleModalData = HoleModalData
+  { holeModalModality   :: String
+  , holeModalLocks      :: String
+  , holeModalAccessible :: Bool
+  } deriving (Eq, Show)
+
 instance ToJSON Severity where
   toJSON = String . \case
     SeverityError       -> "error"
@@ -115,17 +140,32 @@
     , "shape"    .= fmap shapeToJSON holeDataShape
     , "termVars" .= map entryToJSON holeDataTermVars
     , "cubeVars" .= map entryToJSON holeDataCubeVars
-    , "topes"    .= holeDataTopes
+    , "topes"    .= [ holeDataTopeValue t | t <- holeDataTopes
+                    , holeModalAccessible (holeDataTopeMode t) ]
+    , "topeInfo" .= map topeToJSON holeDataTopes
     ]
     where
       shapeToJSON (binder, tope) = object [ "binder" .= binder, "tope" .= tope ]
-      entryToJSON (name, ty)     = object [ "name" .= name, "type" .= ty ]
+      entryToJSON HoleDataEntry{..} = object
+        [ "name" .= holeDataEntryName, "type" .= holeDataEntryType
+        , "modality" .= holeModalModality holeDataEntryMode
+        , "locks" .= holeModalLocks holeDataEntryMode
+        , "accessible" .= holeModalAccessible holeDataEntryMode
+        ]
+      topeToJSON HoleDataTope{..} = object
+        [ "tope" .= holeDataTopeValue
+        , "modality" .= holeModalModality holeDataTopeMode
+        , "locks" .= holeModalLocks holeDataTopeMode
+        , "accessible" .= holeModalAccessible holeDataTopeMode
+        ]
 
 -- | A stable tag for a type error, used as its diagnostic code. Independent of
 -- the variable type, so it survives the scoped-error unfolding.
 typeErrorTag :: TypeError n -> String
 typeErrorTag = \case
   TypeErrorOther{}                 -> "TypeErrorOther"
+  TypeErrorRSTT{}                  -> "TypeErrorRSTT"
+  TypeErrorSchematic{}             -> "TypeErrorSchematic"
   TypeErrorUnify{}                 -> "TypeErrorUnify"
   TypeErrorUnifyTerms{}            -> "TypeErrorUnifyTerms"
   TypeErrorNotPair{}               -> "TypeErrorNotPair"
@@ -213,6 +253,80 @@
   , diagnosticHole     = Nothing
   }
 
+diagnoseCheckWarning (RSTTScopeWarning extension feature loc) = Diagnostic
+  { diagnosticSeverity = SeverityWarning
+  , diagnosticCode = case extension of
+      RSTTModal -> "RSTTModalWarning"
+      RSTTInterval -> "RSTTIntervalWarning"
+      RSTTInductive -> "RSTTInductiveWarning"
+      RSTTShapeDependency -> "RSTTShapeDependencyWarning"
+      RSTTUnsupported -> "RSTTSyntaxWarning"
+      RSTTSchematic -> "RSTTSchematicWarning"
+  , diagnosticLocation = loc
+  , diagnosticMessage = feature <> " is outside RSTT"
+  , diagnosticHole = Nothing
+  }
+diagnoseCheckWarning (RSTTIncompleteWarning reason loc) = Diagnostic
+  { diagnosticSeverity = SeverityWarning
+  , diagnosticCode = "RSTTIncompleteWarning"
+  , diagnosticLocation = loc
+  , diagnosticMessage = reason
+  , diagnosticHole = Nothing
+  }
+diagnoseCheckWarning (RSTTHoleWarning loc) = Diagnostic
+  { diagnosticSeverity = SeverityWarning
+  , diagnosticCode = "RSTTHoleWarning"
+  , diagnosticLocation = loc
+  , diagnosticMessage = "RSTT fragment check has an unfinished obligation"
+  , diagnosticHole = Nothing
+  }
+diagnoseCheckWarning (OverhangWarning what tope topes loc) = Diagnostic
+  { diagnosticSeverity = SeverityWarning
+  , diagnosticCode     = "OverhangWarning"
+  , diagnosticLocation = loc
+  , diagnosticMessage  =
+      what <> " overhangs the local tope context: " <> tope
+        <> " does not entail " <> intercalate " ∧ " topes
+  , diagnosticHole     = Nothing
+  }
+
+diagnoseCheckWarning (TopeFamilyDomainWarning family domain loc) = Diagnostic
+  { diagnosticSeverity = SeverityWarning
+  , diagnosticCode     = "TopeFamilyDomainWarning"
+  , diagnosticLocation = loc
+  , diagnosticMessage  =
+      "tope family " <> family
+        <> " is not included in its declared domain " <> domain
+        <> "; it is read as its intersection with the domain"
+  , diagnosticHole     = Nothing
+  }
+
+diagnoseCheckWarning (FreeStandingRestrictionWarning defName ty use loc) = Diagnostic
+  { diagnosticSeverity = SeverityWarning
+  , diagnosticCode     = "FreeStandingRestrictionWarning"
+  , diagnosticLocation = loc
+  , diagnosticMessage  =
+      "free-standing restriction assumed at " <> place <> ": " <> ty
+        <> " (in " <> show defName <> ")"
+  , diagnosticHole     = Nothing
+  }
+  where
+    place = case use of
+      UseBinder    -> "a binder"
+      UseMotive    -> "an eliminator motive"
+      UseData      -> "a type passed as data"
+      UseIdentity  -> "the type of an identity type"
+      UseConcluded -> "a concluded type, off the spine of codomains"
+diagnoseCheckWarning (MetaBinderWarning defName varName ty loc) = Diagnostic
+  { diagnosticSeverity = SeverityWarning
+  , diagnosticCode     = "MetaBinderWarning"
+  , diagnosticLocation = loc
+  , diagnosticMessage  =
+      "schematic binder inside a term: " <> show varName <> " : " <> ty
+        <> " is bound below the parameter prefix (in " <> show defName <> ")"
+  , diagnosticHole     = Nothing
+  }
+
 -- | A checker warning as a human-readable line (the CLI).
 ppCheckWarning :: CheckWarning -> String
 ppCheckWarning = ("Warning: " <>) . diagnosticMessage . diagnoseCheckWarning
@@ -248,10 +362,23 @@
   , holeDataShape    = fmap (\(s, tope) -> (show s, show tope)) holeGoalShape
   , holeDataTermVars = map entry holeTermVars
   , holeDataCubeVars = map entry holeCubeVars
-  , holeDataTopes    = map show holeTopes
+  , holeDataTopes    = map topeEntry holeTopes
   }
   where
-    entry e = (show (holeEntryName e), show (holeEntryType e))
+    entry e = HoleDataEntry
+      { holeDataEntryName = show (holeEntryName e)
+      , holeDataEntryType = show (holeEntryType e)
+      , holeDataEntryMode = modalData (holeEntryMode e)
+      }
+    topeEntry e = HoleDataTope
+      { holeDataTopeValue = show (holeTopeValue e)
+      , holeDataTopeMode = modalData (holeTopeMode e)
+      }
+    modalData mode = HoleModalData
+      { holeModalModality = ppModality (holeItemModality mode)
+      , holeModalLocks = ppModality (holeItemLocks mode)
+      , holeModalAccessible = holeItemAccessible mode
+      }
 
 -- | Render a hole's goal and local context (the structured query) for display,
 -- separating term variables, cube variables, and tope assumptions.
@@ -266,7 +393,10 @@
   <> section "cube variables" holeCubeVars
   <> (if null holeTopes
         then []
-        else "  tope context:" : [ "    " <> show t | t <- holeTopes ])
+        else "  tope context:"
+          : [ "    " <> availability (holeItemAccessible (holeTopeMode entry))
+                <> show (holeTopeValue entry) <> modalSuffix (holeTopeMode entry)
+            | entry <- holeTopes ])
   where
     -- a shape goal reads (binder : cube | tope); otherwise just the type
     goalStr = case holeGoalShape of
@@ -275,8 +405,17 @@
     section title entries
       | null entries = []
       | otherwise = ("  " <> title <> ":")
-          : [ "    " <> show (holeEntryName e) <> " : " <> show (holeEntryType e)
+          : [ "    " <> availability (holeItemAccessible (holeEntryMode e))
+                <> show (holeEntryName e) <> " : " <> show (holeEntryType e)
+                <> modalSuffix (holeEntryMode e)
             | e <- entries ]
+    availability True  = ""
+    availability False = "× "
+    modalSuffix mode
+      | holeItemModality mode == Id && holeItemLocks mode == Id = ""
+      | otherwise =
+          "  [modality: " <> ppModality (holeItemModality mode)
+            <> ", locks: " <> ppModality (holeItemLocks mode) <> "]"
 
 ppLocationInfo :: LocationInfo -> String
 ppLocationInfo (LocationInfo mpath mline mcol) =
diff --git a/src/Rzk/TypeCheck/Context.hs b/src/Rzk/TypeCheck/Context.hs
--- a/src/Rzk/TypeCheck/Context.hs
+++ b/src/Rzk/TypeCheck/Context.hs
@@ -9,32 +9,14 @@
 {-# LANGUAGE RecordWildCards     #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 
--- | The typing context on free-foil.
---
--- The successor of @Rzk.TypeCheck@'s @Context var@. Two things change, and they
--- are the point of the migration.
---
--- [A variable is a name, and so is a top-level entry.] A free-foil term refers to
--- a variable by 'Foil.Name' (an @Int@), and by nothing else: there is no way to
--- put a 'VarIdent' inside a term. So a top-level definition is a name too, bound
--- in the outermost scope with no binder above it, and the hypotheses — global and
--- local alike — are one 'Foil.NameMap', looked up in constant time. The old
--- context was an association list keyed by a @var@ whose equality walked an
--- @S@-chain; @lookupVarInfo@ alone was 11.5% of the checker's time. The surface
--- name of an entry is resolved through 'ctxNamed'.
---
--- This also gives sections their natural shape. A @#assume@d assumption is an
--- ordinary binder, so the definitions of a section are checked in its scope, and
--- closing the section abstracts the assumption by pairing its binder with the
--- body — no rewrite of the elaborated terms (see @Rzk.TypeCheck.Decl@).
+-- | The typing context for the free-foil core. Local hypotheses and top-level
+-- entries are keyed by 'Foil.Name'; separate fields retain surface identifiers
+-- and binding order for elaboration and display.
 --
--- [Entering a binder rebuilds nothing.] 'enterBinder' extends the scope and
--- sinks the rest of the context by coercion, so it costs O(1) rather than a walk
--- of the context. The old @enterScopeContext@ mapped @S \<$\>@ over the whole
--- context, rebuilding every elaborated term it held; the heap profile showed
--- those forced copies retaining most of the live heap, and @GlobalScopeInfo@ /
--- @globalEmbed@ (PR #277) exist only to keep that shift off the ~1500 top-level
--- entries. All of that machinery is gone.
+-- Entering a binder carries scoped terms into the extended scope by coercion
+-- and records the new entry. Section assumptions are ordinary bindings;
+-- closing a section abstracts dependencies and rewrites uses of the resulting
+-- parameterised definitions (see "Rzk.TypeCheck.Decl").
 module Rzk.TypeCheck.Context where
 
 import           Control.Monad.Foil          (DExt, Distinct, NameBinder,
@@ -90,9 +72,14 @@
   Nothing          -> loc
   Just (line, col) -> loc { locationLine = Just line, locationColumn = Just col }
 
+-- | Schematic validation is cached separately from ordinary typechecking.
+data SchematicStatus = SchematicUnchecked | SchematicChecked | SchematicRejected
+  deriving (Eq)
+
 -- | What is known about a hypothesis, local or top-level.
 data VarInfo n = VarInfo
-  { varType                :: TermT n
+  { varSchematicStatus     :: SchematicStatus
+  , varType                :: TermT n
   , varValue               :: Maybe (TermT n)
   , varModality            :: TModality
   , varModAccum            :: TModality
@@ -137,7 +124,7 @@
     -- after the parameters, and the 0-based positions of its recursive
     -- fields (each contributes an induction hypothesis right after the
     -- field in the method)
-  | DataElimKind Int Int ElimKind
+  | DataElimKind TModality Int Int ElimKind
     -- ^ an eliminator: the number of methods (one per constructor, in
     -- declaration order) and the number of indices of the family; the
     -- spine is parameters, motive, methods, indices, scrutinee
@@ -263,18 +250,36 @@
   , ctxHintLemmas          :: [VarIdent]
     -- ^ Named top-level definitions a hole's candidate list may draw on, beyond
     -- the local hypotheses (see 'withHintLemmas').
+  , ctxRSTTSafe            :: RSTTSafeMode
+    -- ^ Off by default: the fragment checks multiply the checking time of a
+    -- large development several times over. Set with
+    -- @#set-option "rstt-safe" = "warn" | "error" | "off"@ or @--rstt-safe@.
+  , ctxRSTTSafeOverride    :: Maybe RSTTSafeMode
+    -- ^ A CLI selection applies throughout the run, despite source options.
   , ctxWarnOverhang        :: Bool
-    -- ^ When 'True', a restriction face or @recOR@ guard that overhangs the
-    -- local tope context (is not entailed by it, while still overlapping it)
-    -- is reported with a non-fatal hint. Off by default: deciding the
-    -- overhang costs a solver entailment per face and guard, and the overhang
-    -- is legitimate (see @happy-restrict-face-not-contained@). Enabled with
-    -- @#set-option "warn-overhang" "yes"@. The /disjointness/ error next to
-    -- it is unaffected: a vacuous face is always rejected.
+    -- ^ Warn when a face or guard overlaps but does not entail the local tope
+    -- context. Off by default; disjoint faces remain errors.
   , ctxMetaPrefixSensitivity :: MetaPrefixSensitivity
     -- ^ How sensitively the meta-parameter layer check classifies use
     -- positions (see "Rzk.TypeCheck.MetaPrefix"). Strict by default; set
     -- with @#set-option "warn-meta-prefix" = "off" | "structural" | "strict"@.
+  , ctxWarnTopeFamilyDomain :: Bool
+    -- ^ When 'True' (the default), a tope family checked against a domain
+    -- type that it is not included in is reported with a warning: the
+    -- checker reads it as its intersection with the domain (see the λ case of
+    -- 'typecheck'), so the family checked differs from the family written.
+    -- Costs nothing beyond the entailment that decides the intersection.
+    -- Disabled with @#set-option "warn-tope-family-domain" = "no"@.
+  , ctxStandaloneWarnFreeStandingRestriction :: Bool
+    -- ^ Standalone restriction check, disabled by default.
+    -- RSTT-safe mode enables the check regardless of this setting.
+  , ctxStandaloneWarnShapeDependency :: Bool
+    -- ^ Standalone shape-dependency check, disabled by default: it is the
+    -- costly part of the fragment checks.
+    -- RSTT-safe mode enables the check regardless of this setting.
+  , ctxStandaloneWarnMetaBinder :: Bool
+    -- ^ Standalone schematic-binder check, disabled by default.
+    -- RSTT-safe mode enables the check regardless of this setting.
   }
 
 -- | The sensitivity levels of the meta-parameter layer check.
@@ -319,8 +324,14 @@
   , ctxHolesAreErrors = True
   , ctxDeferHoleMismatches = True
   , ctxHintLemmas = []
+  , ctxRSTTSafe = RSTTSafeOff
+  , ctxRSTTSafeOverride = Nothing
   , ctxWarnOverhang = False
   , ctxMetaPrefixSensitivity = MetaPrefixStrict
+  , ctxWarnTopeFamilyDomain = True
+  , ctxStandaloneWarnFreeStandingRestriction = False
+  , ctxStandaloneWarnShapeDependency = False
+  , ctxStandaloneWarnMetaBinder = False
   }
 
 -- | The tope context of an empty context: @⊤@ holds under every modality.
@@ -530,6 +541,10 @@
 isAccessible :: ModalTope n -> Bool
 isAccessible mt = coe (tModVar mt) (tModAccum mt)
 
+isVarAccessible :: VarInfo n -> Bool
+isVarAccessible info =
+  varIsTopLevel info || coe (varModality info) (varModAccum info)
+
 filterAccessible :: [ModalTope n] -> [ModalTope n]
 filterAccessible = filter isAccessible
 
@@ -562,3 +577,33 @@
 -- than being deferred (see 'ctxDeferHoleMismatches').
 structuralHoleUnify :: Context n -> Context n
 structuralHoleUnify ctx = ctx { ctxDeferHoleMismatches = False }
+
+-- | Policy for reporting RSTT fragment violations.
+data RSTTSafeMode = RSTTSafeOff | RSTTSafeWarn | RSTTSafeError
+  deriving (Eq, Show, Read)
+
+rsttSafeMode :: Context n -> RSTTSafeMode
+rsttSafeMode ctx = case ctxRSTTSafeOverride ctx of
+  Just mode -> mode
+  Nothing   -> ctxRSTTSafe ctx
+
+rsttSafeEnabled :: Context n -> Bool
+rsttSafeEnabled ctx = rsttSafeMode ctx /= RSTTSafeOff
+
+-- | Whether to check free-standing restrictions, including RSTT-safe requirements.
+ctxWarnFreeStandingRestriction :: Context n -> Bool
+ctxWarnFreeStandingRestriction ctx =
+  rsttSafeEnabled ctx || ctxStandaloneWarnFreeStandingRestriction ctx
+
+-- | Whether to check shape dependencies, including RSTT-safe requirements.
+ctxWarnShapeDependency :: Context n -> Bool
+ctxWarnShapeDependency ctx = rsttSafeEnabled ctx || ctxStandaloneWarnShapeDependency ctx
+
+-- | Whether to check schematic binders, including RSTT-safe requirements.
+ctxWarnMetaBinder :: Context n -> Bool
+ctxWarnMetaBinder ctx = rsttSafeEnabled ctx || ctxStandaloneWarnMetaBinder ctx
+
+effectiveMetaPrefixSensitivity :: Context n -> MetaPrefixSensitivity
+effectiveMetaPrefixSensitivity ctx
+  | rsttSafeEnabled ctx = MetaPrefixStrict
+  | otherwise = ctxMetaPrefixSensitivity ctx
diff --git a/src/Rzk/TypeCheck/Decl.hs b/src/Rzk/TypeCheck/Decl.hs
--- a/src/Rzk/TypeCheck/Decl.hs
+++ b/src/Rzk/TypeCheck/Decl.hs
@@ -29,6 +29,8 @@
 import           Data.Data                 (Data, cast, gmapQ)
 import           Control.Monad.Reader      (ask, asks, local)
 import           Data.List                 (intercalate)
+import qualified Data.IntMap.Strict as IntMap
+import qualified Data.IntSet              as IntSet
 import qualified Data.Map                  as Map
 import qualified Data.Text                 as T
 import           Debug.Trace               (trace)
@@ -50,6 +52,8 @@
 import           Rzk.TypeCheck.Error
 import           Rzk.TypeCheck.Eval
 import           Rzk.TypeCheck.Judgements
+import qualified Rzk.TypeCheck.Fragment.RSTT as RSTT
+import           Rzk.TypeCheck.Schematic (recordSchematicDeclaration)
 import           Rzk.TypeCheck.MetaPrefix
 import           Rzk.TypeCheck.Monad
 import           Rzk.TypeCheck.Render
@@ -127,6 +131,10 @@
   checkTopLevelDuplicate name
   metaPrefix <- metaPrefixOf ty
   recordMetaPrefixUses name ty mval
+  -- Postulates and failed definitions supply assumptions, so require ext-style types.
+  RSTT.recordFragmentUses name ty mval
+    (isAssumption || maybe True (const False) mval)
+  schematicStatus <- recordSchematicDeclaration name ty mval
   ctx <- ask
   Foil.withFresh (ctxScope ctx) $ \binder -> do
     let info = VarInfo
@@ -140,6 +148,7 @@
           , varDeclaredAssumptions = usedVars
           , varLocation = ctxLocation ctx
           , varDataRole = mrole
+          , varSchematicStatus = schematicStatus
           , varMetaPrefix = metaPrefix
           }
         ctx' = recordInSection (Foil.nameOf binder) (enterBinder binder info [] ctx)
@@ -200,6 +209,8 @@
       tolerateUnused = lenient && sectionHasHole
 
   (kept0, errs') <- collectSectionDecls tolerateUnused errs [] infos
+  -- Section abstraction changes dependency signatures and applications.
+  modifyLog $ \log -> log { logSchematicCache = IntSet.empty, logSchematicObjectFamilies = IntMap.empty }
 
   -- Abstracting over the section's assumptions rewrote the entries' types,
   -- which can change their meta-parameter prefix (an assumption such as
@@ -295,16 +306,15 @@
   | otherwise =
       collectSectionDecls tolerate errs (entry : recent) rest
 
--- | Abstract one assumption out of the definitions that come after it.
---
--- A definition that mentions the assumption gains it as an explicit parameter, and
--- every later definition that mentions /that/ definition is rewritten to apply it
--- to the assumption. A definition that mentions it without declaring it in its
--- @uses@ clause is an implicit assumption, and an error.
 -- | Whether an assumption was taken up by (abstracted into) any definition
 -- that followed it in its section.
 data AssumptionUse = AssumptionUsed | AssumptionUnused
 
+-- | Abstract an assumption out of the definitions that depend on it, and
+-- rewrite later uses of those definitions to supply the assumption.
+-- Dependencies present only through other names' types need @uses@;
+-- explicit occurrences in the written type or body need no such clause.
+-- Datatype formers abstracted with their family are exempt from this check.
 makeAssumptionExplicit
   :: forall n. Distinct n
   => (Foil.Name n, VarInfo n)
@@ -372,7 +382,8 @@
   :: Distinct n
   => Foil.Scope n -> Foil.Name n -> VarInfo n -> VarInfo n -> VarInfo n
 abstractOver scope a aInfo info = info
-  { varType = newType
+  { varSchematicStatus = SchematicUnchecked
+  , varType = newType
   , varValue = fmap abstractValue (varValue info)
   , varModality = Id
   , varModAccum = Id
@@ -400,7 +411,8 @@
 applyToAssumption scope a (defName, defInfo) info
   | varIsAssumption info = info
   | otherwise = info
-      { varType = rewrite (varType info)
+      { varSchematicStatus = SchematicUnchecked
+      , varType = rewrite (varType info)
       , varValue = rewrite <$> varValue info
       }
   where
@@ -433,8 +445,12 @@
   "no"  -> localHideTerm False
   _ -> const $
     issueTypeError $ TypeErrorOther "unknown value for \"render-hide-term\" (use \"yes\" or \"no\")"
--- The overhang hint costs a solver entailment per restriction face and recOR
--- guard, so it is off by default and opted into per module (or scope).
+setOption "rstt-safe" = \case
+  "warn" -> local $ \ctx -> ctx { ctxRSTTSafe = RSTTSafeWarn }
+  "error" -> local $ \ctx -> ctx { ctxRSTTSafe = RSTTSafeError }
+  "off" -> local $ \ctx -> ctx { ctxRSTTSafe = RSTTSafeOff }
+  _ -> const $ issueTypeError $ TypeErrorOther "unknown rstt-safe mode (use warn, error, or off)"
+-- Opt-in: overhang checking adds a solver query per face or guard.
 setOption "warn-overhang" = \case
   "yes" -> localWarnOverhang True
   "no"  -> localWarnOverhang False
@@ -448,6 +464,29 @@
   "strict"     -> localMetaPrefixSensitivity MetaPrefixStrict
   _ -> const $
     issueTypeError $ TypeErrorOther "unknown value for \"warn-meta-prefix\" (use \"off\", \"structural\", or \"strict\")"
+-- A tope family not included in its declared domain is read as the
+-- intersection with the domain; the warning says so. On by default.
+setOption "warn-tope-family-domain" = \case
+  "yes" -> localWarnTopeFamilyDomain True
+  "no"  -> localWarnTopeFamilyDomain False
+  _ -> const $
+    issueTypeError $ TypeErrorOther "unknown value for \"warn-tope-family-domain\" (use \"yes\" or \"no\")"
+-- Standalone fragment settings; active safe mode enables these checks.
+setOption "warn-free-standing-restriction" = \case
+  "yes" -> localWarnFreeStandingRestriction True
+  "no"  -> localWarnFreeStandingRestriction False
+  _ -> const $
+    issueTypeError $ TypeErrorOther "unknown value for \"warn-free-standing-restriction\" (use \"yes\" or \"no\")"
+setOption "warn-shape-dependency" = \case
+  "yes" -> localWarnShapeDependency True
+  "no"  -> localWarnShapeDependency False
+  _ -> const $
+    issueTypeError $ TypeErrorOther "unknown value for \"warn-shape-dependency\" (use \"yes\" or \"no\")"
+setOption "warn-meta-binder" = \case
+  "yes" -> localWarnMetaBinder True
+  "no"  -> localWarnMetaBinder False
+  _ -> const $
+    issueTypeError $ TypeErrorOther "unknown value for \"warn-meta-binder\" (use \"yes\" or \"no\")"
 setOption optionName = const $ const $
   issueTypeError $ TypeErrorOther ("unknown option " <> show optionName)
 
@@ -455,9 +494,18 @@
 unsetOption "verbosity" = localVerbosity (ctxVerbosity emptyContext)
 unsetOption "render" = localRenderBackend (ctxRenderBackend emptyContext)
 unsetOption "render-hide-term" = localHideTerm (ctxRenderHideTerm emptyContext)
+unsetOption "rstt-safe" = local $ \ctx -> ctx { ctxRSTTSafe = ctxRSTTSafe emptyContext }
 unsetOption "warn-overhang" = localWarnOverhang (ctxWarnOverhang emptyContext)
 unsetOption "warn-meta-prefix" =
   localMetaPrefixSensitivity (ctxMetaPrefixSensitivity emptyContext)
+unsetOption "warn-tope-family-domain" =
+  localWarnTopeFamilyDomain (ctxWarnTopeFamilyDomain emptyContext)
+unsetOption "warn-free-standing-restriction" =
+  localWarnFreeStandingRestriction (ctxStandaloneWarnFreeStandingRestriction emptyContext)
+unsetOption "warn-shape-dependency" =
+  localWarnShapeDependency (ctxStandaloneWarnShapeDependency emptyContext)
+unsetOption "warn-meta-binder" =
+  localWarnMetaBinder (ctxStandaloneWarnMetaBinder emptyContext)
 unsetOption optionName = const $
   issueTypeError $ TypeErrorOther ("unknown option " <> show optionName)
 
@@ -488,8 +536,8 @@
 -- terms by hand.
 --
 -- The declaration grammar already covers the later stages; this checker
--- rejects what it does not support (cube/shape and modal constructor
--- fields, function-typed recursive fields).
+-- rejects what it does not support (cube and shape parameters and indices,
+-- modal type fields, function-typed recursive fields).
 
 -- | The index telescope of the sort. The sort must be @U@ (no indices) or a
 -- Π-telescope of plain types ending in @U@.
@@ -514,6 +562,74 @@
       p -> issueTypeError $ TypeErrorOther $
         "an index of a #data sort must be a plain type, got " <> Rzk.printTree p
 
+-- | The layer rule for the sort, on the elaborated form: every parameter and
+-- index of a @#data@ must be a type. A cube point @(t : I)@ and a shape
+-- point, in either spelling — named @(t : Φ)@ or inline @(t : I | φ)@ — are
+-- rejected.
+--
+-- The surface checks in 'dataParamVars' and 'dataSortIndices' reject the
+-- inline spelling only, because the other two are not recognisable
+-- syntactically: @(t : Φ)@ looks exactly like a type-valued binder until @Φ@
+-- is resolved. This check therefore walks the elaborated Π-telescope of the
+-- sort, where a named shape has become the restricted binder @(t : I | Φ t)@
+-- and a cube domain is recognisable by its sort, so the rule does not depend
+-- on the spelling. The cube and tope /universes/ pass: a parameter of type
+-- @CUBE@ or @I → TOPE@ ranges over cubes or shapes themselves, not over
+-- their points, and the generic realisation
+-- @#data Shape (I : CUBE) (phi : I → TOPE)@ depends on both.
+--
+-- The rule per position ('DomainKind' has the fine classification):
+-- /parameters/ may be types, @CUBE@, @TOPE@, or plain tope families —
+-- exactly the kinds of the meta-theoretic parameter layer of the Rzk paper
+-- (a bare tope @(phi : TOPE)@ means the family @(phi : 1 → TOPE)@), which the
+-- generic realisation @#data Shape (I : CUBE) (phi : I → TOPE)@ depends
+-- on; /indices/ must be types, full stop. A family indexed by the cube
+-- universe or by tope families is internal quantification over the
+-- cube\/tope layers, which no written metatheory covers. The modal kinds
+-- (@ᵒᵖ TOPE@, @♭ CUBE@, @♯ (I → TOPE)@, families into them, …) are
+-- parameters too, as in a @#define@. This is part of the experimental
+-- modal layer: the parameter layer has no modal account yet, but the
+-- parameters are uniform, so the generated eliminators only abstract over
+-- them, as a @#define@ with the same parameters would.
+--
+-- Rejecting is deliberate, not an accident of implementation. The generated
+-- eliminators for a cube parameter or index are pointwise and look
+-- plausible, but no metatheory is written down for an inductive family over
+-- a shape — unlike shape /fields/, which are the representability rule of
+-- Kudasov's 2021 note — and a family over a shape is what extension types
+-- are for. A rejection can be relaxed later; an acceptance cannot be
+-- revoked.
+checkDataSortLayers
+  :: Distinct n => [Rzk.ParamDecl] -> [SortIndex] -> TermT n -> TypeCheck n ()
+checkDataSortLayers paramDecls sortIndices = go positions
+  where
+    positions =
+      [ (True, spelledParam p) | p <- paramDecls ]
+        <> [ (False, Rzk.printTree (sortIndexType si)) | si <- sortIndices ]
+    spelledParam = \case
+      Rzk.ParamTermType _ _ ty -> Rzk.printTree ty
+      p                        -> Rzk.printTree p
+    go :: Distinct m => [(Bool, String)] -> TermT m -> TypeCheck m ()
+    go [] _ = pure ()
+    go ((isParam, spelled) : rest) ty = whnfT ty >>= \case
+      TypeFunT _ty orig md param mtope ret -> do
+        let position
+              | isParam   = "a parameter of a #data must be a type, CUBE, TOPE, or a tope family, got "
+              | otherwise = "an index of a #data sort must be a type, got "
+            reject kind = issueTypeError $ TypeErrorOther $
+              position <> kind <> ": " <> spelled
+        case mtope of
+          Just _  -> reject "a shape"
+          Nothing -> classifyDomain param >>= \case
+            DomainType         -> pure ()
+            DomainCubeUniverse | isParam -> pure ()
+            DomainTopeUniverse | isParam -> pure ()
+            DomainTopeFamily   | isParam -> pure ()
+            DomainModalTope    | isParam -> pure ()
+            kind               -> reject (domainKindName kind)
+        inScope orig md param ret (go rest)
+      _ -> panicImpossible "#data sort has fewer Π binders than parameters and indices"
+
 dataBodyParts :: Rzk.DataBody -> ([Rzk.Constructor], [Rzk.DataElim])
 dataBodyParts = \case
   Rzk.NoDataBody _              -> ([], [])
@@ -534,24 +650,138 @@
         "a parameter of a #data must be a typed variable (x : A), got "
           <> Rzk.printTree p
 
--- | A constructor field: a typed parameter, with cube/shape fields rejected
--- (over a directed interval they would declare directed cells, out of scope
--- for M3) and modal fields deferred (crisp induction).
+-- | A constructor field.
+--
+-- Plain typed fields @(x : A)@ and cube and shape fields are accepted, in
+-- every spelling and also under a modality (@(t :♭ I | φ)@, @(t :♭ I)@,
+-- @(t :♭ Φ)@); modal /type/ fields are not, and since that distinction is
+-- not recognisable on the surface it is decided by
+-- 'checkDataConFieldLayers' after elaboration. What a shape field means,
+-- and why it is sound, is worth stating precisely, because the
+-- neighbouring constructions are not.
+--
+-- A shape is a predicate on a cube, spelled @I -> TOPE@ as @Δ¹@ and @Λ²₁@ are,
+-- and a field may name one (@(t : Φ)@), give a bare cube (@(t : I)@, the shape
+-- whose tope is @⊤@), or write the shape inline (@(t : I | φ)@). The first two
+-- were already accepted here; the third was rejected, with a message claiming
+-- it would declare a directed cell. It does not: a cell needs face equations,
+-- and the @#data@ grammar has no syntax for them. All three are the same
+-- thing, so all three are accepted.
+--
+-- A shape field makes the declared type the /shape realisation/ @⌈{t : I | φ}⌉@:
+-- @#data D := c (t : I | φ)@ is freely generated by a Φ-indexed family of
+-- points with no identifications between them, and the generated recursor
+--
+-- > rec-D : (C : U) → ((t : I | φ) → C) → D → C
+--
+-- is exactly the representability rule of Kudasov's 2021 note, §4 "Shapes as
+-- types" (<https://fizruk.github.io/files/%5Bnotes%5D%20N.Kudasov.%20Booleans%2C%20coproducts%20and%20shape%20types%20in%20type%20theory%20for%20synthetic%20%E2%88%9E-categories.pdf Booleans, coproducts and shape types in type theory for synthetic ∞-categories>):
+-- elimination into an /extension type/, with strict computation
+-- @rec-D C m (c p) ≡ m p@ on a syntactic point. Nothing is asked of @C@, so
+-- no Segal or covariance condition appears, and nothing here produces a cube
+-- term from type-layer data: a point goes /into/ a constructor and the
+-- eliminator maps only /out/ into types. 'Rzk.Match' on such a constructor
+-- binds the cube variable and brings φ into the branch's context, which is
+-- where a tope belongs.
+--
+-- Three neighbouring things are deliberately /not/ enabled by this, and each
+-- is blocked somewhere else rather than here:
+--
+-- * __Face equations__ on a field, which would declare a directed cell (the
+--   directed circle and friends). Their eliminator needs a Segal or covariant
+--   target and the metatheory is open. They are unreachable because the
+--   @#data@ grammar has no syntax for them, not because of a check.
+-- * __Modal type fields__, below.
+--
+-- Cube and shape /parameters/ and /indices/ go the other way: rejected in
+-- every spelling. The inline spelling falls to the surface checks in
+-- 'dataParamVars' and 'dataSortIndices'; the named and bare-cube spellings
+-- look like type-valued binders on the surface and are caught by
+-- 'checkDataSortLayers' on the elaborated sort, so the rule does not depend
+-- on the spelling.
 dataFieldToParamDecl :: Distinct n => Rzk.VarIdent -> Rzk.Param -> TypeCheck n [Rzk.ParamDecl]
 dataFieldToParamDecl cname = \case
   p@Rzk.ParamPatternType{} -> paramToParamDecl p
+  p@Rzk.ParamPatternShape{} -> paramToParamDecl p
+  p@Rzk.ParamPatternModalShape{} -> paramToParamDecl p
+  -- Not rejected here: whether a modal binder is a (fine) cube or shape
+  -- field or a (rejected) modal type field is not recognisable on the
+  -- surface — @(t :♭ Δ¹)@ looks exactly like @(x :♭ A)@ — so the decision
+  -- is made by 'checkDataConFieldLayers' on the elaborated constructor type.
+  p@Rzk.ParamPatternModalType{} -> paramToParamDecl p
   Rzk.ParamPattern _ pat -> issueTypeError $ TypeErrorOther $
     "untyped field " <> Rzk.printTree pat <> " in constructor " <> Rzk.printTree cname
-  Rzk.ParamPatternShape{} -> issueTypeError $ TypeErrorOther $
-    "constructor " <> Rzk.printTree cname
-      <> " takes a cube or shape argument; over the directed interval this would declare a directed cell, which is not supported"
-  Rzk.ParamPatternModalType{} -> modalFieldError cname
-  Rzk.ParamPatternModalShape{} -> modalFieldError cname
 
+-- | Modal /type/ fields are deferred; modal /cube/ and /shape/ fields are
+-- accepted. The line between them is drawn by recursion, not by \"crisp
+-- induction\".
+--
+-- A modal field of any kind is an ordinary constructor argument sitting
+-- under a lock; the ordinary eliminator suffices for it, binding the field
+-- with its modality so the lock discipline applies inside a branch, and no
+-- new principle is involved. /Crisp induction/ — eliminating a crisp
+-- @x :♭ D@ by cases — is a separate principle that @#data@ does not
+-- provide either way.
+--
+-- What does distinguish the kinds is that a type field can be /recursive/,
+-- and the recursion and positivity bookkeeping ('dataConSurface' collects
+-- @fieldTypes@ and the probe from plain 'Rzk.ParamTermType' declarations
+-- only) does not see through a modal binder: a modal recursive field would
+-- silently evade the positivity probe and the induction-hypothesis
+-- machinery. A cube or shape field cannot be recursive — its domain is not
+-- a type — so nothing is evaded, and the modal form is as safe as the
+-- plain one.
 modalFieldError :: Distinct n => Rzk.VarIdent -> TypeCheck n a
 modalFieldError cname = issueTypeError $ TypeErrorOther $
-  "modal fields are not supported yet in constructor " <> Rzk.printTree cname
+  "modal type fields are not supported yet in constructor " <> Rzk.printTree cname
 
+-- | The field rule, on the elaborated form: a constructor field must be a
+-- type, a cube point, or a shape. That is the realisation fragment of
+-- Kudasov's 2021 note — points go /into/ constructors and the eliminator
+-- maps out into types — and nothing beyond it: a field of the cube universe,
+-- of a tope-family kind, or of a modal cube or tope kind would /store/ a cube- or
+-- tope-layer citizen inside type-layer data, which no written metatheory
+-- covers ('DomainKind' names the rejected kinds).
+--
+-- The modal spelling adds one distinction the surface cannot make:
+-- @(t :♭ Δ¹)@ and @(x :♭ A)@ are the same surface form
+-- ('Rzk.ParamPatternModalType'), and only elaboration tells a named shape
+-- from a type. A modal binder with a cube or shape domain is an ordinary
+-- (modal) cube or shape field; with a type domain it is rejected
+-- ('modalFieldError'). The check walks the elaborated constructor
+-- Π-telescope past the parameters, exactly as 'checkDataSortLayers' does
+-- for the sort.
+checkDataConFieldLayers
+  :: Distinct n
+  => Rzk.VarIdent -> Int -> [Rzk.ParamDecl] -> TermT n -> TypeCheck n ()
+checkDataConFieldLayers cname numParams fieldDecls =
+  go (replicate numParams Nothing <> map fieldInfo fieldDecls)
+  where
+    fieldInfo d = Just (isModalTypeSpelling d, spelledField d)
+    isModalTypeSpelling = \case
+      Rzk.ParamTermModalType{} -> True
+      _                        -> False
+    spelledField = \case
+      Rzk.ParamTermType _ _ ty -> Rzk.printTree ty
+      d                        -> Rzk.printTree d
+    go :: Distinct m => [Maybe (Bool, String)] -> TermT m -> TypeCheck m ()
+    go [] _ = pure ()
+    go (checkInfo : rest) ty = whnfT ty >>= \case
+      TypeFunT _ty orig md param mtope ret -> do
+        forM_ checkInfo $ \(modalSpelled, spelled) -> case mtope of
+          Just _  -> pure ()   -- a shape field, in any spelling and modality
+          Nothing -> classifyDomain param >>= \case
+            DomainCubePoint -> pure ()
+            DomainType
+              | modalSpelled -> modalFieldError cname
+              | otherwise    -> pure ()
+            kind -> issueTypeError $ TypeErrorOther $
+              "a field of constructor " <> Rzk.printTree cname
+                <> " must be a type, a cube point, or a shape, got "
+                <> domainKindName kind <> ": " <> spelled
+        inScope orig md param ret (go rest)
+      _ -> panicImpossible "constructor type has fewer Π binders than parameters and fields"
+
 dataConSurface
   :: Distinct n
   => Rzk.VarIdent -> [Rzk.VarIdent] -> [Rzk.ParamDecl] -> Int -> Rzk.Constructor
@@ -616,12 +846,22 @@
     , dataConSort = sort
     }
   where
+    -- A shape field binds a cube variable, so it contributes a field variable
+    -- and a field pattern exactly as a plain typed field does. Without these
+    -- cases the field's type reaches the constructor but its binder does not,
+    -- and 'conApplied' applies the constructor to too few arguments.
     fieldVars = \case
-      Rzk.ParamPatternType _ pats _ -> concatMap surfacePatternVars pats
-      _                             -> []
+      Rzk.ParamPatternType _ pats _           -> concatMap surfacePatternVars pats
+      Rzk.ParamPatternShape _ pats _ _        -> concatMap surfacePatternVars pats
+      Rzk.ParamPatternModalType _ pats _ _    -> concatMap surfacePatternVars pats
+      Rzk.ParamPatternModalShape _ pats _ _ _ -> concatMap surfacePatternVars pats
+      _                                       -> []
     fieldPats = \case
-      Rzk.ParamPatternType _ pats _ -> map patternToTerm pats
-      _                             -> []
+      Rzk.ParamPatternType _ pats _           -> map patternToTerm pats
+      Rzk.ParamPatternShape _ pats _ _        -> map patternToTerm pats
+      Rzk.ParamPatternModalType _ pats _ _    -> map patternToTerm pats
+      Rzk.ParamPatternModalShape _ pats _ _ _ -> map patternToTerm pats
+      _                                       -> []
     isIdentity = \case
       Rzk.TypeId{}       -> True
       Rzk.TypeIdSimple{} -> True
@@ -685,6 +925,10 @@
   -> (forall l. (DExt n l, Distinct l) => [Decl l] -> TypeCheck l r)
   -> TypeCheck n r
 withDataDecls path used name paramVars paramDecls sortIndices consData elims k = do
+  safe <- asks rsttSafeEnabled
+  when safe $ do
+    loc <- asks ctxLocation
+    recordCheckWarning $ RSTTScopeWarning RSTTInductive "inductive declaration" loc
   -- The type former's type spells the sort as written: params → indices → U.
   let sortTerm = foldr wrapIndex (Rzk.Universe Nothing) sortIndices
       wrapIndex (SortIndex mv ty) body = case mv of
@@ -692,6 +936,7 @@
         Nothing -> surfaceArrow ty body
   dTyTerm <- elaborate (addParamDecls paramDecls sortTerm)
   dTy <- memoizeWHNF =<< typecheck dTyTerm universeT
+  checkDataSortLayers paramDecls sortIndices dTy
   dDeps <- assumptionDepsOf dTy
   withTopLevel (varIdentAt path name) dTy Nothing False
     (nubNames (used <> dDeps)) Nothing $ \dBinder dDecl ->
@@ -741,6 +986,7 @@
           loc
       conTyTerm <- elaborate (dataConType con)
       conTy <- memoizeWHNF =<< typecheck conTyTerm universeT
+      checkDataConFieldLayers (dataConName con) numParams (dataConFields con) conTy
       conDeps <- assumptionDepsOf conTy
       let conSort = case dataConSort con of
             DataConPoint  -> PointCon
@@ -864,37 +1110,51 @@
       -- The surface types of the eliminators and the path computation rules
       -- (see "Rzk.TypeCheck.Decl.Data"), pushed through the ordinary
       -- elaborator below just like any user-written type.
-      let spec = ElimSpec
-            { esName = name, esParamVars = paramVars, esParamDecls = paramDecls
+      let spec md = ElimSpec
+            { esName = name, esModality = md
+            , esParamVars = paramVars, esParamDecls = paramDecls
             , esIndexVars = indexVars, esIndexDecls = indexDecls, esMotiveV = motiveV
             , esScrutV = scrutV, esIhNames = ihNames, esMethodVars = methodVars
             , esEndpointV = endpointV, esPathV = pathV, esTransportV = transportV
             , esConsData = consData, esPathData = pathData }
-          et = elimTerms spec
-          indName = prefixedIdent "ind-" name
-          recName = prefixedIdent "rec-" name
-      (mindTy, mrecTy, computeReasc) <- splitClauses indName recName (map fst (computeRules et))
-      indTyT <- elaborate (indTypeTerm et)
-      indCanonical <- memoizeWHNF =<< typecheck indTyT universeT
-      indTy' <- reascribe indName indCanonical mindTy
-      indDeps <- assumptionDepsOf indTy'
-      withTopLevel (varIdentAt path indName) indTy' Nothing False
-        (nubNames (usedHere <> indDeps))
-        (Just (DataRole dName numParams (DataElimKind numMethods indexArity ElimInd))) $ \_ indDecl -> do
-          recTyT <- elaborate (recTypeTerm et)
-          recCanonical <- memoizeWHNF =<< typecheck recTyT universeT
-          recTy' <- reascribe recName recCanonical mrecTy
-          recDeps <- assumptionDepsOf recTy'
-          let usedAtInd = Foil.sink1 usedHere
-          withTopLevel (varIdentAt path recName) recTy' Nothing False
-            (nubNames (usedAtInd <> recDeps))
-            (Just (DataRole (Foil.sink dName) numParams (DataElimKind numMethods indexArity ElimRec))) $ \_ recDecl ->
-              bindComputes
-                (Foil.sink1 usedAtInd)
-                computeReasc
-                (computeRules et)
-                (sinkDecls (sinkDecls declsAcc <> [indDecl]) <> [recDecl])
+          -- Modal eliminators are crisp induction (Shulman 2018, §5), valid
+          -- for the left adjoints ♭ and ᵒᵖ. There is none for ♯: a right
+          -- adjoint does not preserve coproducts or initial algebras (MTT,
+          -- §10.5), and rec-sharp-Bool would retract ♯ Bool onto Bool.
+          modalities = if hasPaths then [Id] else [Id, Op, Flat]
+          modalTerms = [ (md, elimTerms (spec md)) | md <- modalities ]
+          generated = concat
+            [ [ (md, ElimInd, elimIdent "ind" md name, indTypeTerm et)
+              , (md, ElimRec, elimIdent "rec" md name, recTypeTerm et) ]
+            | (md, et) <- modalTerms ]
+          computes = concatMap (computeRules . snd) modalTerms
+      (elimReasc, computeReasc) <- splitClauses
+        [ n | (_, _, n, _) <- generated ] (map fst computes)
+      bindEliminators dName usedHere elimReasc computeReasc computes generated declsAcc
 
+    bindEliminators
+      :: forall m. DExt n m
+      => Foil.Name m -> [Foil.Name m]
+      -> [(Rzk.VarIdentToken, Rzk.Term)]
+      -> [(Rzk.VarIdentToken, Rzk.Term)]
+      -> [(Rzk.VarIdent, Rzk.Term)]
+      -> [(TModality, ElimKind, Rzk.VarIdent, Rzk.Term)]
+      -> [Decl m]
+      -> TypeCheck m r
+    bindEliminators _dName usedHere _elimReasc computeReasc computes [] acc =
+      bindComputes usedHere computeReasc computes acc
+    bindEliminators dName usedHere elimReasc computeReasc computes
+        ((md, kind, elimName, elimTy) : rest) acc = do
+      tyT <- elaborate elimTy
+      canonical <- memoizeWHNF =<< typecheck tyT universeT
+      ty' <- reascribe elimName canonical (lookup (identTokenOf elimName) elimReasc)
+      deps <- assumptionDepsOf ty'
+      withTopLevel (varIdentAt path elimName) ty' Nothing False
+        (nubNames (usedHere <> deps))
+        (Just (DataRole dName numParams (DataElimKind md numMethods indexArity kind))) $ \_ decl ->
+          bindEliminators (Foil.sink dName) (Foil.sink1 usedHere)
+            elimReasc computeReasc computes rest (sinkDecls acc <> [decl])
+
     -- | Bind the generated @compute-@ lemmas (one @ind@/@rec@ pair per
     -- path constructor), re-ascribing the ones a @compute with@ clause
     -- names, then hand the accumulated declarations to the continuation of
@@ -915,37 +1175,29 @@
           bindComputes (Foil.sink1 usedHere) reasc rest
             (sinkDecls acc <> [decl])
 
-    -- | Split the re-ascription clauses among the generated entries: the
-    -- two eliminators (@eliminate with@) and the computation rules of the
-    -- path constructors (@compute with@). A clause must name an entry of
-    -- the matching kind, at most once each.
     splitClauses
       :: Distinct m
-      => Rzk.VarIdent -> Rzk.VarIdent -> [Rzk.VarIdent]
+      => [Rzk.VarIdent] -> [Rzk.VarIdent]
       -> TypeCheck m
-           (Maybe Rzk.Term, Maybe Rzk.Term, [(Rzk.VarIdentToken, Rzk.Term)])
-    splitClauses indName recName computeNames = go (Nothing, Nothing, []) elims
+           ([(Rzk.VarIdentToken, Rzk.Term)], [(Rzk.VarIdentToken, Rzk.Term)])
+    splitClauses elimNames computeNames = go ([], []) elims
       where
         go acc [] = pure acc
-        go (mind, mrec, mcomp) (Rzk.DataElim _loc elimName ty : rest)
-          | sameIdent elimName indName =
-              case mind of
-                Nothing -> go (Just ty, mrec, mcomp) rest
-                Just _  -> duplicate elimName
-          | sameIdent elimName recName =
-              case mrec of
-                Nothing -> go (mind, Just ty, mcomp) rest
-                Just _  -> duplicate elimName
+        go (melims, mcomp) (Rzk.DataElim _loc elimName ty : rest)
+          | any (sameIdent elimName) elimNames =
+              if identTokenOf elimName `elem` map fst melims
+                then duplicate elimName
+                else go (melims <> [(identTokenOf elimName, ty)], mcomp) rest
           | otherwise = issueTypeError $ TypeErrorOther $
               "eliminate with clause for " <> Rzk.printTree elimName
                 <> ", which is not an eliminator of " <> Rzk.printTree name
-                <> " (the eliminators are " <> Rzk.printTree indName
-                <> " and " <> Rzk.printTree recName <> ")"
-        go (mind, mrec, mcomp) (Rzk.DataCompute _loc ruleName ty : rest)
+                <> " (the eliminators are "
+                <> intercalate ", " (map Rzk.printTree elimNames) <> ")"
+        go (melims, mcomp) (Rzk.DataCompute _loc ruleName ty : rest)
           | any (sameIdent ruleName) computeNames =
               if identTokenOf ruleName `elem` map fst mcomp
                 then duplicate ruleName
-                else go (mind, mrec, mcomp <> [(identTokenOf ruleName, ty)]) rest
+                else go (melims, mcomp <> [(identTokenOf ruleName, ty)]) rest
           | otherwise = issueTypeError $ TypeErrorOther $
               "compute with clause for " <> Rzk.printTree ruleName
                 <> ", which is not a computation rule of " <> Rzk.printTree name
@@ -1117,6 +1369,13 @@
         Nothing -> Hole (Just (markUnresolved name))
   pure (toTerm (ctxScope ctx) env term)
 
+-- Check user syntax; generated inductive declarations are already excluded.
+elaborateChecked :: Distinct n => Rzk.Term -> TypeCheck n (Term n)
+elaborateChecked term = do
+  core <- elaborate term
+  atSurface term $ RSTT.recordSyntaxUses core
+  pure core
+
 -- | Is a surface identifier defined at the top level?
 checkDefined :: Distinct n => VarIdent -> TypeCheck n (Foil.Name n)
 checkDefined name = asks (lookupNamed name) >>= \case
@@ -1179,7 +1438,7 @@
         typeResult <- tryCheck $ do
           used <- mapM (checkDefined . varIdentAt path) vars
           paramDecls <- concat <$> mapM paramToParamDecl params
-          tyTerm <- elaborate (addParamDecls paramDecls ty)
+          tyTerm <- elaborateChecked (addParamDecls paramDecls ty)
           ty' <- atSurface ty $ memoizeWHNF =<< typecheck tyTerm universeT
           pure (used, ty')
         case typeResult of
@@ -1191,8 +1450,15 @@
             -- against it and its own errors and holes reported, instead of the
             -- run stopping at this one.
             result <- tryCheck $ do
-              valTerm <- elaborate (addParams params term)
-              atSurface term $ memoizeWHNF =<< typecheck valTerm ty'
+              valTerm <- elaborateChecked (addParams params term)
+              val' <- atSurface term $ memoizeWHNF =<< typecheck valTerm ty'
+              -- A definition at type U must define a type: a body that is a
+              -- universe kind would be a synonym smuggling the kind into
+              -- every position that accepts U.
+              whnfT ty' >>= \case
+                UniverseT{} -> ensureTypeAtU "a definition at type U" val'
+                _           -> pure ()
+              pure val'
             let (mvalue, bodyErrors) = case result of
                   Right term'  -> (Just term', [])
                   Left bodyErr -> (Nothing, [bodyErr])
@@ -1229,7 +1495,7 @@
         typeResult <- tryCheck $ do
           used <- mapM (checkDefined . varIdentAt path) vars
           paramDecls <- concat <$> mapM paramToParamDecl params
-          tyTerm <- elaborate (addParamDecls paramDecls ty)
+          tyTerm <- elaborateChecked (addParamDecls paramDecls ty)
           ty' <- atSurface ty $ memoizeWHNF =<< typecheck tyTerm universeT
           pure (used, ty')
         case typeResult of
@@ -1244,7 +1510,7 @@
         <> intercalate " " [ Rzk.printTree name | name <- names ]) $
       withCommand command k $ do
         typeResult <- tryCheck $ do
-          tyTerm <- elaborate ty
+          tyTerm <- elaborateChecked ty
           atSurface ty $ typecheck tyTerm universeT
         case typeResult of
           Left typeError -> skippingCommand typeError path i total more k
@@ -1259,10 +1525,13 @@
         -- A #check declares nothing, so its failure costs the rest of the file
         -- nothing either.
         result <- tryCheck $ do
-          tyTerm <- elaborate ty
-          ty' <- atSurface ty $ typecheck tyTerm universeT >>= whnfT
-          termTerm <- elaborate term
-          _term' <- atSurface term $ typecheck termTerm ty'
+          tyTerm <- elaborateChecked ty
+          ty' <- atSurface ty $ typecheck tyTerm universeT
+          termTerm <- elaborateChecked term
+          term' <- atSurface term $ typecheck termTerm ty'
+          recordMetaPrefixUses "#check" ty' (Just term')
+          RSTT.recordFragmentUses "#check" ty' (Just term') False
+          _ <- recordSchematicDeclaration "#check" ty' (Just term')
           pure ()
         case result of
           Left err -> skippingCommand err path i total more k
@@ -1275,8 +1544,12 @@
     announce (" Computing NF for " <> Rzk.printTree term) $
       withCommand command k $ do
         result <- tryCheck $ do
-          term' <- atSurface term $ elaborate term >>= infer >>= nfT
-          ppInContext term'
+          term' <- atSurface term $ elaborateChecked term >>= infer
+          ty' <- typeOfUncomputed term'
+          recordMetaPrefixUses "#compute-nf" ty' (Just term')
+          RSTT.recordFragmentUses "#compute-nf" ty' (Just term') False
+          _ <- recordSchematicDeclaration "#compute-nf" ty' (Just term')
+          nfT term' >>= ppInContext
         case result of
           Left err -> skippingCommand err path i total more k
           Right shown -> traceTypeCheck Normal ("  " <> shown) $
@@ -1286,8 +1559,12 @@
     announce (" Computing WHNF for " <> Rzk.printTree term) $
       withCommand command k $ do
         result <- tryCheck $ do
-          term' <- atSurface term $ elaborate term >>= infer >>= whnfT
-          ppInContext term'
+          term' <- atSurface term $ elaborateChecked term >>= infer
+          ty' <- typeOfUncomputed term'
+          recordMetaPrefixUses "#compute" ty' (Just term')
+          RSTT.recordFragmentUses "#compute" ty' (Just term') False
+          _ <- recordSchematicDeclaration "#compute" ty' (Just term')
+          whnfT term' >>= ppInContext
         case result of
           Left err -> skippingCommand err path i total more k
           Right shown -> traceTypeCheck Normal ("  " <> shown) $
diff --git a/src/Rzk/TypeCheck/Decl/Data.hs b/src/Rzk/TypeCheck/Decl/Data.hs
--- a/src/Rzk/TypeCheck/Decl/Data.hs
+++ b/src/Rzk/TypeCheck/Decl/Data.hs
@@ -19,7 +19,12 @@
 import           Data.Data          (Data, cast, gmapQ)
 import qualified Data.Text          as T
 
+import           Language.Rzk.Foil.Names (TModality (..),
+                                           fromMod,
+                                           fromTModalityToModalColon,
+                                           modalColonToTModality)
 import qualified Language.Rzk.Syntax as Rzk
+import           Rzk.TypeCheck.Context (ModeTheory (comp))
 import           Rzk.TypeCheck.Display (panicImpossible)
 
 -- * Surface-syntax builders and preprocessed forms
@@ -166,6 +171,46 @@
 prefixedIdent p (Rzk.VarIdent pos (Rzk.VarIdentToken t)) =
   Rzk.VarIdent pos (Rzk.VarIdentToken (p <> t))
 
+modalityPrefix :: TModality -> T.Text
+modalityPrefix = \case
+  Id    -> ""
+  Op    -> "op-"
+  Flat  -> "b-"
+  Sharp -> "sharp-"
+
+elimIdent :: T.Text -> TModality -> Rzk.VarIdent -> Rzk.VarIdent
+elimIdent kind md = prefixedIdent (kind <> "-" <> modalityPrefix md)
+
+modalizeParamDecl :: TModality -> Rzk.ParamDecl -> Rzk.ParamDecl
+modalizeParamDecl Id param = param
+modalizeParamDecl md param = case param of
+  Rzk.ParamType loc ty ->
+    Rzk.ParamTermModalType loc (surfaceVar underscoreIdent)
+      (fromTModalityToModalColon md) ty
+  Rzk.ParamTermType loc pat ty ->
+    Rzk.ParamTermModalType loc pat (fromTModalityToModalColon md) ty
+  Rzk.ParamTermShape loc pat cube tope ->
+    Rzk.ParamTermModalShape loc pat (fromTModalityToModalColon md) cube
+      (Rzk.ModType Nothing (fromMod md) tope)
+  Rzk.ParamTermModalType loc pat mc ty ->
+    Rzk.ParamTermModalType loc pat
+      (fromTModalityToModalColon (comp md (modalColonToTModality mc))) ty
+  Rzk.ParamTermModalShape loc pat mc cube tope ->
+    Rzk.ParamTermModalShape loc pat
+      (fromTModalityToModalColon (comp md (modalColonToTModality mc))) cube
+      (Rzk.ModType Nothing (fromMod md) tope)
+
+surfaceArrowModal :: TModality -> Rzk.Term -> Rzk.Term -> Rzk.Term
+surfaceArrowModal Id = surfaceArrow
+surfaceArrowModal md = surfacePiModal md underscoreIdent
+
+surfacePiModal :: TModality -> Rzk.VarIdent -> Rzk.Term -> Rzk.Term -> Rzk.Term
+surfacePiModal Id v ty ret = surfacePi v ty ret
+surfacePiModal md v ty ret =
+  Rzk.TypeFun Nothing
+    (Rzk.ParamTermModalType Nothing (surfaceVar v)
+      (fromTModalityToModalColon md) ty) ret
+
 -- | Index into a list that is long enough by construction, panicking with a
 -- label instead of the opaque @Prelude.!!@ message if that invariant is ever
 -- broken. Used where an index is derived from the same data as the list (the
@@ -191,6 +236,7 @@
 -- validated.
 data ElimSpec = ElimSpec
   { esName       :: Rzk.VarIdent
+  , esModality   :: TModality
   , esParamVars  :: [Rzk.VarIdent]
   , esParamDecls :: [Rzk.ParamDecl]
   , esIndexVars  :: [Rzk.VarIdent]
@@ -225,7 +271,8 @@
     }
   where
     ElimSpec
-      { esName = name, esParamVars = paramVars, esParamDecls = paramDecls
+      { esName = name, esModality = elimMd
+      , esParamVars = paramVars, esParamDecls = paramDecls
       , esIndexVars = indexVars, esIndexDecls = indexDecls, esMotiveV = motiveV
       , esScrutV = scrutV, esIhNames = ihNames, esMethodVars = methodVars
       , esEndpointV = endpointV, esPathV = pathV, esTransportV = transportV
@@ -236,9 +283,9 @@
     -- The motive abstracts over the indices (and, dependently, the
     -- scrutinee); a method's hypotheses and codomain instantiate it
     -- at the relevant index terms.
-    motiveSort dependent = addParamDecls indexDecls $
+    motiveSort dependent = addParamDecls (map (modalizeParamDecl elimMd) indexDecls) $
       if dependent
-        then surfaceArrow dAppliedIx (Rzk.Universe Nothing)
+        then surfaceArrowModal elimMd dAppliedIx (Rzk.Universe Nothing)
         else Rzk.Universe Nothing
     -- The constructor applied to the parameters and its own fields
     -- (for a path constructor, this is the declared identification).
@@ -277,17 +324,17 @@
             | otherwise -> Rzk.TypeIdSimple Nothing iL iR
         wrapFields nRec ((j, (fieldDecl, fpat)) : more)
           | Just fieldIxs <- lookup j (dataConRecursive con) =
-              Rzk.TypeFun Nothing fieldDecl $
+              Rzk.TypeFun Nothing (modalizeParamDecl elimMd fieldDecl) $
                 surfacePi (nthByConstruction "induction hypotheses" ihNames nRec)
                   (surfaceApps motive (fieldIxs <> [ fpat | dependent ]))
                   (wrapFields (nRec + 1) more)
           | otherwise =
-              Rzk.TypeFun Nothing fieldDecl (wrapFields nRec more)
-    elimTail dependent = addParamDecls indexDecls $
+              Rzk.TypeFun Nothing (modalizeParamDecl elimMd fieldDecl) (wrapFields nRec more)
+    elimTail dependent = addParamDecls (map (modalizeParamDecl elimMd) indexDecls) $
       if dependent
-        then surfacePi scrutV dAppliedIx $
+        then surfacePiModal elimMd scrutV dAppliedIx $
           surfaceApps motive (map surfaceVar indexVars <> [surfaceVar scrutV])
-        else surfaceArrow dAppliedIx $
+        else surfaceArrowModal elimMd dAppliedIx $
           surfaceApps motive (map surfaceVar indexVars)
     conWithPath = zip consData pathData
     methodsPis dependent inner = case methodVars of
@@ -295,11 +342,11 @@
       Just ms -> foldr
         (\(m, cp) rest -> surfacePi m (methodTy dependent cp) rest)
         inner (zip ms conWithPath)
-    elimTy dependent = addParamDecls paramDecls $
+    elimTy dependent = addParamDecls (map (modalizeParamDecl elimMd) paramDecls) $
       surfacePi motiveV (motiveSort dependent) $
         methodsPis dependent (elimTail dependent)
-    indName = prefixedIdent "ind-" name
-    recName = prefixedIdent "rec-" name
+    indName = elimIdent "ind" elimMd name
+    recName = elimIdent "rec" elimMd name
     -- The propositional β-lemma per path constructor and eliminator:
     -- the section's action on the constructor's path (ap/apd, spelled
     -- through idJ) equals the path method at the fields, with the
@@ -312,10 +359,10 @@
       [ fpat : [ Rzk.App Nothing f fpat | j `elem` recPositionsOf con ]
       | (j, fpat) <- zip [0 :: Int ..] (dataConFieldPats con) ]
     computeTy dependent elimIdent m con l r =
-      addParamDecls paramDecls $
+      addParamDecls (map (modalizeParamDecl elimMd) paramDecls) $
         surfacePi motiveV (motiveSort dependent) $
           methodsPis dependent $
-            addParamDecls (dataConFields con) $
+            addParamDecls (map (modalizeParamDecl elimMd) (dataConFields con)) $
               let f = sectionOf elimIdent
                   fAt = Rzk.App Nothing f
                   -- apd (dependent) or ap: the motive of the outer
@@ -332,17 +379,18 @@
                     (Rzk.Refl Nothing) r (conApplied con)
                   rhs = surfaceApps (surfaceVar m) (methodArgs f con)
                in Rzk.TypeIdSimple Nothing lhs rhs
-    computeNameFor pfx con =
+    computeNameFor kind con =
       let Rzk.VarIdent pos (Rzk.VarIdentToken d) = name
           Rzk.VarIdentToken c = identTokenOf (dataConName con)
-       in Rzk.VarIdent pos (Rzk.VarIdentToken (pfx <> d <> "-" <> c))
+       in Rzk.VarIdent pos
+            (Rzk.VarIdentToken ("compute-" <> kind <> "-" <> modalityPrefix elimMd <> d <> "-" <> c))
     computes = case methodVars of
       Nothing -> []
       Just ms ->
         [ entry
         | (m, (con, Just ((l, r), _))) <- zip ms conWithPath
         , entry <-
-            [ ( computeNameFor "compute-ind-" con
+            [ ( computeNameFor "ind" con
               , computeTy True indName m con l r )
-            , ( computeNameFor "compute-rec-" con
+            , ( computeNameFor "rec" con
               , computeTy False recName m con l r ) ] ]
diff --git a/src/Rzk/TypeCheck/Error.hs b/src/Rzk/TypeCheck/Error.hs
--- a/src/Rzk/TypeCheck/Error.hs
+++ b/src/Rzk/TypeCheck/Error.hs
@@ -23,21 +23,27 @@
 import           Data.List                (intercalate)
 
 import           Language.Rzk.Foil.Syntax
-import           Language.Rzk.Foil.Names (TModality (..), VarIdent, getVarIdent,
+import           Language.Rzk.Foil.Names (Binder, TModality (..), VarIdent,
+                                           binderDisplayName, getVarIdent,
                                            ppVarIdentWithLocation)
 import qualified Language.Rzk.Syntax      as Rzk
 import           Rzk.TypeCheck.Context
 import           Rzk.TypeCheck.Display
 
+data SchematicProblem = SchematicKindMismatch | SchematicUnsupported | SchematicDependency
+  deriving (Eq)
+
 data TypeError n
   = TypeErrorOther String
+  | TypeErrorRSTT String
+  | TypeErrorSchematic SchematicProblem String
   | TypeErrorUnify (TermT n) (TermT n) (TermT n)
   | TypeErrorUnifyTerms (TermT n) (TermT n)
   | TypeErrorNotPair (TermT n) (TermT n)
-  | TypeErrorNotModal (Term n) TModality (TermT n)
-  | TypeErrorModalityMismatch TModality TModality (Term n)
+  | TypeErrorNotModal ModalTypeExpectation (Term n) TModality (TermT n)
+  | TypeErrorModalityMismatch ModalityMismatchSite TModality TModality (Maybe (Term n))
   | TypeErrorUnaccessibleVar (Foil.Name n) TModality TModality
-  | TypeErrorNotTypeInModal (TermT n)
+  | TypeErrorNotTypeInModal TModality (Term n) (TermT n)
   | TypeErrorNotFunction (TermT n) (TermT n)
   | TypeErrorUnexpectedLambda (Term n) (TermT n)
   | TypeErrorUnexpectedPair (Term n) (TermT n)
@@ -65,6 +71,18 @@
   | TypeErrorMatchBranchArity VarIdent Int Int
   | TypeErrorReascribedTypeMismatch VarIdent (TermT n) (TermT n)
 
+data ModalTypeExpectation
+  = ModalTypeForIntroduction
+  | ModalTypeForElimination
+
+data ModalityMismatchSite
+  = MismatchLambdaParameter Binder
+  | MismatchModalIntroduction
+  | MismatchModalElimination
+  | MismatchFunctionType
+  | MismatchSigmaType
+  | MismatchLambda
+
 -- | An error, together with the context it was raised in.
 --
 -- The scope index is existential: an error raised under a binder is /already/
@@ -99,6 +117,8 @@
 ppTypeError :: Naming n -> TypeError n -> String
 ppTypeError naming = \case
   TypeErrorOther msg -> msg
+  TypeErrorSchematic _ msg -> "schematic declaration: " <> msg
+  TypeErrorRSTT msg -> "RSTT-safe mode: " <> msg
   TypeErrorUnify term expected actual -> block TopDown
     [ "cannot unify expected type"
     , "  " <> ppU (untyped expected)
@@ -121,28 +141,35 @@
         TypeFunT{} -> "\nPerhaps the term is applied to too few arguments?"
         _          -> ""
     ]
-  TypeErrorNotModal term m ty -> block TopDown
-    [ "expected modal type " <> ppModality m <> " ?"
-    , "but got type"
-    , "  " <> ppU (untyped ty)
-    , "for term"
-    , "  " <> ppU term
+  TypeErrorNotModal expectation term modality ty -> block TopDown $
+    case expectation of
+      ModalTypeForIntroduction ->
+        [ "cannot check modal introduction against a non-modal type"
+        , "  term: " <> ppU term
+        , "  expected type: " <> ppU (untyped ty)
+        , "the expected type must have the form " <> ppModality modality <> " T"
+        ]
+      ModalTypeForElimination ->
+        [ "cannot eliminate a non-modal value with `let mod " <> ppModality modality <> "`"
+        , "  value: " <> ppU term
+        , "  type:  " <> ppU (untyped ty)
+        , "the value's type must have the form " <> ppModality modality <> " T"
+        ]
+  TypeErrorModalityMismatch site expected actual mterm -> block TopDown $
+    mismatchLines site expected actual
+      <> maybe [] (\term -> ["in term", "  " <> ppU term]) mterm
+  TypeErrorUnaccessibleVar var varMod locks -> block TopDown
+    [ "variable " <> ppVar var <> " is inaccessible in the current modal context"
+    , "  declared modality: " <> ppModality varMod
+    , "  current locks:      " <> ppModality locks
     ]
-  TypeErrorModalityMismatch expected actual term -> block TopDown
-    [ "modality mismatch"
-    , "  expected " <> ppModality expected
-    , "  but got  " <> ppModality actual
-    , "for term"
+  TypeErrorNotTypeInModal modality term ty -> block TopDown
+    [ "cannot form modal type " <> ppModality modality <> " " <> ppU term
+    , "the expression"
     , "  " <> ppU term
-    ]
-  TypeErrorUnaccessibleVar _var varMod locks -> block TopDown
-    [ "unaccessible var with modality " <> ppModality varMod
-    , "  under locks " <> ppModality locks
-    ]
-  TypeErrorNotTypeInModal ty -> block TopDown
-    [ "expected a type inside modal type"
-    , "but got"
+    , "has type"
     , "  " <> ppU (untyped ty)
+    , "but its type must be U, CUBE, or TOPE"
     ]
 
   TypeErrorUnexpectedLambda term ty -> block TopDown
@@ -301,6 +328,37 @@
     ppU = ppTerm naming
     ppTyped = ppTermT naming
     ppVar = ppName naming
+    mismatchLines site expected actual = case site of
+      MismatchLambdaParameter binder ->
+        [ "modality mismatch in lambda parameter " <> show (binderDisplayName binder)
+        , "  expected from function type: " <> ppModality expected
+        , "  written on parameter:        " <> ppModality actual
+        ]
+      MismatchModalIntroduction ->
+        [ "modality mismatch in modal introduction"
+        , "  expected by result type: " <> ppModality expected
+        , "  written after `mod`:     " <> ppModality actual
+        ]
+      MismatchModalElimination ->
+        [ "modality mismatch in modal elimination"
+        , "  expected by `let mod`: " <> ppModality expected
+        , "  value's modality:     " <> ppModality actual
+        ]
+      MismatchFunctionType ->
+        [ "cannot unify function types with different parameter modalities"
+        , "  expected: " <> ppModality expected
+        , "  actual:   " <> ppModality actual
+        ]
+      MismatchSigmaType ->
+        [ "cannot unify dependent pair types with different parameter modalities"
+        , "  expected: " <> ppModality expected
+        , "  actual:   " <> ppModality actual
+        ]
+      MismatchLambda ->
+        [ "cannot unify lambda abstractions with different parameter modalities"
+        , "  expected: " <> ppModality expected
+        , "  actual:   " <> ppModality actual
+        ]
 
 ppAction :: Naming n -> Int -> Action n -> String
 ppAction naming n = unlines . map (replicate (2 * n) ' ' <>) . \case
@@ -418,10 +476,12 @@
         Nothing -> "  Error occurred outside of any command!"
     ]
   , ""
-  , case filter (not . isTopeTop) (availableTopes ctx) of
+  , case filter (not . isTopeTop . tTope) ctxTopes of
       [] -> "Local tope context is unrestricted (⊤)."
       topes -> namedBlock TopDown "Local tope context:"
-        [ "  " <> ppU (untyped tope)
+        [ "  " <> availability (isAccessible tope)
+            <> ppU (untyped (tTope tope))
+            <> modalSuffix (tModVar tope) (tModAccum tope)
         | tope <- topes ]
   , ""
   , block dir
@@ -429,12 +489,20 @@
     | action <- ctxActionStack ]
   , namedBlock TopDown "Definitions in context:"
     [ block dir
-      [ ppName naming name <> " : " <> ppU (untyped (varType info))
+      [ availability  (isVarAccessible info)
+          <> ppName naming name <> " : " <> ppU (untyped (varType info))
+          <> modalSuffix (varModality info) (varModAccum info)
       | (name, info) <- reverse (varsInScope ctx) ] ]
   ]
   where
     naming = namingOfContext ctx
     ppU = ppTerm naming
+    availability True  = ""
+    availability False = "× "
+    modalSuffix Id Id = ""
+    modalSuffix modality locks =
+      "  [modality: " <> ppModality modality
+        <> ", locks: " <> ppModality locks <> "]"
     isTopeTop TopeTopT{} = True
     isTopeTop _          = False
 
diff --git a/src/Rzk/TypeCheck/Eval.hs b/src/Rzk/TypeCheck/Eval.hs
--- a/src/Rzk/TypeCheck/Eval.hs
+++ b/src/Rzk/TypeCheck/Eval.hs
@@ -78,6 +78,40 @@
 typeOf :: Distinct n => TermT n -> TypeCheck n (TermT n)
 typeOf t = typeOfUncomputed t >>= whnfT
 
+typeUnderModal :: TModality -> TermT n -> Maybe (TermT n)
+typeUnderModal m ty = case stripTypeRestrictions ty of
+  TypeModalT _ m' inner | m' == m -> Just inner
+  _                               -> Nothing
+
+valueUnderModal :: TModality -> TermT n -> Maybe (TermT n)
+valueUnderModal m = \case
+  ModAppT _ m' t | m' == m -> Just t
+  _                        -> Nothing
+
+requireTypeUnderModal :: Distinct n => TModality -> TermT n -> TypeCheck n (TermT n)
+requireTypeUnderModal m t = do
+  ty <- typeOf t
+  case typeUnderModal m ty of
+    Just inner -> pure inner
+    Nothing    -> do
+      ctx <- ask
+      let naming = namingOfContext ctx
+      panicImpossible $ unlines
+        [ "not modal in letmod"
+        , "term: " <> ppTermT naming t
+        , "type: " <> ppTermT naming ty
+        , "expected modality: " <> show m
+        , "action stack:"
+        , concatMap (ppAction naming 0) (take 16 (ctxActionStack ctx))
+        ]
+
+extractModal :: Distinct n => TModality -> TModality -> TermT n -> TypeCheck n (Maybe (TermT n))
+extractModal app inn t
+  | isRA inn = do
+      bty <- requireTypeUnderModal inn t
+      pure (Just (modExtractT bty app inn t))
+  | otherwise = pure Nothing
+
 -- | The free variables of a typed term, including those that occur only in the
 -- /types/ of the variables it mentions.
 --
@@ -157,6 +191,7 @@
   , varDeclaredAssumptions = []
   , varLocation = loc
   , varDataRole = Nothing
+  , varSchematicStatus = SchematicUnchecked
   , varMetaPrefix = 0
   }
 
@@ -762,7 +797,9 @@
       | goal `elemT` topes -> return True
       | solveRHS topes (topeEQT l r) -> return True
       | solveRHS topes (topeEQT l cube2_0T) -> return True
+      | solveRHS topes (topeEQT l cubeI_0T) -> return True
       | solveRHS topes (topeEQT r cube2_1T) -> return True
+      | solveRHS topes (topeEQT r cubeI_1T) -> return True
     TopeLEQT _ty (CubeSupT _ a b) r ->
       solveRHSM modalTopes (topeAndT (topeLEQT a r) (topeLEQT b r))
     TopeLEQT _ty l (CubeInfT _ a b) ->
@@ -831,7 +868,9 @@
       | eqT l r -> True
       | solveRHS topes (topeEQT l r) -> True
       | solveRHS topes (topeEQT l cube2_0T) -> True
+      | solveRHS topes (topeEQT l cubeI_0T) -> True
       | solveRHS topes (topeEQT r cube2_1T) -> True
+      | solveRHS topes (topeEQT r cubeI_1T) -> True
     TopeAndT _ l r -> solveRHS topes l && solveRHS topes r
     TopeOrT  _ l r -> solveRHS topes l || solveRHS topes r
     _ -> tope `elemT` topes
@@ -919,10 +958,10 @@
 --   * DISJOINT — the tope and a consistent context have empty overlap (their
 --     conjunction is ⊥). The face or branch is then vacuous everywhere, so this is
 --     a hard error.
---   * OVERHANG — the tope is not entailed by the context but still overlaps it.
+--   * OVERHANG — the tope does not entail the context but still overlaps it.
 --     This is allowed and often intentional (splitting or restricting with an
 --     already-defined shape, whose faces live on the whole cube rather than being
---     relativised to the context), so we only emit a non-fatal hint.
+--     relativised to the context), so we only emit a non-fatal warning.
 --   * CONTAINED — the tope entails the context: nothing to report.
 checkTopeAgainstContext :: Distinct n => String -> TermT n -> TypeCheck n ()
 checkTopeAgainstContext what tope = do
@@ -944,13 +983,10 @@
           entailed <- checkTopeEntails tope   -- tope |- AND(accessible context)
           unless entailed $ do
             naming <- asks namingOfContext
-            traceTypeCheck Normal
-              (intercalate "\n" $
-                [ "Warning: " <> what <> " overhangs the local tope context"
-                , "  " <> ppTerm naming (untyped tope)
-                , "is not entailed by the local context (normalised)"
-                ] <> map (("  " <>) . ppTerm naming . untyped) topes)
-              (return ())
+            loc <- asks ctxLocation
+            recordCheckWarning $ OverhangWarning what
+              (ppTerm naming (untyped tope))
+              (map (ppTerm naming . untyped) topes) loc
 
 -- * Restrictions and η
 
@@ -1035,6 +1071,99 @@
 
 -- * Layers
 
+-- | The kind of a binder domain or of a term standing at type @U@. The
+-- layers a domain can inhabit are finer than type\/cube\/shape: the
+-- universes @CUBE@ and @TOPE@ and the tope-family kinds are all @U@-sorted
+-- today (a shipped convenience), so they look like types until inspected.
+-- This classification implements the layer discipline: the @#data@ checks
+-- in "Rzk.TypeCheck.Decl" decide what each declaration position may take,
+-- and 'ensureTypeAtU' rejects the universe kinds where an ordinary type is
+-- required (Σ components, identity carriers, type arguments), so that a
+-- cube- or tope-layer citizen cannot be stored as type-layer data by any
+-- direct spelling.
+data DomainKind
+  = DomainType
+    -- ^ an ordinary type (including @U@, families, extension types)
+  | DomainCubePoint
+    -- ^ a cube: the domain's sort is @CUBE@, as in @(t : 2)@
+  | DomainCubeUniverse
+    -- ^ @CUBE@ itself, as in @(I : CUBE)@
+  | DomainCubeFamily
+    -- ^ a function into @CUBE@, which is no parameter kind of the
+    -- meta-theoretic parameter layer
+  | DomainTopeUniverse
+    -- ^ @TOPE@ itself, a bare tope parameter, as in @(phi : TOPE)@
+  | DomainTopeFamily
+    -- ^ a tope family @{I | ψ} → TOPE@ (every Π-binder a cube or shape),
+    -- the Rzk paper's parameter kind
+  | DomainOtherTopeFamily
+    -- ^ a function into @TOPE@ over a non-cube domain — not the paper's kind
+  | DomainModalTope
+    -- ^ a modal type over @TOPE@ or a family into one (@ᵒᵖ TOPE@,
+    -- @I → ᵒᵖ TOPE@, …) or over @CUBE@ (@♭ CUBE@): a parameter kind of the
+    -- experimental modal layer (Π binders, @#assume@, @#data@ parameters),
+    -- closed in every other position
+
+-- | Classify an elaborated binder domain. Restricted binders (shapes) never
+-- reach this: callers dispatch on the binder's tope first.
+classifyDomain :: Distinct n => TermT n -> TypeCheck n DomainKind
+classifyDomain ty = typeOf ty >>= \case
+  UniverseCubeT{} -> pure DomainCubePoint
+  _ -> whnfT ty >>= \case
+    UniverseCubeT{} -> pure DomainCubeUniverse
+    UniverseTopeT{} -> pure DomainTopeUniverse
+    TypeModalT _ty _md inner -> classifyDomain inner >>= \case
+      DomainType      -> pure DomainType
+      DomainCubePoint -> pure DomainType   -- unreachable: @(x :_µ I)@ parses as a modal binder
+      _               -> pure DomainModalTope
+    TypeFunT _ty orig md param mtope ret -> do
+      cubeDom <- case mtope of
+        Just _  -> pure True
+        Nothing -> typeOf param >>= \case
+          UniverseCubeT{} -> pure True
+          _               -> pure False
+      inner <- inScope orig md param ret classifyDomain
+      pure $ case inner of
+        DomainTopeUniverse
+          | cubeDom   -> DomainTopeFamily
+          | otherwise -> DomainOtherTopeFamily
+        DomainTopeFamily
+          | cubeDom   -> DomainTopeFamily
+          | otherwise -> DomainOtherTopeFamily
+        DomainOtherTopeFamily -> DomainOtherTopeFamily
+        DomainModalTope       -> DomainModalTope
+        DomainCubeUniverse    -> DomainCubeFamily
+        DomainCubeFamily      -> DomainCubeFamily
+        _                     -> DomainType
+    _ -> pure DomainType
+
+-- | The printed name of a rejected kind, for error messages.
+domainKindName :: DomainKind -> String
+domainKindName = \case
+  DomainType            -> "a type"
+  DomainCubePoint       -> "a cube"
+  DomainCubeUniverse    -> "the cube universe"
+  DomainCubeFamily      -> "a cube family"
+  DomainTopeUniverse    -> "the tope universe"
+  DomainTopeFamily      -> "a tope family"
+  DomainOtherTopeFamily -> "a tope family over a non-cube domain"
+  DomainModalTope       -> "a modal cube or tope kind"
+
+-- | Reject a universe kind standing where an ordinary type is required.
+-- The check is on the weak head normal form, so a synonym
+-- (@#define A : U := TOPE@) meets the same rule as the spelled-out kind.
+-- This closes the /direct/ spellings only: a kind can still travel through
+-- a @U@-polymorphic definition (@(X : U) → …@ applied to @TOPE@ is caught
+-- at the application, but a kind reaching a variable another way is not),
+-- and the complete closure — the universe kinds leaving @U@ — is a
+-- separate, larger change.
+ensureTypeAtU :: Distinct n => String -> TermT n -> TypeCheck n ()
+ensureTypeAtU position t = classifyDomain t >>= \case
+  DomainType      -> pure ()
+  DomainCubePoint -> pure ()   -- cannot stand at type U; rejected by its sort
+  kind -> issueTypeError $ TypeErrorOther $
+    position <> " must be a type, got " <> domainKindName kind
+
 inCubeLayer :: Distinct n => TermT n -> TypeCheck n Bool
 inCubeLayer = \case
   RecBottomT{}    -> pure False
@@ -1175,17 +1304,15 @@
 
             LetT _ty _orig _mparam val body ->
               instantiate body val >>= whnfT
-            LetModT ty orig app inn mparam mmotive val body ->
-              (enterModality app $ whnfT val) >>= \case
-                ModAppT _ md t | md == inn -> do
-                  val' <- enterModality md $ whnfT t
+            LetModT ty orig app inn mparam mmotive val body -> do
+              b' <- enterModality app (whnfT val)
+              case valueUnderModal inn b' of
+                Just t -> do
+                  val' <- enterModality inn (whnfT t)
                   instantiate body val' >>= whnfT
-                b' | isRA inn -> do
-                  bty <- typeOf b' >>= \case
-                    TypeModalT _ _ t -> pure t
-                    _ -> panicImpossible "not modal in letmod"
-                  instantiate body (modExtractT bty app inn b') >>= whnfT
-                _ -> pure (LetModT ty orig app inn mparam mmotive val body)
+                Nothing -> extractModal app inn b' >>= \case
+                  Just v  -> instantiate body v >>= whnfT
+                  Nothing -> pure (LetModT ty orig app inn mparam mmotive val body)
             FirstT ty t ->
               whnfT t >>= \case
                 PairT _ l _r -> whnfT l
@@ -1292,7 +1419,7 @@
   -> [(TypeInfo (TermT n), TermT n)]  -- ^ the collected spine arguments
   -> TypeCheck n (Maybe (TermT n))
 tryDataElimStep (Var v) pairs = asks (varDataRole . lookupVarInfo v) >>= \case
-  Just (DataRole dataType numParams (DataElimKind numMethods numIndices _elimKind))
+  Just (DataRole dataType numParams (DataElimKind _md numMethods numIndices _elimKind))
     -- The spine is parameters, motive, methods, indices, scrutinee. The
     -- index arguments are dropped on a step: the scrutinee determines them.
     | (beforeIndices, rest) <- splitAt (numParams + 1 + numMethods) pairs
@@ -1374,9 +1501,12 @@
 applyWhnfFun :: Distinct n => TypeInfo (TermT n) -> TermT n -> TermT n -> TypeCheck n (TermT n)
 applyWhnfFun ty f' x = typeOf f' >>= \case
   TypeFunT _ty _orig md _param (Just tope) (ScopedAST _ UniverseTopeT{}) -> do
+    -- The application is marked as a normal form, so that normalising it again
+    -- does not insert the side condition again; its head must then be normal too.
+    f'' <- nfT f'
     x' <- enterModality md $ nfT x
     sideCondition <- instantiate tope x' >>= nfT
-    pure (topeAndT (AppT ty f' x') sideCondition)
+    pure (topeAndT (termIsNF (AppT ty f'' x')) sideCondition)
   -- FIXME: this seems to be a hack, and will not work in all
   -- situations! FIXME: for now, it seems to add ~2x slowdown
   TypeFunT info _orig md _param _mtope ret@(ScopedAST _ TypeRestrictedT{})
@@ -1502,69 +1632,52 @@
   TopeLEQT ty l r -> TopeLEQT ty <$> nfTope l <*> nfTope r
 
   TopeInvT ty t ->
-    -- Match And/Or on the *unnormalised* input: nfTope of a shape-restricted App
-    -- produces a TopeAnd via shape-side-condition propagation, and distributing
-    -- inv over that synthetic conjunction loops forever, because the recursive
-    -- topeInvT renormalises the same App back into a TopeAnd.
-    case t of
-      TopeTopT _ -> pure $ modAppT topeT Op topeTopT
-      TopeBottomT _ -> pure $ modAppT topeT Op topeBottomT
+    nfTope t >>= \case
+      TopeUninvT _ phi -> pure phi
+      TopeTopT _ -> pure (underOp topeTopT)
+      TopeBottomT _ -> pure (underOp topeBottomT)
       TopeLEQT _ x y -> invOf topeLEQT x y
       TopeEQT _ x y -> invOf topeEQT x y
-      TopeAndT _ phi psi -> nfTope $
-        modAppT (typeModalT universeT Op topeT) Op
-          (topeAndT
-            (modExtractT topeT Id Op (topeInvT phi))
-            (modExtractT topeT Id Op (topeInvT psi)))
-      TopeOrT _ phi psi -> nfTope $
-        modAppT (typeModalT universeT Op topeT) Op
-          (topeOrT
-            (modExtractT topeT Id Op (topeInvT phi))
-            (modExtractT topeT Id Op (topeInvT psi)))
-      _ ->
-        nfTope t >>= \case
-          TopeTopT _       -> pure topeTopT
-          TopeBottomT _    -> pure topeBottomT
-          TopeUninvT _ phi -> pure phi
-          TopeLEQT _ x y   -> invOf topeLEQT x y
-          TopeEQT _ x y    -> invOf topeEQT x y
-          t'               -> pure (TopeInvT ty t')
+      TopeAndT _ phi psi -> distribute topeAndT phi psi
+      TopeOrT _ phi psi -> distribute topeOrT phi psi
+      t' -> pure (TopeInvT ty t')
     where
+      underOp phi = modAppT (typeModalT universeT Op topeT) Op phi
+      extractInv phi = modExtractT topeT Id Op (topeInvT phi)
+      distribute mk phi psi =
+        nfTope (underOp (mk (extractInv phi) (extractInv psi)))
+
       invOf mk x y = do
         xTy <- typeOf x
         yTy <- typeOf y
-        nfTope $
-          modAppT (typeModalT universeT Op topeT) Op
-            (mk (modExtractT topeT Id Op (cubeFlipT xTy y))
-                (modExtractT topeT Id Op (cubeFlipT yTy x)))
+        nfTope $ underOp $
+          mk (modExtractT topeT Id Op (cubeFlipT xTy y))
+             (modExtractT topeT Id Op (cubeFlipT yTy x))
 
   TopeUninvT ty t ->
-    case t of
-      ModAppT _ Op inner -> case inner of
+    nfTope t >>= \case
+      TopeInvT _ phi -> pure phi
+      ModAppT _ Op inner -> uninvNF inner
+      t' -> pure (TopeUninvT ty t')
+    where
+      underOp phi = modAppT (typeModalT universeT Op topeT) Op phi
+
+      uninvNF inner = case inner of
         TopeTopT _ -> pure topeTopT
         TopeBottomT _ -> pure topeBottomT
-        TopeAndT _ phi psi ->
-          nfTope (topeAndT (topeUninvT phi) (topeUninvT psi))
-        TopeOrT _ phi psi ->
-          nfTope (topeOrT (topeUninvT phi) (topeUninvT psi))
-        _ ->
-          nfTope t >>= \case
-            TopeTopT _ -> pure topeTopT
-            TopeBottomT _ -> pure topeBottomT
-            TopeInvT _ phi -> pure phi
-            ModAppT _ Op inner'' -> case inner'' of
-              TopeLEQT _ x y -> uninvOf topeLEQT x y
-              TopeEQT _ x y -> uninvOf topeEQT x y
-              inner' ->
-                pure $ TopeUninvT ty
-                  (modAppT (typeModalT universeT Op topeT) Op inner')
-            t' -> pure (TopeUninvT ty t')
-      _ ->
-        nfTope t >>= \case
-          TopeInvT _ phi -> pure phi
-          t'@(ModAppT _ Op _) -> nfTope (TopeUninvT ty t')
-          t' -> pure (TopeUninvT ty t')
-    where
+        TopeAndT _ phi psi -> andNF <$> uninvNF phi <*> uninvNF psi
+        TopeOrT _ phi psi -> orNF <$> uninvNF phi <*> uninvNF psi
+        TopeLEQT _ x y -> uninvOf topeLEQT x y
+        TopeEQT _ x y -> uninvOf topeEQT x y
+        _ -> pure (TopeUninvT ty (underOp inner))
+
+      andNF TopeBottomT{} _ = topeBottomT
+      andNF _ TopeBottomT{} = topeBottomT
+      andNF l r             = topeAndT l r
+      orNF TopeBottomT{} r  = r
+      orNF l TopeBottomT{}  = l
+      orNF l r              = topeOrT l r
+
       uninvOf mk x y = do
         xTy <- typeOf x
         yTy <- typeOf y
@@ -1585,7 +1698,7 @@
         TypeFunT _ty _orig md _param (Just tope) (ScopedAST _ UniverseTopeT{}) -> do
           x' <- enterModality md $ nfTope x
           sideCondition <- instantiate tope x' >>= nfTope
-          pure (topeAndT (AppT ty f' x') sideCondition)
+          pure (topeAndT (termIsNF (AppT ty f' x')) sideCondition)
         _ -> AppT ty f' <$> nfTope x
 
   FirstT ty t ->
@@ -1614,22 +1727,17 @@
     (enterModality app $ nfTope b) >>= \case
       ModAppT _ md t | inn == md -> pure t
       b' -> pure $ ModExtractT ty app inn b'
-  LetModT ty orig app inn mparam mmotive val body ->
-    (enterModality app $ nfTope val) >>= \case
-      ModAppT _ md t | md == inn ->
-        instantiate body t >>= nfTope
-      b' | isRA inn -> do
-        bty <- typeOf b' >>= \case
-          TypeModalT _ _ t -> pure t
-          _ -> panicImpossible "not modal in letmod"
-        instantiate body (modExtractT bty app inn b') >>= nfTope
-      b' -> do
-        bty <- typeOf b' >>= \case
-          TypeModalT _ _ t -> pure t
-          _ -> panicImpossible "not modal in letmod"
-        val' <- enterModality app $ nfTope b'
-        body' <- underScope orig (comp app inn) bty Nothing body nfTope
-        pure (LetModT ty orig app inn mparam mmotive val' body')
+  LetModT ty orig app inn mparam mmotive val body -> do
+    b' <- enterModality app (nfTope val)
+    case valueUnderModal inn b' of
+      Just t -> instantiate body t >>= nfTope
+      Nothing -> extractModal app inn b' >>= \case
+        Just v -> instantiate body v >>= nfTope
+        Nothing -> do
+          bty <- requireTypeUnderModal inn b'
+          val' <- enterModality app (nfTope b')
+          body' <- underScope orig (comp app inn) bty Nothing body nfTope
+          pure (LetModT ty orig app inn mparam mmotive val' body')
 
   TypeModalT ty md inner -> TypeModalT ty md <$> (enterModality md $ nfTope inner)
   LetT _ty _orig _mparam val body -> instantiate body val >>= nfTope
@@ -1726,9 +1834,12 @@
               instantiate body x >>= nfT
             f' -> typeOf f' >>= \case
               TypeFunT _ty _orig md _param (Just tope) (ScopedAST _ UniverseTopeT{}) -> do
+                -- marked as a normal form, as in 'applyWhnfFun', so the head is
+                -- normalised too
+                f'' <- nfT f'
                 x' <- enterModality md $ nfT x
                 sideCondition <- instantiate tope x' >>= nfT
-                pure (topeAndT (AppT ty f' x') sideCondition)
+                pure (topeAndT (termIsNF (AppT ty f'' x')) sideCondition)
               _ -> do
                 -- The ι-redex of a generated eliminator only exists at the
                 -- node holding the full spine, which the recursion above
@@ -1739,23 +1850,19 @@
                   Nothing      -> AppT ty <$> nfT f' <*> nfT x
         LetT _ty _orig _mparam val body ->
           instantiate body val >>= nfT
-        LetModT ty orig app inn mparam mmotive val body ->
-          (enterModality app $ whnfT val) >>= \case
-            ModAppT _ md t | md == inn -> do
-              val' <- enterModality md $ nfT t
+        LetModT ty orig app inn mparam mmotive val body -> do
+          b' <- enterModality app (whnfT val)
+          case valueUnderModal inn b' of
+            Just t -> do
+              val' <- enterModality inn (nfT t)
               instantiate body val' >>= nfT
-            b' | isRA inn -> do
-              bty <- typeOf b' >>= \case
-                TypeModalT _ _ t -> pure t
-                _ -> panicImpossible "not modal in letmod"
-              instantiate body (modExtractT bty app inn b') >>= nfT
-            b' -> do
-              bty <- typeOf b' >>= \case
-                TypeModalT _ _ t -> pure t
-                _ -> panicImpossible "not modal in letmod"
-              val' <- enterModality app $ nfT b'
-              body' <- underScope orig (comp app inn) bty Nothing body nfT
-              pure (LetModT ty orig app inn mparam mmotive val' body')
+            Nothing -> extractModal app inn b' >>= \case
+              Just v -> instantiate body v >>= nfT
+              Nothing -> do
+                bty <- requireTypeUnderModal inn b'
+                val' <- enterModality app (nfT b')
+                body' <- underScope orig (comp app inn) bty Nothing body nfT
+                pure (LetModT ty orig app inn mparam mmotive val' body')
         LambdaT ty orig _mparam body ->
           case stripTypeRestrictions (infoType ty) of
             TypeFunT _ty _orig md param mtope _ret -> do
diff --git a/src/Rzk/TypeCheck/Fragment/RSTT.hs b/src/Rzk/TypeCheck/Fragment/RSTT.hs
new file mode 100644
--- /dev/null
+++ b/src/Rzk/TypeCheck/Fragment/RSTT.hs
@@ -0,0 +1,535 @@
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# LANGUAGE DataKinds           #-}
+{-# LANGUAGE FlexibleContexts    #-}
+{-# LANGUAGE GADTs               #-}
+{-# LANGUAGE LambdaCase          #-}
+{-# LANGUAGE OverloadedStrings   #-}
+{-# LANGUAGE PatternSynonyms     #-}
+{-# LANGUAGE RankNTypes          #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+
+-- | Diagnostics for declarations outside the RSTT fragment.
+--
+-- For RSTT, see Riehl and Shulman,
+-- <https://arxiv.org/abs/1705.07442 RS17> (2017), Figure 4 and Appendix A.2 for extension types.
+-- For the fragment conditions, see Kudasov, Sim and Ahrens,
+-- <https://arxiv.org/abs/2607.12207 KSA26> (2026), §5.
+--
+-- * Free-standing restrictions in assumptions, motives, and types passed as data.
+-- * Cube domains, shape conditions, and assumed boundaries depending on outer points.
+-- * Schematic variables bound inside terms below the parameter prefix.
+-- * Modal constructs, auxiliary intervals, and involutions.
+-- * Inductive constructors and eliminators.
+-- * Any syntax outside the explicit RSTT allow-list.
+--
+-- Free-standing restrictions along concluded codomains are allowed.
+-- Assumptions and postulates remain trusted; universe levels are not checked.
+module Rzk.TypeCheck.Fragment.RSTT (
+  fragmentHead,
+  recordFragmentUses,
+  recordSyntaxUses,
+) where
+
+import           Control.Applicative      ((<|>))
+import           Control.Monad            (forM_, unless, when)
+import           Control.Monad.Except     (catchError)
+import           Control.Monad.Reader     (asks, local)
+import           Data.Bifoldable          (bifoldMap)
+import           Data.List                (intercalate)
+import           Data.Maybe               (fromMaybe)
+import qualified Data.IntSet              as IntSet
+import qualified Control.Monad.Foil       as Foil
+
+import           Control.Monad.Foil       (Distinct)
+import           Control.Monad.Free.Foil  (AST (Node, Var), ScopedAST (..))
+
+import           Control.Monad.Free.Foil.Annotated (AnnSig (..))
+import           Language.Rzk.Foil.Names  (Binder, TModality (..),
+                                           TypeInfo (..), VarIdent, binderName)
+import           Language.Rzk.Foil.Syntax
+import           Rzk.TypeCheck.Context
+import           Rzk.TypeCheck.Display
+import           Rzk.TypeCheck.Eval
+import           Rzk.TypeCheck.Error
+import           Rzk.TypeCheck.MetaPrefix (isMetaType)
+import           Rzk.TypeCheck.Monad
+
+-- Distinguish concluded types, assumed types, and terms (including type-valued data).
+data CheckedPosition
+  = InTail
+  | InAssumption FragmentUse
+  | InTerm PrefixPosition
+
+-- A schematic argument may have its own parameter prefix.
+data PrefixPosition = InParameterPrefix | OutsideParameterPrefix
+  deriving (Eq)
+
+-- | Report restriction and schematic-binder violations in a declaration.
+-- Violations are errors when @rstt-safe = "error"@.
+recordFragmentUses
+  :: forall n. Distinct n
+  => VarIdent          -- ^ the declaration
+  -> TermT n           -- ^ its type
+  -> Maybe (TermT n)   -- ^ its value, for a definition
+  -> Bool              -- ^ does it supply an assumption rather than a proof?
+  -> TypeCheck n ()
+recordFragmentUses defName ty mval isAssumption = do
+  restrictions <- asks ctxWarnFreeStandingRestriction
+  binders <- asks ctxWarnMetaBinder
+  shapes <- asks ctxWarnShapeDependency
+  when (restrictions || binders || shapes) $
+    localVerbosity Silent $
+      forM_ [SourceTypes, ComputedTypes] $ \view ->
+        checkFragmentUses view defName ty mval isAssumption `catchError`
+          reportIncompleteRSTTCheck ("RSTT fragment check incomplete in " <> show defName)
+
+-- Keep source checks even when reduction discards an argument or annotation.
+data FragmentView = SourceTypes | ComputedTypes
+  deriving (Eq)
+
+checkFragmentUses
+  :: forall n. Distinct n
+  => FragmentView -> VarIdent -> TermT n -> Maybe (TermT n) -> Bool -> TypeCheck n ()
+checkFragmentUses view defName ty mval isAssumption = do
+  go (if isAssumption then InAssumption UseBinder else InTail) ty
+  mapM_ (go (InTerm InParameterPrefix)) mval
+  where
+    go :: forall l. Distinct l => CheckedPosition -> TermT l -> TypeCheck l ()
+    go (InTerm prefixPosition) t = goTerm prefixPosition t
+    go InTail t = goTail t
+    go (InAssumption use) t = goAssumed use t
+
+    expose :: forall l. Distinct l => TermT l -> TypeCheck l (TermT l)
+    expose = case view of
+      SourceTypes -> pure
+      ComputedTypes -> fragmentHead 256
+
+    -- Allow restrictions along the spine of concluded codomains.
+    goTail :: forall l. Distinct l => TermT l -> TypeCheck l ()
+    goTail original = expose original >>= \t -> case t of
+      TypeRestrictedT _ ty' rs -> do
+        goTail ty'
+        forM_ rs $ \(tope, term) -> do
+          goTerm OutsideParameterPrefix tope
+          goTerm OutsideParameterPrefix term
+      TypeFunT _ orig md param mtope ret -> do
+        checkShapeDependencies InTail t
+        goAssumed UseBinder param
+        checkDomain orig md param mtope
+        inScope orig md param ret goTail
+      RecOrT _ rs -> forM_ rs $ \(tope, term) -> do
+        goTerm OutsideParameterPrefix tope
+        goTail term
+      _ -> goAssumed UseConcluded t
+
+    -- Assumed restrictions must sit directly under a shape-Π.
+    goAssumed :: forall l. Distinct l => FragmentUse -> TermT l -> TypeCheck l ()
+    goAssumed = goAssumedAt OutsideParameterPrefix
+
+    goAssumedAt
+      :: forall l. Distinct l
+      => PrefixPosition -> FragmentUse -> TermT l -> TypeCheck l ()
+    goAssumedAt prefixPosition use original = expose original >>= \t -> case t of
+      TypeRestrictedT _ ty' rs -> do
+        reportFreeStanding use t
+        goAssumed use ty'
+        forM_ rs $ \(tope, term) -> do
+          goTerm OutsideParameterPrefix tope
+          goTerm OutsideParameterPrefix term
+      TypeFunT _ orig md param mtope ret -> do
+        checkShapeDependencies (InAssumption use) t
+        goAssumed UseBinder param
+        checkDomain orig md param mtope
+        shape <- isShapeBinder (maybe False (const True) mtope) param
+        inScope orig md param ret $
+          if shape then goExtCodomain use else goAssumed use
+      TypeSigmaT _ orig md a b -> do
+        goAssumed UseBinder a
+        inScope orig md a b (goAssumed use)
+      -- Identity-type arguments must be ext-style; endpoints remain terms.
+      TypeIdT _ a mtA b -> do
+        goTerm OutsideParameterPrefix a
+        mapM_ (goAssumed UseIdentity) mtA
+        goTerm OutsideParameterPrefix b
+      LambdaT info orig mparam body -> do
+        md <- case mparam of
+          Just (LambdaParam md param mtope) -> do
+            goAssumed UseBinder param
+            checkDomain orig md param mtope
+            when (prefixPosition == OutsideParameterPrefix) $ reportMetaBinder orig param
+            pure md
+          Nothing -> pure Id
+        dom <- binderType info mparam
+        inScope orig md dom body (goAssumedAt prefixPosition use)
+      -- recordSyntaxUses reports modal syntax; descend here for restriction checks.
+      TypeModalT _ _ ty' -> goAssumed use ty'
+      RecOrT _ rs -> forM_ rs $ \(tope, term) -> do
+        goTerm OutsideParameterPrefix tope
+        goAssumed use term
+      Var{} -> pure ()
+      _ -> goTerm OutsideParameterPrefix t
+
+    -- Direct shape codomains admit boundary clipping to the binder's domain.
+    goExtCodomain
+      :: forall l. Distinct l => FragmentUse -> TermT l -> TypeCheck l ()
+    goExtCodomain use original = expose original >>= \t -> case t of
+      TypeRestrictedT _ ty' rs -> do
+        goAssumed use ty'
+        forM_ rs $ \(face, term) -> do
+          goTerm OutsideParameterPrefix face
+          goTerm OutsideParameterPrefix term
+      _ -> goAssumed use t
+
+    -- Topes may contain applications with their own binders and assumed types.
+    checkDomain
+      :: forall l. Distinct l
+      => Binder -> TModality -> TermT l -> Maybe (ScopedTermT l) -> TypeCheck l ()
+    checkDomain orig md param =
+      mapM_ (\tope -> inScope orig md param tope (goTerm OutsideParameterPrefix))
+
+    -- RS17 Appendix A.2 requires shapes independent of ambient cube points.
+    -- Schematic families are judgements over cube contexts, not extension types.
+    checkShapeDependencies :: forall l. Distinct l => CheckedPosition -> TermT l -> TypeCheck l ()
+    checkShapeDependencies position t = do
+      enabled <- asks ctxWarnShapeDependency
+      when enabled $ case t of
+        TypeFunT _ orig md param mtope ret -> do
+          schematic <- isMetaType t
+          shape <- isShapeBinder (maybe False (const True) mtope) param
+          when shape $ do
+            scope <- asks ctxScope
+            let check :: forall k. Distinct k => Foil.Name k -> TermT k -> TermT k -> TypeCheck k ()
+                check point cube original = do
+                  reportShapeDependency "cube domain" point cube
+                  unless schematic $ expose original >>= \body -> case (position, body) of
+                    (InAssumption _, TypeRestrictedT _ _ rs) ->
+                      forM_ rs $ \(face, _) -> reportShapeDependency "restriction boundary" point face
+                    _ -> pure ()
+            case mtope of
+              Nothing -> withScopedT scope ret $ \binder body ->
+                underBinder binder orig md param Nothing $ check (Foil.nameOf binder) (Foil.sink param) body
+              Just tope -> withScopedT2 scope tope ret $ \binder domain body ->
+                underBinder binder orig md param Nothing $ do
+                  unless schematic $
+                    reportShapeDependency "shape domain" (Foil.nameOf binder) domain
+                  check (Foil.nameOf binder) (Foil.sink param) body
+        _ -> pure ()
+
+    reportShapeDependency
+      :: forall l. Distinct l => String -> Foil.Name l -> TermT l -> TypeCheck l ()
+    reportShapeDependency what point tope = do
+      points <- outerPoints point tope
+      unless (null points) $ do
+        naming <- asks namingOfContext
+        loc <- asks ctxLocation
+        let render = ppTerm naming . untyped
+        recordCheckWarning $ RSTTScopeWarning RSTTShapeDependency
+          ("context-dependent " <> what <> " " <> render tope
+            <> " (outer cube points: " <> intercalate ", " (map (render . Var) points)
+            <> "; in " <> show defName <> ")") loc
+
+    -- Follow aliases and variable types without reducing away dependencies.
+    outerPoints :: forall l. Distinct l => Foil.Name l -> TermT l -> TypeCheck l [Foil.Name l]
+    outerPoints point t = go (IntSet.singleton (Foil.nameId point)) (freeVarsOfTermT t)
+      where
+        go _ [] = pure []
+        go seen (v : vs)
+          | Foil.nameId v `IntSet.member` seen = go seen vs
+          | otherwise = do
+              ty <- typeOfVar v
+              value <- valueOfVar v
+              cube <- typeOfUncomputed ty >>= whnfT
+              let here = case (value, cube) of
+                    (Nothing, UniverseCubeT{}) -> [v]
+                    _ -> []
+                  dependencies = freeVarsOfTermT ty <> foldMap freeVarsOfTermT value
+              rest <- go (IntSet.insert (Foil.nameId v) seen) (dependencies <> vs)
+              pure (here <> rest)
+
+    -- Check term binders and route type-valued bodies through goData.
+    goTerm :: forall l. Distinct l => PrefixPosition -> TermT l -> TypeCheck l ()
+    goTerm InParameterPrefix t | not (isLambda t) = goDataAt InParameterPrefix t
+    goTerm prefixPosition t = case t of
+      Var{} -> pure ()
+
+      -- Function types returned by lets or branches still introduce shapes.
+      TypeFunT{} -> goAssumed UseData t
+
+      -- The stored type is synthesised by elaboration; it is not assumed.
+      ReflT _ mx -> forM_ mx $ \(x, _mxty) -> goTerm OutsideParameterPrefix x
+
+      TypeAscT _ term' ty' -> do
+        goTerm OutsideParameterPrefix term'
+        goTail ty'
+
+      LambdaT info orig mparam body -> do
+        checkShapeDependencies InTail (infoType info)
+        md <- case mparam of
+          Just (LambdaParam md param mtope) -> do
+            goAssumed UseBinder param
+            checkDomain orig md param mtope
+            when (prefixPosition == OutsideParameterPrefix) $ reportMetaBinder orig param
+            pure md
+          Nothing -> pure Id
+        dom <- binderType info mparam
+        inScope orig md dom body (goTerm prefixPosition)
+
+      AppT{} -> do
+        let (h, args) = collectSpine t []
+        goTerm OutsideParameterPrefix h
+        forM_ args $ \(fnode, arg) -> do
+          -- Substitution can create a forbidden type in a later argument domain.
+          when (view == ComputedTypes) $
+            typeOfUncomputed fnode >>= funDomain >>= mapM_ (goAssumed UseBinder)
+          -- Schema arguments may bind their own schematic parameters.
+          plumbing <- domainIsMeta fnode
+          if plumbing then goTerm InParameterPrefix arg else goData arg
+
+      -- The motive is assumed: the eliminator binds its variables at it.
+      IdJT _ tA a tC d x p -> do
+        goData tA
+        goTerm OutsideParameterPrefix a
+        goAssumed UseMotive tC
+        goTerm OutsideParameterPrefix d
+        goTerm OutsideParameterPrefix x
+        goTerm OutsideParameterPrefix p
+
+      -- Preserve prefix status for parameters bound after a schematic split.
+      MatchT _ _md scrut mmotive branches -> do
+        goTerm OutsideParameterPrefix scrut
+        mapM_ (goAssumed UseMotive) mmotive
+        forM_ branches $ \(_con, branch) -> goTerm prefixPosition branch
+
+      PairT _ l r -> do
+        goData l
+        goData r
+
+      -- The let annotation records the value's concluded type.
+      LetT _ orig manno value body -> do
+        mapM_ goTail manno
+        goData value
+        let dom = fromMaybe universeT (manno <|> valueType value)
+        inScopeWith orig Id dom (Just value) body (goTerm OutsideParameterPrefix)
+
+      LetModT _ orig _nu mu manno mmotive value body -> do
+        mapM_ goTail manno
+        mapM_ (goAssumed UseMotive) mmotive
+        goData value
+        inScope orig mu (fromMaybe universeT (manno <|> valueType value)) body
+          (goTerm OutsideParameterPrefix)
+
+      Node (AnnSig _ f) ->
+        mapM_ (goTerm OutsideParameterPrefix) (bifoldMap (const []) (:[]) f)
+
+    -- Type-valued data may later become binder or motive types. A proof
+    -- quantified over a universe must still be walked as a term.
+    goData :: forall l. Distinct l => TermT l -> TypeCheck l ()
+    goData = goDataAt OutsideParameterPrefix
+
+    goDataAt :: forall l. Distinct l => PrefixPosition -> TermT l -> TypeCheck l ()
+    goDataAt prefixPosition t = do
+      isType <- landsInUniverse t
+      if isType then goAssumedAt prefixPosition UseData t else goTerm OutsideParameterPrefix t
+
+    isLambda :: forall l. TermT l -> Bool
+    isLambda LambdaT{} = True
+    isLambda _         = False
+
+    valueType :: forall l. TermT l -> Maybe (TermT l)
+    valueType value = infoType <$> typeInfoOf value
+
+    binderType
+      :: forall l. Distinct l
+      => TypeInfo (TermT l) -> Maybe (LambdaParam (ScopedTermT l) (TermT l))
+      -> TypeCheck l (TermT l)
+    binderType _info (Just (LambdaParam _ param _mtope)) = pure param
+    binderType info Nothing = fromMaybe universeT <$> funDomain (infoType info)
+
+    -- A cube domain without a tope denotes the unrestricted shape.
+    isShapeBinder :: forall l. Distinct l => Bool -> TermT l -> TypeCheck l Bool
+    isShapeBinder True _ = pure True
+    isShapeBinder False param =
+      typeOfUncomputed param >>= whnfT >>= \case
+        UniverseCubeT{} -> pure True
+        _               -> pure False
+
+    -- Is the Π-domain of this function node schematic?
+    domainIsMeta :: forall l. Distinct l => TermT l -> TypeCheck l Bool
+    domainIsMeta f = do
+      tf <- typeOfUncomputed f
+      whnfT (stripTypeRestrictions tf) >>= \case
+        TypeFunT _ _ _ dom _ _ -> isMetaType dom
+        _                      -> pure False
+
+    -- Recognise types and type families by their final codomain.
+    landsInUniverse :: forall l. Distinct l => TermT l -> TypeCheck l Bool
+    landsInUniverse t =
+      typeOfUncomputed t >>= go
+      where
+        go :: forall k. Distinct k => TermT k -> TypeCheck k Bool
+        go ty = whnfT (stripTypeRestrictions ty) >>= \case
+          UniverseT{}     -> pure True
+          UniverseCubeT{} -> pure True
+          UniverseTopeT{} -> pure True
+          TypeFunT _ orig md param _mtope ret -> inScope orig md param ret go
+          _               -> pure False
+
+    funDomain :: forall l. Distinct l => TermT l -> TypeCheck l (Maybe (TermT l))
+    funDomain tf =
+      whnfT (stripTypeRestrictions tf) >>= \case
+        TypeFunT _ _ _ dom _ _ -> pure (Just dom)
+        _                      -> pure Nothing
+
+    reportMetaBinder :: forall l. Distinct l => Binder -> TermT l -> TypeCheck l ()
+    reportMetaBinder orig param = do
+      enabled <- asks ctxWarnMetaBinder
+      when enabled $ do
+        meta <- isMetaType param
+        when meta $ do
+          naming <- asks namingOfContext
+          loc <- asks ctxLocation
+          recordCheckWarning $ MetaBinderWarning
+            defName
+            (fromMaybe "_" (binderName orig))
+            (ppTerm naming (untyped param))
+            loc
+
+    reportFreeStanding :: forall l. Distinct l => FragmentUse -> TermT l -> TypeCheck l ()
+    reportFreeStanding use t = do
+      enabled <- asks ctxWarnFreeStandingRestriction
+      when enabled $ do
+        naming <- asks namingOfContext
+        loc <- asks ctxLocation
+        recordCheckWarning $
+          FreeStandingRestrictionWarning defName (ppTerm naming (untyped t)) use loc
+
+-- Expose type constructors without consulting cached normal forms or simplifying
+-- their guards. Keep this reducer in step with the object-level rules in Eval.
+fragmentHead :: Distinct n => Int -> TermT n -> TypeCheck n (TermT n)
+fragmentHead fuel t
+  | fuel <= 0 = issueTypeError (TypeErrorOther "RSTT fragment reduction limit reached")
+  | otherwise = case t of
+      Var v -> valueOfVar v >>= maybe (neutral t) step
+      AppT info f x -> step f >>= \case
+        LambdaT _ _ _ body -> instantiate body x >>= step
+        f' -> neutral (AppT info f' x)
+      LetT _ _ _ value body -> instantiate body value >>= step
+      TypeAscT _ value _ -> step value
+      FirstT info pair -> step pair >>= \case
+        PairT _ a _ -> step a
+        pair' -> neutral (FirstT info pair')
+      SecondT info pair -> step pair >>= \case
+        PairT _ _ b -> step b
+        pair' -> neutral (SecondT info pair')
+      IdJT info a x motive d y proof -> step proof >>= \case
+        ReflT{} -> step d
+        proof' -> neutral (IdJT info a x motive d y proof')
+      RecOrT _ rs -> firstMatching rs >>= maybe (pure t) step
+      -- In particular, stop at TypeRestrictedT before reducing its topes.
+      _ -> pure t
+  where
+    step = fragmentHead (fuel - 1)
+    neutral term = do
+      ty <- typeOfUncomputed term >>= step
+      tryRestriction ty >>= maybe (pure term) step
+
+-- TODO: Share this application-spine helper with MetaPrefix in the syntax layer.
+collectSpine :: TermT n -> [(TermT n, TermT n)] -> (TermT n, [(TermT n, TermT n)])
+collectSpine (AppT _ f x) acc = collectSpine f ((f, x) : acc)
+collectSpine h acc            = (h, acc)
+
+-- | Check explicit syntax before typechecking erases source positions and sugars.
+-- Report each outermost forbidden node at its nearest available source position.
+recordSyntaxUses :: forall n. Distinct n => Term n -> TypeCheck n ()
+recordSyntaxUses term = do
+  enabled <- asks rsttSafeEnabled
+  when enabled $ do
+    roles <- mapM (\v -> (,) (Foil.nameId v) <$> infoOfVar varDataRole v)
+      (freeVarsOfTerm term)
+    let inductive = IntSet.fromList [v | (v, Just _) <- roles]
+    loc <- asks ctxLocation
+    forM_ (go inductive loc term) $ \warning ->
+      local (\ctx -> ctx { ctxLocation = warningLocation warning }) $
+        recordCheckWarning warning
+  where
+    -- Free names retain their identities under binders; bound names are fresh.
+    go :: forall l. IntSet.IntSet -> Maybe LocationInfo -> Term l -> [CheckWarning]
+    go inductive loc (Var v)
+      | Foil.nameId v `IntSet.member` inductive =
+          [RSTTScopeWarning RSTTInductive "inductive constructor or eliminator" loc]
+      | otherwise = []
+    go inductive loc t@(Node (AnnSig _ sig)) =
+      let here = case positionOfTerm t of
+            Nothing -> loc
+            Just pos -> atPosition pos <$> loc
+      in if allowedNode sig
+        then bifoldMap (\(ScopedAST _ body) -> go inductive here body)
+                       (go inductive here) sig
+        else let (extension, feature) = syntaxExtension sig
+             in [RSTTScopeWarning extension feature here]
+
+-- New constructors are forbidden until explicitly admitted here.
+allowedNode :: TermSig scope term -> Bool
+allowedNode = \case
+  UniverseF -> True
+  UniverseCubeF -> True
+  UniverseTopeF -> True
+  CubeUnitF -> True
+  CubeUnitStarF -> True
+  Cube2F -> True
+  Cube2_0F -> True
+  Cube2_1F -> True
+  CubeProductF{} -> True
+  TopeTopF -> True
+  TopeBottomF -> True
+  TopeEQF{} -> True
+  TopeLEQF{} -> True
+  TopeAndF{} -> True
+  TopeOrF{} -> True
+  RecBottomF -> True
+  RecOrF{} -> True
+  TypeFunF _ Id _ _ _ -> True
+  TypeSigmaF _ Id _ _ -> True
+  TypeIdF{} -> True
+  AppF{} -> True
+  LetF{} -> True
+  LambdaF _ Nothing _ -> True
+  LambdaF _ (Just (LambdaParam Id _ _)) _ -> True
+  PairF{} -> True
+  FirstF{} -> True
+  SecondF{} -> True
+  ReflF{} -> True
+  IdJF{} -> True
+  UnitF -> True
+  TypeUnitF -> True
+  TypeAscF{} -> True
+  TypeRestrictedF{} -> True
+  -- Hole checking also handles unresolved identifiers and unfinished obligations.
+  HoleF{} -> True
+  _ -> False
+
+-- Classification improves diagnostics; it never grants admission.
+syntaxExtension :: TermSig scope term -> (RSTTExtension, String)
+syntaxExtension = \case
+  TypeFunF{} -> modal "modal function binder"
+  TypeSigmaF{} -> modal "modal pair binder"
+  LambdaF{} -> modal "modal lambda binder"
+  TypeModalF{} -> modal "modal type"
+  ModAppF{} -> modal "modal introduction"
+  ModExtractF{} -> modal "modal extraction"
+  LetModF{} -> modal "modal let binding"
+  CubeIF -> interval "auxiliary interval II"
+  CubeI_0F -> interval "auxiliary interval endpoint 0_I"
+  CubeI_1F -> interval "auxiliary interval endpoint 1_I"
+  CubeFlipF{} -> interval "interval flip"
+  CubeUnflipF{} -> interval "interval unflip"
+  TopeInvF{} -> interval "tope involution"
+  TopeUninvF{} -> interval "inverse tope involution"
+  MatchF{} -> (RSTTInductive, "inductive match")
+  MatchArmF{} -> (RSTTInductive, "inductive match arm")
+  CubeSupF{} -> (RSTTUnsupported, "cube supremum (sup)")
+  CubeInfF{} -> (RSTTUnsupported, "cube infimum (inf)")
+  _ -> (RSTTUnsupported, "unrecognised syntax")
+  where
+    modal = (,) RSTTModal
+    interval = (,) RSTTInterval
diff --git a/src/Rzk/TypeCheck/Judgements.hs b/src/Rzk/TypeCheck/Judgements.hs
--- a/src/Rzk/TypeCheck/Judgements.hs
+++ b/src/Rzk/TypeCheck/Judgements.hs
@@ -135,10 +135,13 @@
   pure $ map snd $ sortOn fst
     [ (order, (v, role))
     | v <- ctxBound ctx
-    , Just role@(DataRole d' _ (DataElimKind _ _ elimKind)) <-
+    , Just role@(DataRole d' _ (DataElimKind md _ _ elimKind)) <-
         [varDataRole (lookupVarInfo v ctx)]
     , Foil.nameId d' == Foil.nameId d
-    , let order = case elimKind of ElimInd -> 0 :: Int; ElimRec -> 1
+    , let modalOrder = case md of
+            Id -> 0 :: Int; Op -> 1; Flat -> 2; Sharp -> 3
+          elimOrder = case elimKind of ElimInd -> 0 :: Int; ElimRec -> 1
+          order = modalOrder * 2 + elimOrder
     ]
 
 -- | A term of the given type built as λ-binders over a single typed hole
@@ -173,7 +176,7 @@
   => Context n -> Set.Set VarIdent -> Foil.Scope n
   -> Int -> [Foil.Name n] -> TermT n -> TermT n
 matchHoleOf ctx taken scope numParams cons term =
-  MatchT anyInfo term Nothing
+  MatchT anyInfo Id term Nothing
     [ (name, armChain scope (branchBinders c))
     | c <- cons
     , Just name <- [binderName (varOrig (lookupVarInfo c ctx))]
@@ -392,7 +395,7 @@
                   applyPlan atMotive
                     (Just motive : replicate numMethods Nothing
                       <> map Just indexArgs <> [Just term]))
-              | (e, DataRole _ numParams (DataElimKind numMethods _numIndices _)) <- elims ]
+              | (e, DataRole _ numParams (DataElimKind Id numMethods _numIndices _)) <- elims ]
         pure (matchMoves <> elimSpines)
       _ -> pure []
 
@@ -474,15 +477,18 @@
 --   * an identity type by @refl@, but only when its two endpoints already agree
 --     (otherwise @refl@ would not typecheck);
 --   * the unit type by @unit@;
+--   * the directed interval by either endpoint, and the unit cube by its point;
+--   * the type universe by type formers and declared datatypes;
+--   * a datatype by constructors whose result type fits the goal;
 --   * the tope universe by each tope constructor — @TOP@, @BOT@, @? ≡ ?@, @? ≤ ?@,
 --     @? ∧ ?@, @? ∨ ?@ — so a shape (a hole of type @TOPE@) can be built up by
 --     tapping.
 --
--- Unlike 'allEliminationsInto' this does not search: a type has at most one
--- introduction form (the tope universe is the one exception), read off its head
--- constructor. Outer restrictions are stripped first, so an extension type is
--- introduced by the form of its underlying type (its boundary is met by later
--- refinement of the holes, not by the choice of constructor).
+-- The goal's head determines the forms offered: usually one for an ordinary
+-- type former, but several for the directed interval, universes, and datatypes.
+-- Datatype constructors are filtered by whether their result type fits the goal.
+-- Outer restrictions are stripped; their boundaries are met when the holes
+-- are filled.
 --
 -- The λ binder of a Π-introduction is freshened against the names already visible
 -- at the hole, so introducing over a type whose own definition reuses an in-scope
@@ -779,7 +785,7 @@
       isUnitBinder BinderUnit = True
       isUnitBinder _          = False
   cubeFlags <- mapM (fmap isCubeType . whnfT . varType . snd) shownLocals
-  topes     <- asks (filter (not . eqT topeTopT) . availableTopes)
+  topes     <- asks (filter (not . eqT topeTopT . tTope) . ctxTopes)
   loc       <- asks ctxLocation
   naming    <- asks namingOfContext
 
@@ -845,7 +851,14 @@
       entryName v = case displayOf naming v of
         (_, binder) | binderIsCompound binder -> binderDisplayName binder
         (x, _)                                -> x
-      entries = [ HoleEntry (entryName v) (render (varType info)) | (v, info) <- shownLocals ]
+      entries =
+        [ HoleEntry (entryName v) (render (varType info))
+            (HoleModalInfo
+              (varModality info)
+              (varModAccum info)
+              (isVarAccessible info))
+        | (v, info) <- shownLocals
+        ]
       flagged = zip cubeFlags entries
 
   -- The goal shape, rendered under the shape's own binder. The name is read back
@@ -878,7 +891,11 @@
     , holeGoalShape     = goalShape
     , holeTermVars      = [ e | (False, e) <- flagged ]
     , holeCubeVars      = [ e | (True,  e) <- flagged ]
-    , holeTopes         = map render topes
+    , holeTopes         =
+        [ HoleTopeEntry (render (tTope tope))
+            (HoleModalInfo (tModVar tope) (tModAccum tope) (isAccessible tope))
+        | tope <- topes
+        ]
     , holeCandidates    = candidateMoves
     , holeIntroductions = introductionMoves
     , holeDiagram       = diagram
@@ -997,7 +1014,8 @@
 
               Just (LambdaParam md param Nothing) -> do
                 when (md /= md') $
-                  issueTypeError (TypeErrorModalityMismatch md' md term)
+                  issueTypeError (TypeErrorModalityMismatch
+                    (MismatchLambdaParameter orig) md' md (Just term))
                 paramType <- enterModality md $ infer param
                 -- an argument can be a shape, which is a function into TOPE; the
                 -- domain is then its cube, and its tope is the λ's shape tope.
@@ -1013,13 +1031,15 @@
                   Just _ ->
                     withBinder orig md param' $ \binder -> do
                       -- eta expand the shape into a tope over the bound variable
-                      let etaTope = appT topeT (Foil.sink paramType) (Var (Foil.nameOf binder))
+                      let etaTope = modalizeTope md $
+                            appT topeT (Foil.sink paramType) (Var (Foil.nameOf binder))
                       expected <- maybe (pure topeTopT) (openScoped binder) mtope'
                       unifyTerms expected etaTope
 
               Just (LambdaParam md param (Just tope)) -> do
                 when (md /= md') $
-                  issueTypeError (TypeErrorModalityMismatch md' md term)
+                  issueTypeError (TypeErrorModalityMismatch
+                    (MismatchLambdaParameter orig) md' md (Just term))
                 param'' <- enterModality md $ typecheck param =<< typeOf param'
                 unifyTerms param' param''
                 mapM_ checkNameShadowing (binderLeaves orig)
@@ -1029,11 +1049,36 @@
                   unifyTerms expected tope''
 
             mapM_ checkNameShadowing (binderLeaves orig)
+            naming <- asks namingOfContext
             body' <- elaborateUnder orig md' param' Nothing body $ \binder bodyTerm -> do
               mtopeIn <- traverse (openScoped binder) mtope'
               maybe id localTope mtopeIn $ do
                 retIn <- openScoped binder ret
-                typecheck bodyTerm retIn
+                bodyIn <- typecheck bodyTerm retIn
+                -- A tope family checked against @{t : I | ψ} → TOPE@ carries its
+                -- domain: the body becomes @ψ t ∧ φ t@. The checker reads an applied
+                -- family variable together with its domain (see 'applyWhnfFun'), so a
+                -- concrete family must satisfy the domain as well, or the two readings
+                -- disagree (regression: ill-tope-family-domain-non-instance). The
+                -- conjunct is omitted when the body already entails the domain;
+                -- otherwise the checked family differs from the written one,
+                -- which is reported as a warning.
+                case (retIn, mtopeIn) of
+                  (UniverseTopeT{}, Just domainIn) -> do
+                    bodyNF <- nfT bodyIn
+                    domainNF <- nfT domainIn
+                    included <- [plainTope bodyNF] `entailM` domainNF
+                    if included then pure bodyIn else do
+                      warn <- asks ctxWarnTopeFamilyDomain
+                      when warn $ do
+                        namingIn <- asks namingOfContext
+                        loc <- asks ctxLocation
+                        recordCheckWarning $ TopeFamilyDomainWarning
+                          (ppTerm naming term)
+                          (ppTerm namingIn (untyped domainNF))
+                          loc
+                      pure (topeAndT domainIn bodyIn)
+                  _ -> pure bodyIn
             return (lambdaT ty' orig (Just (LambdaParam md' param' mtope')) body')
 
           _ -> issueTypeError $ TypeErrorUnexpectedLambda term ty
@@ -1060,16 +1105,16 @@
             bindType' <- infer bindType
             bindUniv <- typeOf bindType'
             enterModality app $ typecheck val (typeModalT bindUniv inn bindType')
-        bindTy <- typeOf val' >>= \case
-          o@(TypeModalT _ty md t) ->
-            if md == inn
-              then return t
-              else issueTypeError $ TypeErrorNotModal (untyped o) inn val'
-          o -> issueTypeError $ TypeErrorNotModal (untyped o) inn val'
-        bindVal <- whnfT val' >>= \case
-          ModAppT _ty _m t -> pure (Just t)
-          o | isRA inn -> pure (Just (modExtractT bindTy app inn o))
-          _ -> pure Nothing
+        valTy <- typeOf val'
+        bindTy <- case stripTypeRestrictions valTy of
+          TypeModalT _ty md t
+            | md == inn -> pure t
+            | otherwise -> issueTypeError $ TypeErrorModalityMismatch
+                MismatchModalElimination inn md (Just val)
+          _ -> issueTypeError $
+            TypeErrorNotModal ModalTypeForElimination val inn valTy
+        o <- whnfT val'
+        bindVal <- maybe (extractModal app inn o) (pure . Just) (valueUnderModal inn o)
         body' <- elaborateUnder orig (comp app inn) bindTy bindVal body $ \_binder bodyTerm ->
           typecheck bodyTerm (Foil.sink ty')
         return (letModT ty' orig app inn (Just bindTy) Nothing val' body')
@@ -1082,6 +1127,9 @@
             return (pairT ty' l' r')
           TypeSigmaT _ty _orig md a b -> do
             l' <- enterModality md $ typecheck l a
+            whnfT a >>= \case
+              UniverseT{} -> ensureTypeAtU "a pair component at type U" l'
+              _           -> pure ()
             bAt <- instantiate b l'
             r' <- typecheck r bAt
             return (pairT ty' l' r')
@@ -1108,10 +1156,12 @@
       ModApp md body -> case ty' of
         TypeModalT _ty md' tpe -> do
           when (md /= md') $ issueTypeError $
-            TypeErrorModalityMismatch md' md term
+            TypeErrorModalityMismatch
+              MismatchModalIntroduction md' md (Just term)
           body' <- enterModality md $ typecheck body tpe
           return $ modAppT ty' md body'
-        _ -> issueTypeError $ TypeErrorNotModal term md ty'
+        _ -> issueTypeError $
+          TypeErrorNotModal ModalTypeForIntroduction term md ty'
 
       -- In checking position the common type is already known, so we push it into
       -- every branch instead of inferring each one and unifying. This is what lets a
@@ -1125,7 +1175,7 @@
           TypeErrorOther "a recOR cannot be used as a tope"
         _ -> checkRecOrAgainst ty' rs
 
-      Match scrut mmotive branches -> checkMatch term scrut mmotive branches (Just ty')
+      Match md scrut mmotive branches -> checkMatch term md scrut mmotive branches (Just ty')
 
       -- A neutral term is inferred, then its type unified with the expected one. In
       -- lenient (hole-checking) mode a term that still carries an unfilled hole is a
@@ -1169,18 +1219,25 @@
 checkMatch
   :: Distinct n
   => Term n                 -- ^ the whole match, for error messages
+  -> TModality
   -> Term n                 -- ^ the scrutinee
   -> Maybe (Term n)         -- ^ the @into@ motive, if written
   -> [(VarIdent, Term n)]   -- ^ branches: constructor name, arm chain
   -> Maybe (TermT n)        -- ^ the goal, in checking position
   -> TypeCheck n (TermT n)
-checkMatch term scrut mmotive branches mgoal = do
-  scrut' <- infer scrut
+checkMatch term matchMd scrut mmotive branches mgoal = do
+  scrut' <- enterModality matchMd $ infer scrut
   scrutTy <- stripTypeRestrictions <$> (typeOf scrut' >>= whnfT)
   d <- case collectAppSpine scrutTy of
     (Var d, _) -> pure d
     _          -> issueTypeError (TypeErrorMatchScrutineeNotData scrut' scrutTy)
   elims <- dataEliminatorsOf d
+  ctx <- ask
+  cons <- dataConstructorsOf d
+  let hasPathConstructor = any isPathConstructor cons
+      isPathConstructor c = case varDataRole (lookupVarInfo c ctx) of
+        Just (DataRole _ _ (DataConKind PathCon _ _ _)) -> True
+        _                                                -> False
   -- The eliminator to elaborate into: @ind-D@ when the motive genuinely
   -- depends on the scrutinee (an @into@ motive, or a variable scrutinee
   -- occurring in the goal); @rec-D@ otherwise. The choice matters for path
@@ -1197,16 +1254,23 @@
         MatchRec   -> ElimRec
         MatchInd{} -> ElimInd
   (e, numParams) <- case
-      [ er | er@(_, DataRole _ _ (DataElimKind _ _ ek)) <- elims, ek == wantedKind ] of
+      [ er
+      | er@(_, DataRole _ _ (DataElimKind md _ _ ek)) <- elims
+      , md == matchMd
+      , ek == wantedKind ] of
     (e, DataRole _ numParams _) : _ -> pure (e, numParams)
+    [] | matchMd == Sharp ->
+      issueTypeError $ TypeErrorOther
+        "modal match is not supported for ♯: ♯ does not preserve coproducts or recursion"
+    [] | matchMd /= Id && hasPathConstructor ->
+      issueTypeError $ TypeErrorOther
+        "modal match is not supported for higher inductive types"
     [] -> issueTypeError (TypeErrorMatchScrutineeNotData scrut' scrutTy)
   let dargs = case collectAppSpine scrutTy of
         (_, args) -> map snd args
       (paramArgs, indexArgs) = splitAt numParams dargs
 
   -- The bijection between branches and constructors, with per-branch arity.
-  ctx <- ask
-  cons <- dataConstructorsOf d
   let conIdent c = case binderName (varOrig (lookupVarInfo c ctx)) of
         Just x  -> x
         Nothing -> panicImpossible "a constructor entry with no name"
@@ -1236,19 +1300,15 @@
   -- The spine: parameters, motive, methods (each branch checked against its
   -- method's Π-type), indices, scrutinee.
   atParams <- applyPlan (Var e) (map Just paramArgs)
+  scope <- asks ctxScope
+  motiveTy <- typeOf atParams >>= whnfT >>= \case
+    TypeFunT _ _ _ ty _ _ -> pure ty
+    _ -> panicImpossible "an eliminator's type has no motive parameter"
   motive' <- case mmotive of
-    Just motive -> do
-      motiveTy <- typeOf atParams >>= whnfT >>= \case
-        TypeFunT _ _ _ mty _ _ -> pure mty
-        _ -> panicImpossible "an eliminator's type has no motive parameter"
-      typecheck motive motiveTy
+    Just motive -> typecheck motive motiveTy
     Nothing -> case mgoal of
       Nothing -> issueTypeError (TypeErrorMatchCannotInfer term)
       Just goal -> do
-        motiveTy <- typeOf atParams >>= whnfT >>= \case
-          TypeFunT _ _ _ mty _ _ -> pure mty
-          _ -> panicImpossible "an eliminator's type has no motive parameter"
-        scope <- asks ctxScope
         -- Under @rec-D@ the motive type has no scrutinee binder, so there
         -- is nothing to substitute (and the goal does not mention the
         -- scrutinee variable anyway — that is what chose @rec-D@). The
@@ -1285,7 +1345,9 @@
 -- of the method's Π-type, and the elaborated arm becomes the method's λ under
 -- the same binder. Holes inside the branch body therefore see the branch
 -- binders as ordinary hypotheses, under the user's names.
-checkMatchArms :: Distinct n => Term n -> TermT n -> TypeCheck n (TermT n)
+checkMatchArms
+  :: Distinct n
+  => Term n -> TermT n -> TypeCheck n (TermT n)
 checkMatchArms (MatchArm orig scoped) ty = whnfT ty >>= \case
   ty'@(TypeFunT _ _orig' md' param0 mtope' ret) -> do
     -- an induction hypothesis's type is the motive at a field, so it carries
@@ -1327,12 +1389,14 @@
   | x `elem` xs = Just x
   | otherwise   = firstDuplicate xs
 
+modalizeTope :: TModality -> TermT n -> TermT n
+modalizeTope Id tope = tope
+modalizeTope md tope = typeModalT topeT md tope
+
 -- | A motive built from the goal: λ-binders along the motive's Π-type (the
 -- family's indices, then the scrutinee), whose body is the goal — with the
 -- scrutinee variable replaced by the motive's own scrutinee binder, when the
 -- scrutinee is a variable. A non-variable scrutinee gives a constant family.
--- (The motive types the eliminator generator builds are literal Π-chains, so
--- matching them structurally is enough; cf. 'lambdaHoleOf'.)
 motiveFromGoal
   :: Distinct n
   => Foil.Scope n -> TermT n -> Maybe (Foil.Name n) -> TermT n -> TermT n
@@ -1361,6 +1425,41 @@
   unifyTypes ty expectedKind kind
   return term'
 
+-- | Infer a cube point used by @≡@. A bare hole in this position does not
+-- determine its cube, so ordinary inference rejects it. In lenient mode,
+-- record it instead with an as-yet-unknown cube as its goal.
+inferPoint :: Distinct n => Term n -> TypeCheck n (TermT n)
+inferPoint term@(Hole (Just name))
+  | Just x <- unmarkUnresolved name =
+      performing (ActionInfer term) $
+        issueTypeError (TypeErrorUndefined x)
+inferPoint term@(Hole mname) = performing (ActionInfer term) $ do
+  reject <- asks ctxHolesAreErrors
+  if reject
+    then issueTypeError (TypeErrorCannotInferHole term)
+    else do
+      let cube = holeT cubeT Nothing
+      recordHole mname cube
+      pure (holeT cube mname)
+inferPoint term = inferAs cubeT term
+
+-- | Infer a point of one of the directed cubes, @2@ or @𝕀@, for use by
+-- @≤@. A point hole in lenient mode is retained with an unknown cube; a known
+-- point of any other cube is rejected here rather than after both endpoints
+-- have been inferred.
+inferDirectedPoint :: Distinct n => Term n -> TypeCheck n (TermT n)
+inferDirectedPoint term = performing (ActionInfer term) $ do
+  point <- inferPoint term
+  typeOf point >>= \case
+    HoleT{}  -> pure point
+    Cube2T{} -> pure point
+    CubeIT{} -> pure point
+    ty -> do
+      tyStr <- ppInContext ty
+      issueTypeError $ TypeErrorOther $
+        "the (t ≤ s) tope expects a point in a directed cube (2 or 𝕀); got "
+          <> tyStr
+
 infer :: Distinct n => Term n -> TypeCheck n (TermT n)
 infer tt = performing (ActionInfer tt) $ case tt of
   Hole (Just name) | Just x <- unmarkUnresolved name ->
@@ -1497,17 +1596,24 @@
   TopeBottom -> pure topeBottomT
 
   TopeEQ l r -> do
-    l' <- inferAs cubeT l
+    l' <- inferPoint l
     lt <- typeOf l'
     r' <- typecheck r lt
     return (topeEQT l' r')
 
   TopeLEQ l r -> do
-    l' <- inferAs cubeT l
-    r' <- inferAs cubeT r
+    l' <- inferDirectedPoint l
+    r' <- inferDirectedPoint r
     lTy <- typeOf l'
     rTy <- typeOf r'
     case (lTy, rTy) of
+      -- A point hole in lenient mode has an unknown directed cube. Keep the
+      -- relation as an incomplete sketch until that cube is known.
+      (HoleT{}, HoleT{})  -> return (topeLEQT l' r')
+      (HoleT{}, Cube2T{}) -> return (topeLEQT l' r')
+      (HoleT{}, CubeIT{}) -> return (topeLEQT l' r')
+      (Cube2T{}, HoleT{}) -> return (topeLEQT l' r')
+      (CubeIT{}, HoleT{}) -> return (topeLEQT l' r')
       (Cube2T{}, Cube2T{}) -> return (topeLEQT l' r')
       (CubeIT{}, CubeIT{}) -> return (topeLEQT l' r')
       (CubeIT{}, Cube2T{}) -> do
@@ -1566,17 +1672,13 @@
   TypeFun orig md a Nothing b -> do
     a' <- enterModality md $ infer a
     typeOf a' >>= \case
-      -- an argument can be a type
-      UniverseT{} ->
-        case a' of
-          -- except if it is the TOPE universe
-          UniverseTopeT{} ->
-            issueTypeError $ TypeErrorOther "tope params are illegal"
-          _ -> do
-            mapM_ checkNameShadowing (binderLeaves orig)
-            b' <- elaborateUnder orig md a' Nothing b $ \_binder bTerm ->
-              typecheck bTerm universeT
-            return (typeFunT orig md a' Nothing b')
+      -- an argument can be a type, including TOPE: a bare tope parameter
+      -- (phi : TOPE) means the same as the tope family (phi : 1 -> TOPE)
+      UniverseT{} -> do
+        mapM_ checkNameShadowing (binderLeaves orig)
+        b' <- elaborateUnder orig md a' Nothing b $ \_binder bTerm ->
+          typecheck bTerm universeT
+        return (typeFunT orig md a' Nothing b')
       -- an argument can be a cube
       UniverseCubeT{} -> do
         mapM_ checkNameShadowing (binderLeaves orig)
@@ -1588,7 +1690,8 @@
         mapM_ checkNameShadowing (binderLeaves orig)
         (tope', b') <- checkUnder orig md cube b $ \binder bTerm -> do
           -- eta expand a' into a tope over the bound variable
-          let etaTope = appT topeT (Foil.sink a') (Var (Foil.nameOf binder))
+          let etaTope = modalizeTope md $
+                appT topeT (Foil.sink a') (Var (Foil.nameOf binder))
           tope' <- case mtope of
             Nothing     -> pure etaTope
             Just tope'' -> do
@@ -1611,13 +1714,17 @@
 
   TypeSigma orig md a b -> do
     a' <- enterModality md $ typecheck a universeT
+    ensureTypeAtU "a Σ component" a'
     mapM_ checkNameShadowing (binderLeaves orig)
-    b' <- elaborateUnder orig md a' Nothing b $ \_binder bTerm ->
-      typecheck bTerm universeT
+    b' <- elaborateUnder orig md a' Nothing b $ \_binder bTerm -> do
+      bTyped <- typecheck bTerm universeT
+      ensureTypeAtU "a Σ component" bTyped
+      pure bTyped
     return (typeSigmaT orig md a' b')
 
   TypeId x (Just tA) y -> do
     tA' <- typecheck tA universeT
+    ensureTypeAtU "the carrier of an identity type" tA'
     x' <- typecheck x tA'
     y' <- typecheck y tA'
     return (typeIdT x' (Just tA') y')
@@ -1625,6 +1732,7 @@
   TypeId x Nothing y -> do
     x' <- inferAs universeT x
     tA <- typeOf x'
+    ensureTypeAtU "the carrier of an identity type" tA
     y' <- typecheck y tA
     return (typeIdT x' (Just tA) y')
 
@@ -1637,6 +1745,9 @@
         x' <- enterModality md $ case (x, mtope) of
           (Hole mname, Just tope) -> checkHoleAgainstShape mname orig a tope
           _                       -> typecheck x a
+        whnfT a >>= \case
+          UniverseT{} -> ensureTypeAtU "a type argument" x'
+          _           -> pure ()
         bAt <- instantiate b x'
         let result = appT bAt f' x'
         case b of
@@ -1660,13 +1771,8 @@
   Lambda orig (Just (LambdaParam md ty Nothing)) body -> do
     ty' <- enterModality md $ infer ty
     mcube <- typeOf ty' >>= \case
-      -- an argument can be a type
-      UniverseT{} ->
-        case ty' of
-          -- except if it is the TOPE universe
-          UniverseTopeT{} ->
-            issueTypeError $ TypeErrorOther "tope params are illegal"
-          _ -> return Nothing
+      -- an argument can be a type, including TOPE (a bare tope parameter)
+      UniverseT{} -> return Nothing
       -- an argument can be a cube
       UniverseCubeT{} -> return Nothing
       -- an argument can be a shape
@@ -1687,7 +1793,8 @@
       Just _ -> do
         (tope', body', ret) <- checkUnder orig md param body $ \binder bodyTerm -> do
           -- eta expand the shape into a tope over the bound variable
-          let etaTope = appT topeT (Foil.sink ty') (Var (Foil.nameOf binder))
+          let etaTope = modalizeTope md $
+                appT topeT (Foil.sink ty') (Var (Foil.nameOf binder))
           body' <- localTope etaTope $ infer bodyTerm
           ret <- typeOf body'
           pure (ScopedAST binder etaTope, ScopedAST binder body', ScopedAST binder ret)
@@ -1728,34 +1835,39 @@
         bindUniv <- typeOf bindType'
         enterModality app $ typecheck val (typeModalT bindUniv inn bindType')
     valTy <- typeOf val'
-    bindTy <- case valTy of
-      TypeModalT _ty md t | md == inn -> return t
-      o -> issueTypeError $ TypeErrorNotModal (untyped o) inn val'
-    bindVal <- whnfT val' >>= \case
-      ModAppT _ty _m t -> pure (Just t)
-      o | isRA inn -> pure (Just (modExtractT bindTy app inn o))
-      _ -> pure Nothing
+    bindTy <- case stripTypeRestrictions valTy of
+      TypeModalT _ty md t
+        | md == inn -> pure t
+        | otherwise -> issueTypeError $ TypeErrorModalityMismatch
+            MismatchModalElimination inn md (Just val)
+      _ -> issueTypeError $
+        TypeErrorNotModal ModalTypeForElimination val inn valTy
+    o <- whnfT val'
+    bindVal <- maybe (extractModal app inn o) (pure . Just) (valueUnderModal inn o)
     -- The motive is a family over the modal value, @(z :^app ⟨inn|A⟩) → U@, so its
     -- binder stands for the whole @val@ and not for the let-bound @orig : A@; it is
     -- left anonymous rather than reusing @orig@, which would show the wrong role in
     -- goals and hovers. Only @U@ is supported as the codomain for now: a motive
-    -- landing in @CUBE@ or @TOPE@ cannot be written.
+    -- landing in @CUBE@ or @TOPE@ cannot be written. The motive ranges over the
+    -- modal type without the restrictions of @val@'s type, because the body is
+    -- checked at a generic @mod inn y@, which need not satisfy them.
+    let modalTy = stripTypeRestrictions valTy
     univScope <- constScope universeT
     mmotive' <- forM mmotive $ \motive ->
-      typecheck motive (typeFunT (BinderVar Nothing) app valTy Nothing univScope)
+      typecheck motive (typeFunT (BinderVar Nothing) app modalTy Nothing univScope)
     case mmotive' of
       Just motive' -> do
         body' <- elaborateUnder orig (comp app inn) bindTy bindVal body $ \binder bodyTerm ->
           typecheck bodyTerm
             (appT universeT (Foil.sink motive')
-              (modAppT (Foil.sink valTy) inn (Var (Foil.nameOf binder))))
+              (modAppT (Foil.sink modalTy) inn (Var (Foil.nameOf binder))))
         return (letModT (appT universeT motive' val') orig app inn (Just bindTy) mmotive' val' body')
       Nothing -> do
         (body', ret) <- checkUnderWith orig (comp app inn) bindTy bindVal body $ \binder bodyTerm -> do
           body' <- infer bodyTerm
           ret <- typeOf body'
           pure (ScopedAST binder body', ScopedAST binder ret)
-        retAt <- instantiate ret val'
+        retAt <- instantiate ret (maybe val' id bindVal)
         return (letModT retAt orig app inn (Just bindTy) Nothing val' body')
 
   Refl Nothing -> issueTypeError $ TypeErrorCannotInferBareRefl tt
@@ -1810,7 +1922,8 @@
       UniverseT{}     -> pure universeTy
       UniverseCubeT{} -> pure universeTy
       UniverseTopeT{} -> pure universeTy
-      _               -> issueTypeError $ TypeErrorNotTypeInModal universeTy
+      _               -> issueTypeError $
+        TypeErrorNotTypeInModal md ty universeTy
     return (typeModalT universeTy md ty')
 
   ModApp md term -> do
@@ -1823,7 +1936,7 @@
 
   -- A match infers only through its "into" motive; 'checkMatch' rejects it
   -- otherwise, since there is no goal to build the motive from.
-  Match scrut mmotive branches -> checkMatch tt scrut mmotive branches Nothing
+  Match md scrut mmotive branches -> checkMatch tt md scrut mmotive branches Nothing
   MatchArm{} -> panicImpossible "a match arm outside of a match branch"
 
 -- | The type of the motive of a path induction: @(z : A) → (a =_A z) → U@.
diff --git a/src/Rzk/TypeCheck/MetaPrefix.hs b/src/Rzk/TypeCheck/MetaPrefix.hs
--- a/src/Rzk/TypeCheck/MetaPrefix.hs
+++ b/src/Rzk/TypeCheck/MetaPrefix.hs
@@ -8,56 +8,16 @@
 {-# LANGUAGE RankNTypes          #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 
--- | The meta-parameter layer check.
---
--- The type theory implemented in rzk separates a /meta-theoretic parameter
--- layer/ from the object theory (RSTT proper): see §3.2 of the Rzk paper
--- (Kudasov, Sim, Ahrens, \"Rzk: a Proof Assistant for Synthetic
--- ∞-Categories\", <https://arxiv.org/abs/2607.12207 arXiv:2607.12207>),
--- where a statement is abstracted over a context of schematic cube, tope,
--- and type parameters. The checker did not enforce responsible use of
--- this layer. Per declaration, the /meta prefix/ is the
--- parameter prefix up to and including the last parameter whose type lives
--- outside RSTT proper: a universe, @CUBE@, @TOPE@, or a Π-type quantifying
--- over or landing in one of those. Interleaved object parameters are swept
--- in, which only strengthens the check.
---
--- The discipline: the meta prefix must be fully supplied wherever the
--- declaration is used at an object-level position; unsaturated use at a
--- meta-typed position is legitimate macro-level plumbing and stays allowed.
--- Then the development reads as a family of object-theory definitions, one
--- per meta instantiation.
---
--- Positions are classified structurally, on the elaborated term:
+-- | Diagnostics for unsaturated schematic parameters.
 --
--- - the root of a declaration's type and value is meta (a definition may
---   alias a schema), and a λ-body inherits its λ's position (the value's
---   leading λs are the declaration's own parameters);
--- - an application argument is meta when the function's Π-domain at that
---   position is meta-shaped (the receiver declared a schema parameter);
--- - the components of type formers are meta (types are the schema layer),
---   except the endpoints of an identity type, which are terms;
--- - everything else (pair components, projections, @recOR@ branches, a
---   @let@-bound value, …) is an object position.
+-- A declaration's /meta prefix/ ends at its last schematic parameter:
+-- a universe, @CUBE@, @TOPE@, or a function quantifying over or into one.
 --
--- The strict rule (the default, see 'MetaPrefixSensitivity') additionally
--- requires an unsaturated schema argument to sit within a /top-level/
--- receiver's meta prefix. This also polices meta-shaped domains that only
--- arise by instantiating a receiver's object parameters with large types
--- (as in composing schema-level implications with a generic @comp@); such
--- uses are emitted with the distinct code 'MetaPrefixStrictOnly', so the
--- structural sensitivity can silence them without losing the rest.
+-- * Structural checking requires the full prefix at object-level uses.
+-- * Strict checking confines schema arguments to a top-level receiver's meta prefix.
 --
--- Known blind spot: under type-in-type, an impredicative instantiation can
--- forge a meta-shaped argument domain out of an object parameter — with
--- @g : (X : U) → X → X@, in @g ((X : U) → X → X) my-id@ the second
--- domain is meta-shaped only because @X@ was instantiated with a large
--- type. The structural sensitivity reads such a position as meta and stays
--- silent. The strict default flags it when the argument falls outside the
--- receiver's meta prefix (as here), but a forgery landing /within/ the
--- prefix, or behind a λ-bound receiver, still passes: deciding whether an
--- instantiation is genuinely impredicative is level inference, a separate
--- (planned) analysis, not this check.
+-- Strict checking is the default. Neither check establishes universe
+-- levels; the Hurkens construction still passes these checks.
 module Rzk.TypeCheck.MetaPrefix (
   metaPrefixOf,
   isMetaType,
@@ -84,14 +44,10 @@
 
 -- * Classifying types
 
--- | Does this type live outside RSTT proper — is it a universe, @CUBE@,
--- @TOPE@, or a Π-type that quantifies over or lands in one of those? This
--- covers a family into a universe (@A → U@, a tope family) and a schematic
--- type such as @(X : U) → X → X@ (predicatively both are large). A
--- parameter of such a type is a meta parameter. Never throws; an
--- unanswerable probe reads as object.
+-- | Recognise universes and functions quantifying over or into universes.
+-- Includes @CUBE@ and @TOPE@; propagates classification failures.
 isMetaType :: Distinct n => TermT n -> TypeCheck n Bool
-isMetaType t = flip catchError (\_ -> pure False) $ do
+isMetaType t = do
   t' <- headView t
   case t' of
     UniverseT{}     -> pure True
@@ -104,11 +60,14 @@
         else inScope orig md param ret isMetaType
     _               -> pure False
 
--- | The length of the meta prefix of a declaration with this type: the
--- number of leading parameters up to and including the last meta one
--- (0 when there is none). Never throws.
+-- | Count parameters through the last schematic one.
+-- An incomplete classification is reported when meta-prefix checking is enabled.
 metaPrefixOf :: Distinct n => TermT n -> TypeCheck n Int
-metaPrefixOf ty = flip catchError (\_ -> pure 0) $ go 1 0 ty
+metaPrefixOf ty = go 1 0 ty `catchError` \err -> do
+  sensitivity <- asks effectiveMetaPrefixSensitivity
+  when (sensitivity /= MetaPrefixOff) $
+    reportIncompleteRSTTCheck "RSTT meta-prefix classification incomplete" err
+  pure 0
   where
     go :: Distinct l => Int -> Int -> TermT l -> TypeCheck l Int
     go pos acc t = headView t >>= \case
@@ -118,10 +77,7 @@
         inScope orig md param ret (go (pos + 1) acc')
       _ -> pure acc
 
--- | The head of a type, for classification: syntactically if the head is
--- already informative, through WHNF otherwise (a defined name such as
--- @FunExt@ must unfold). Restrictions are stripped either way; a boundary
--- does not change which layer a type lives in.
+-- Strip restrictions and unfold only when the head needs classification.
 headView :: Distinct n => TermT n -> TypeCheck n (TermT n)
 headView t = case stripTypeRestrictions t of
   t'@UniverseT{}     -> pure t'
@@ -148,19 +104,18 @@
 typePositions   = Positions MetaPos MetaPos
 objectPositions = Positions ObjectPos ObjectPos
 
--- | Walk a declaration's elaborated type and value, warning about every
--- use of a top-level name that supplies fewer arguments than its meta
--- prefix at an object-level position. Advisory: never throws, and runs
--- silently so WHNF probes do not trace.
+-- | Report uses that supply too few schematic arguments.
+-- Violations are errors when @rstt-safe = "error"@.
 recordMetaPrefixUses
   :: forall n. Distinct n
   => VarIdent -> TermT n -> Maybe (TermT n) -> TypeCheck n ()
 recordMetaPrefixUses defName ty mval =
-  asks ctxMetaPrefixSensitivity >>= \case
+  asks effectiveMetaPrefixSensitivity >>= \case
     MetaPrefixOff -> pure ()
-    _ -> localVerbosity Silent $ flip catchError (\_ -> pure ()) $ do
-      go rootPositions ty
-      mapM_ (go rootPositions) mval
+    _ -> localVerbosity Silent $
+      flip catchError (reportIncompleteRSTTCheck ("RSTT meta-parameter check incomplete in " <> show defName)) $ do
+        go rootPositions ty
+        mapM_ (go rootPositions) mval
   where
     go :: forall l. Distinct l => Positions -> TermT l -> TypeCheck l ()
     go pos t = case t of
@@ -186,8 +141,9 @@
 
       LambdaT info orig mparam body -> do
         (mdom, md) <- case mparam of
-          Just (LambdaParam m ty' _mtope) -> do
+          Just (LambdaParam m ty' mtope) -> do
             go typePositions ty'
+            forM_ mtope $ \tope -> inScope orig m ty' tope (go objectPositions)
             pure (Just ty', m)
           -- A bare λ: the domain of its own Π-type.
           Nothing -> do
@@ -195,8 +151,9 @@
             pure (dom, Id)
         inScope orig md (fromMaybe universeT mdom) body (go pos)
 
-      TypeFunT _ orig md param _mtope ret -> do
+      TypeFunT _ orig md param mtope ret -> do
         go typePositions param
+        forM_ mtope $ \tope -> inScope orig md param tope (go objectPositions)
         inScope orig md param ret (go typePositions)
 
       TypeSigmaT _ orig md a bscope -> do
@@ -212,7 +169,9 @@
 
       TypeRestrictedT _ ty' rs -> do
         go typePositions ty'
-        forM_ rs $ \(_tope, term) -> go objectPositions term
+        forM_ rs $ \(tope, term) -> do
+          go objectPositions tope
+          go objectPositions term
 
       LetT _ orig manno value body -> do
         mapM_ (go typePositions) manno
@@ -236,13 +195,13 @@
 
     -- An unsaturated top-level head at an object position warns; at a
     -- position only the strict rule rejects, the warning is marked so.
-    checkHead :: forall l. Positions -> Foil.Name l -> Int -> TypeCheck l ()
+    checkHead :: forall l. Distinct l => Positions -> Foil.Name l -> Int -> TypeCheck l ()
     checkHead pos v nargs = do
       ctx <- ask
       let info = lookupVarInfo v ctx
           k = varMetaPrefix info
       when (varIsTopLevel info && k > nargs) $ do
-        sensitivity <- asks ctxMetaPrefixSensitivity
+        sensitivity <- asks effectiveMetaPrefixSensitivity
         let mrule = case (posStructural pos, posStrict pos) of
               (ObjectPos, _) -> Just MetaPrefixBoth
               (MetaPos, ObjectPos)
@@ -260,20 +219,20 @@
 
     -- Is the Π-domain of this function node meta-shaped?
     domainIsMeta :: forall l. Distinct l => TermT l -> TypeCheck l Bool
-    domainIsMeta f = flip catchError (\_ -> pure False) $ do
+    domainIsMeta f = do
       tf <- typeOfUncomputed f
       headView tf >>= \case
         TypeFunT _ _ _ dom _ _ -> isMetaType dom
         _                      -> pure False
 
     funDomain :: forall l. Distinct l => TermT l -> TypeCheck l (Maybe (TermT l))
-    funDomain tf = flip catchError (\_ -> pure Nothing) $
+    funDomain tf =
       headView tf >>= \case
         TypeFunT _ _ _ dom _ _ -> pure (Just dom)
         _                      -> pure Nothing
 
     modalDomain :: forall l. TermT l -> TypeCheck l (Maybe (TermT l))
-    modalDomain tv = flip catchError (\_ -> pure Nothing) $
+    modalDomain tv =
       pure $ case stripTypeRestrictions tv of
         TypeModalT _ _ a -> Just a
         _                -> Nothing
diff --git a/src/Rzk/TypeCheck/Monad.hs b/src/Rzk/TypeCheck/Monad.hs
--- a/src/Rzk/TypeCheck/Monad.hs
+++ b/src/Rzk/TypeCheck/Monad.hs
@@ -15,7 +15,7 @@
 -- @closeScope@ had to wrap the error one binder deeper and re-emit the holes.
 module Rzk.TypeCheck.Monad where
 
-import           Control.Monad            (unless)
+import           Control.Monad            (unless, when)
 import           Control.Monad.Except     (ExceptT,
                                            MonadError (catchError, throwError),
                                            runExceptT)
@@ -23,12 +23,14 @@
 import           Control.Monad.Trans      (lift)
 import           Control.Monad.Trans.State.Strict (State, get, modify', put,
                                            runState)
+import qualified Data.IntMap.Strict       as IntMap
+import qualified Data.IntSet              as IntSet
 import           Debug.Trace              (trace)
 
 import           Control.Monad.Foil       (Distinct)
 import qualified Control.Monad.Foil       as Foil
 
-import           Language.Rzk.Foil.Names (VarIdent)
+import           Language.Rzk.Foil.Names (TModality, VarIdent)
 import           Language.Rzk.Foil.Syntax (positionOfTerm)
 import           Rzk.TypeCheck.Context
 import           Rzk.TypeCheck.Display
@@ -39,8 +41,20 @@
 data HoleEntry = HoleEntry
   { holeEntryName :: VarIdent
   , holeEntryType :: Rendered
+  , holeEntryMode :: HoleModalInfo
   } deriving (Eq, Show)
 
+data HoleModalInfo = HoleModalInfo
+  { holeItemModality   :: TModality
+  , holeItemLocks      :: TModality
+  , holeItemAccessible :: Bool
+  } deriving (Eq, Show)
+
+data HoleTopeEntry = HoleTopeEntry
+  { holeTopeValue :: Rendered
+  , holeTopeMode  :: HoleModalInfo
+  } deriving (Eq, Show)
+
 -- | The structured goal and context at a hole, recorded in lenient mode (see
 -- 'allowHoles'). Everything is rendered to user-facing names at record time, so
 -- 'HoleInfo' is independent of the scope it came from. Local hypotheses are split
@@ -58,10 +72,10 @@
     -- restricted type in 'holeGoal'.)
   , holeTermVars      :: [HoleEntry]    -- ^ local hypotheses whose type is not a cube
   , holeCubeVars      :: [HoleEntry]    -- ^ local cube variables (type is a cube)
-  , holeTopes         :: [Rendered]     -- ^ local tope assumptions (excluding ⊤)
+  , holeTopes         :: [HoleTopeEntry] -- ^ local tope assumptions (excluding ⊤)
   , holeCandidates    :: [Rendered]
-    -- ^ elimination spines over the local hypotheses whose type fits the goal,
-    -- with applied arguments left as holes. Already rendered, like the rest.
+    -- ^ Rendered moves from local hypotheses, allow-listed top-level lemmas,
+    -- and tope-context elimination; missing subterms remain holes.
   , holeIntroductions :: [Rendered]
     -- ^ introduction forms for the goal type, built from its head constructor
     -- with the constituents left as holes. Already rendered, like the rest.
@@ -71,10 +85,7 @@
   , holeLocation      :: Maybe LocationInfo
   } deriving (Eq, Show)
 
--- | A non-fatal finding of the checker, recorded on the writer channel
--- beside the holes and carried out of a run in @Checked@. Structured, so
--- the CLI, the LSP, and (later) safe mode each decide how to present or
--- escalate it.
+-- | A structured checker diagnostic. Safe error mode rejects fragment violations.
 data CheckWarning
   = LargeInductiveTypeWarning
       VarIdent              -- ^ the data type
@@ -87,12 +98,60 @@
       Int                   -- ^ the length of the meta prefix
       MetaPrefixRule
       (Maybe LocationInfo)
+  | RSTTScopeWarning RSTTExtension String (Maybe LocationInfo)
+  | RSTTHoleWarning (Maybe LocationInfo)
+  | RSTTIncompleteWarning String (Maybe LocationInfo)
+  | OverhangWarning
+      String                -- ^ restriction face or recOR branch guard
+      String                -- ^ the face or guard, rendered
+      [String]              -- ^ the local tope context, rendered
+      (Maybe LocationInfo)
+  | TopeFamilyDomainWarning
+      String                -- ^ the family, rendered where it was checked
+      String                -- ^ its declared domain, rendered under the family's binder
+      (Maybe LocationInfo)
+  | FreeStandingRestrictionWarning
+      VarIdent              -- ^ the declaration
+      String                -- ^ the restricted type, rendered
+      FragmentUse           -- ^ what assumes it
+      (Maybe LocationInfo)
+  | MetaBinderWarning
+      VarIdent              -- ^ the declaration
+      VarIdent              -- ^ the variable bound inside a term
+      String                -- ^ its type, rendered
+      (Maybe LocationInfo)
   deriving (Eq, Show)
 
+-- | Diagnostic categories for constructs outside the RSTT fragment.
+data RSTTExtension = RSTTModal | RSTTInterval | RSTTInductive | RSTTShapeDependency | RSTTUnsupported | RSTTSchematic
+  deriving (Eq, Show)
+
+-- | What assumes a free-standing restriction (see "Rzk.TypeCheck.Fragment.RSTT"),
+-- which conservativity allows to be concluded but not assumed.
+data FragmentUse
+  = UseBinder
+    -- ^ the type of a binder (λ, Π, Σ, or a declaration's parameter)
+  | UseMotive
+    -- ^ the motive of an eliminator
+  | UseData
+    -- ^ inside a type passed as data, at a meta-typed argument or component
+  | UseIdentity
+    -- ^ the type of an identity type, whose endpoints it types
+  | UseConcluded
+    -- ^ a concluded type, off the spine of codomains (a Σ component, say)
+  deriving (Eq, Show)
+
 -- | Where a warning points, for per-file attribution.
 warningLocation :: CheckWarning -> Maybe LocationInfo
 warningLocation (LargeInductiveTypeWarning _ _ loc)  = loc
 warningLocation (MetaPrefixWarning _ _ _ _ _ loc)    = loc
+warningLocation (RSTTScopeWarning _ _ loc)           = loc
+warningLocation (RSTTIncompleteWarning _ loc)       = loc
+warningLocation (RSTTHoleWarning loc)               = loc
+warningLocation (OverhangWarning _ _ _ loc)         = loc
+warningLocation (TopeFamilyDomainWarning _ _ loc)    = loc
+warningLocation (FreeStandingRestrictionWarning _ _ _ loc) = loc
+warningLocation (MetaBinderWarning _ _ _ loc)       = loc
 
 -- | Which candidate rule of the meta-parameter layer check flags a
 -- 'MetaPrefixWarning' (see "Rzk.TypeCheck.MetaPrefix"): the structural
@@ -109,14 +168,17 @@
 data CheckLog = CheckLog
   { logHolesRev    :: [HoleInfo]
   , logWarningsRev :: [CheckWarning]
+  , logSchematicCache :: IntSet.IntSet
+  -- Nothing records an unsuccessful or ongoing object-family probe.
+  , logSchematicObjectFamilies :: IntMap.IntMap (Maybe Int)
   }
 
 emptyCheckLog :: CheckLog
-emptyCheckLog = CheckLog [] []
+emptyCheckLog = CheckLog [] [] IntSet.empty IntMap.empty
 
 -- | What a run recorded, in the order it was recorded.
 checkLog :: CheckLog -> ([HoleInfo], [CheckWarning])
-checkLog (CheckLog holes warnings) = (reverse holes, reverse warnings)
+checkLog (CheckLog holes warnings _ _) = (reverse holes, reverse warnings)
 
 -- | The record of a run is kept in the /state/, beneath the error channel,
 -- rather than on a writer channel above it.
@@ -191,6 +253,19 @@
 localWarnOverhang :: Bool -> TypeCheck n a -> TypeCheck n a
 localWarnOverhang warn = local $ \ctx -> ctx { ctxWarnOverhang = warn }
 
+localWarnTopeFamilyDomain :: Bool -> TypeCheck n a -> TypeCheck n a
+localWarnTopeFamilyDomain warn = local $ \ctx -> ctx { ctxWarnTopeFamilyDomain = warn }
+
+localWarnFreeStandingRestriction :: Bool -> TypeCheck n a -> TypeCheck n a
+localWarnFreeStandingRestriction warn =
+  local $ \ctx -> ctx { ctxStandaloneWarnFreeStandingRestriction = warn }
+
+localWarnShapeDependency :: Bool -> TypeCheck n a -> TypeCheck n a
+localWarnShapeDependency warn = local $ \ctx -> ctx { ctxStandaloneWarnShapeDependency = warn }
+
+localWarnMetaBinder :: Bool -> TypeCheck n a -> TypeCheck n a
+localWarnMetaBinder warn = local $ \ctx -> ctx { ctxStandaloneWarnMetaBinder = warn }
+
 localMetaPrefixSensitivity :: MetaPrefixSensitivity -> TypeCheck n a -> TypeCheck n a
 localMetaPrefixSensitivity sensitivity =
   local $ \ctx -> ctx { ctxMetaPrefixSensitivity = sensitivity }
@@ -275,15 +350,45 @@
 
 -- * Holes
 
-recordHoleInfo :: HoleInfo -> TypeCheck n ()
-recordHoleInfo info =
+recordHoleInfo :: Distinct n => HoleInfo -> TypeCheck n ()
+recordHoleInfo info = do
   modifyLog $ \l -> l { logHolesRev = info : logHolesRev l }
+  enabled <- asks rsttSafeEnabled
+  when enabled $ recordCheckWarning (RSTTHoleWarning (holeLocation info))
 
 -- * Warnings
 
-recordCheckWarning :: CheckWarning -> TypeCheck n ()
-recordCheckWarning warning =
-  modifyLog $ \l -> l { logWarningsRev = warning : logWarningsRev l }
+-- | Record a warning once, rejecting fragment violations in safe error mode.
+recordCheckWarning :: Distinct n => CheckWarning -> TypeCheck n ()
+recordCheckWarning warning = do
+  -- Signature and body elaboration may report the same annotation twice.
+  modifyLog $ \l ->
+    if warning `elem` logWarningsRev l then l
+    else l { logWarningsRev = warning : logWarningsRev l }
+  mode <- asks rsttSafeMode
+  when (mode == RSTTSafeError) $
+    mapM_ (issueTypeError . TypeErrorRSTT) (rsttViolation warning)
+
+-- | Describe a fragment violation; return 'Nothing' for unrelated warnings.
+rsttViolation :: CheckWarning -> Maybe String
+rsttViolation = \case
+  MetaPrefixWarning _ _ _ _ _ _ -> Just "unsaturated schematic parameters"
+  FreeStandingRestrictionWarning _ _ _ _ -> Just "free-standing restriction in an assumed position"
+  MetaBinderWarning _ _ _ _ -> Just "schematic binder inside a term"
+  RSTTScopeWarning _ feature _ -> Just (feature <> " is outside RSTT")
+  RSTTHoleWarning _ -> Just "unfinished obligation"
+  RSTTIncompleteWarning reason _ -> Just reason
+  _ -> Nothing
+
+-- | Report an unfinished fragment check without masking a safe-mode error.
+reportIncompleteRSTTCheck :: Distinct n => String -> TypeErrorInScopedContext -> TypeCheck n ()
+reportIncompleteRSTTCheck _ err@(TypeErrorInScopedContext _ TypeErrorRSTT{}) = throwError err
+reportIncompleteRSTTCheck what (TypeErrorInScopedContext _ err) = do
+  loc <- asks ctxLocation
+  let reason = case err of
+        TypeErrorOther message -> message
+        _ -> "could not inspect a type"
+  recordCheckWarning $ RSTTIncompleteWarning (what <> ": " <> reason) loc
 
 -- * Locations
 
diff --git a/src/Rzk/TypeCheck/NbE.hs b/src/Rzk/TypeCheck/NbE.hs
--- a/src/Rzk/TypeCheck/NbE.hs
+++ b/src/Rzk/TypeCheck/NbE.hs
@@ -4,9 +4,42 @@
 {-# LANGUAGE PatternSynonyms     #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 
--- | Normalisation by evaluation, used as an all-or-nothing fast path for
--- conversion checking.
+-- | A conversion fast path using normalisation by evaluation. Evaluation keeps
+-- neutral spines with lazy unfoldings and compares them with one-step η for
+-- functions and pairs. 'Convertible' accepts the comparison; 'DontKnow' leaves
+-- it to ordinary unification.
 --
+-- Constructs whose reduction depends on the tope context or modalities, and
+-- holes, abort this fast path. Extension types and @recBOT@ are compared
+-- structurally. See the conversion, soundness and attribution notes below.
+module Rzk.TypeCheck.NbE
+  ( Conversion (..)
+  , nbeConvertible
+    -- * Conversion notes
+    -- $conversion
+    -- * Soundness
+    -- $soundness
+    -- * Attribution
+    -- $attribution
+  ) where
+
+import           Control.Monad.Reader              (asks)
+import           Data.Bifoldable                   (bifoldMap)
+import           Data.Bifunctor                    (bimap)
+import           Data.Monoid                       (All (..))
+import           Data.ZipMatchK                    (zipMatch2)
+
+import           Control.Monad.Foil                (NameBinder)
+import qualified Control.Monad.Foil                as Foil
+import           Control.Monad.Free.Foil           (AST (Node, Var),
+                                                    ScopedAST (..))
+import           Control.Monad.Free.Foil.Annotated (AnnSig (..))
+
+import           Language.Rzk.Foil.Syntax
+import           Rzk.TypeCheck.Context
+import           Rzk.TypeCheck.Monad
+
+-- $conversion
 -- 'nbeConvertible' evaluates both sides into a value domain with closures
 -- (sharing by construction: a definition's value is evaluated once per
 -- occurrence, not once per copy, and Haskell's laziness makes the evaluation
@@ -19,13 +52,17 @@
 --
 -- It answers only 'Convertible' or 'DontKnow', never a definite inequality,
 -- so a caller falls back to the ordinary unification on 'DontKnow'. The two
--- cases are not opposites, which is why the answer is not a 'Bool'. The fast
--- path can therefore accept more
--- than the unification below it, but never less. Note that it does accept
--- more. The ordinary path decomposes an application pairwise, which invents
--- subgoals that a βδ-equal but structurally different pair need not meet
+-- cases are not opposites, which is why the answer is not a 'Bool'. NbE can
+-- accept comparisons that ordinary unification rejects: pairwise application
+-- decomposition can create subgoals that βδ-equal applications need not meet
 -- (see 'Rzk.TypeCheck.Unify.unifyViaDecompose').
 --
+-- The evaluator is a pure function of the 'Context': 'valueOfVar' is a plain
+-- reader-only lookup, and fresh variables for comparing closures are de
+-- Bruijn levels ('HFresh'), so the foil scope machinery is never extended and
+-- no quote function is needed.
+--
+-- $soundness
 -- Soundness is a subset argument: 'Convertible' is answered only for terms that are
 -- βδ-convertible up to α and the one-step η above, with every construct whose
 -- /reduction/ consults the context — @recOR@ guard selection, holes, the
@@ -34,16 +71,10 @@
 -- structurally (see the note at their 'eval' case): a structurally identical
 -- pair of restricted types is also accepted by the ordinary unification,
 -- through reflexive coverage and the cross-face coherences already proved at
--- formation. Every 'Convertible' is therefore also a success of the old
--- unification.
---
--- The evaluator is a pure function of the 'Context': 'valueOfVar' is a plain
--- reader-only lookup, and fresh variables for comparing closures are de
--- Bruijn levels ('HFresh'), so the foil scope machinery is never extended and
--- no quote function is needed.
---
--- == Attribution
+-- formation. The soundness claim concerns definitional equality, rather than
+-- the comparisons accepted by the previous unification algorithm.
 --
+-- $attribution
 -- None of the underlying techniques are ours. Semantic conversion checking —
 -- evaluate both sides into a value domain with closures and compare the
 -- values, applying functions to fresh generic values — is the algorithm of
@@ -81,23 +112,6 @@
 -- ('Convertible' or 'DontKnow', never refute), and 'VAbort' poisoning of the
 -- context-sensitive fragment so that the fast path stays sound by a subset
 -- argument.
-module Rzk.TypeCheck.NbE (Conversion (..), nbeConvertible) where
-
-import           Control.Monad.Reader              (asks)
-import           Data.Bifoldable                   (bifoldMap)
-import           Data.Bifunctor                    (bimap)
-import           Data.Monoid                       (All (..))
-import           Data.ZipMatchK                    (zipMatch2)
-
-import           Control.Monad.Foil                (NameBinder)
-import qualified Control.Monad.Foil                as Foil
-import           Control.Monad.Free.Foil           (AST (Node, Var),
-                                                    ScopedAST (..))
-import           Control.Monad.Free.Foil.Annotated (AnnSig (..))
-
-import           Language.Rzk.Foil.Syntax
-import           Rzk.TypeCheck.Context
-import           Rzk.TypeCheck.Monad
 
 -- * The value domain
 
diff --git a/src/Rzk/TypeCheck/Schematic.hs b/src/Rzk/TypeCheck/Schematic.hs
new file mode 100644
--- /dev/null
+++ b/src/Rzk/TypeCheck/Schematic.hs
@@ -0,0 +1,418 @@
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+
+-- | Check schematic dRzk declarations without treating universes as object types.
+-- Family arguments are checked at their indices. Schematic rules,
+-- such as function extensionality, may also be parameters of a declaration.
+-- Postulates supply trusted rules; checking their statements does not prove them.
+module Rzk.TypeCheck.Schematic
+  ( SchematicStatement, CheckedSchematicDeclaration, checkSchematicDeclaration
+  , recordSchematicDeclaration
+  ) where
+
+import Control.Monad (forM_, unless, void, when)
+import Control.Monad.Except (catchError)
+import Control.Monad.Reader (asks, local)
+import Control.Monad.State.Strict (gets)
+import Data.Bifoldable (bifoldMap)
+import qualified Data.IntMap.Strict as IntMap
+import qualified Data.IntSet as IntSet
+import Data.Maybe (isJust)
+import Control.Monad.Foil (Distinct)
+import qualified Control.Monad.Foil as Foil
+import Control.Monad.Free.Foil (AST (..))
+import Control.Monad.Free.Foil.Annotated (AnnSig (..))
+import Language.Rzk.Foil.Names (TModality (..), TypeInfo (..), VarIdent)
+import Language.Rzk.Foil.Syntax
+import Rzk.TypeCheck.Context
+import Rzk.TypeCheck.Display (namingOfContext, ppTerm)
+import Rzk.TypeCheck.Error
+import Rzk.TypeCheck.Eval
+import Rzk.TypeCheck.Fragment.RSTT (fragmentHead)
+import Rzk.TypeCheck.Monad
+
+-- Constructors stay private: a statement alone does not certify its proof.
+newtype SchematicStatement n = SchematicStatement (TermT n)
+data CheckedSchematicDeclaration n = CheckedSchematicDeclaration
+  (SchematicStatement n) (Maybe (TermT n))
+
+-- | Roles of elaborated type and domain expressions in schematic declarations.
+-- These are not universe levels. The fragment's formation conditions are
+-- checked separately in "Rzk.TypeCheck.Fragment.RSTT".
+data Sort
+  = ObjectType
+    -- ^ Ordinary types that may instantiate @(A : U)@, e.g. @Unit@ or @A -> A@.
+  | ParameterKind
+    -- ^ Kinds of schematic data: @U@, @CUBE@, @TOPE@, family kinds such as
+    -- @A -> U@, and dependent sums containing non-object components.
+  | SchematicRule
+    -- ^ Function signatures ending in an object type and quantifying over
+    -- kinds or rules, e.g. @(A : U) -> A -> A@.
+  | Shape
+    -- ^ Cube or tope expressions, e.g. @2@ or @TOP@; these are not object types.
+  deriving (Eq)
+
+-- | Validate an elaborated declaration and the definitions used by its proof.
+-- This supplements dRzk typing with kind checks; it is not a separate RSTT kernel.
+checkSchematicDeclaration
+  :: Distinct n => TermT n -> Maybe (TermT n)
+  -> TypeCheck n (CheckedSchematicDeclaration n)
+checkSchematicDeclaration ty value = do
+  declaration 256 IntSet.empty ty value
+  pure (CheckedSchematicDeclaration (SchematicStatement ty) value)
+
+-- | Apply the selected safe-mode policy and return whether validation succeeded.
+recordSchematicDeclaration
+  :: Distinct n => VarIdent -> TermT n -> Maybe (TermT n) -> TypeCheck n SchematicStatus
+recordSchematicDeclaration name ty value = do
+  enabled <- asks rsttSafeEnabled
+  if not enabled then pure SchematicUnchecked else
+    (checkSchematicDeclaration ty value >> pure SchematicChecked) `catchError` \err -> do
+      case err of
+        TypeErrorInScopedContext _ (TypeErrorSchematic problem reason) -> do
+          loc <- asks ctxLocation
+          warnings <- gets logWarningsRev
+          -- Source checking already gives more precise locations for these.
+          let alreadyReported = problem == SchematicUnsupported && any (sameDeclaration loc) warnings
+          unless alreadyReported $ recordCheckWarning (RSTTScopeWarning RSTTSchematic
+            (reason <> " (in " <> show name <> ")") loc)
+        _ -> reportIncompleteRSTTCheck ("schematic check incomplete in " <> show name) err
+      pure SchematicRejected
+
+sameDeclaration :: Maybe LocationInfo -> CheckWarning -> Bool
+sameDeclaration loc warning = withinDeclaration && case warning of
+  RSTTHoleWarning{} -> True
+  RSTTScopeWarning RSTTModal _ _ -> True
+  RSTTScopeWarning RSTTInductive _ _ -> True
+  RSTTScopeWarning RSTTInterval _ _ -> True
+  RSTTScopeWarning RSTTUnsupported _ _ -> True
+  _ -> False
+  where
+    withinDeclaration = case (loc, warningLocation warning) of
+      (Just start, Just at) -> locationFilePath start == locationFilePath at &&
+        locationLine at >= locationLine start
+      _ -> loc == warningLocation warning
+
+invalid :: Distinct n => String -> TermT n -> TypeCheck n a
+invalid = schematicError SchematicKindMismatch
+
+schematicError :: Distinct n => SchematicProblem -> String -> TermT n -> TypeCheck n a
+schematicError problem reason t = do
+  naming <- asks namingOfContext
+  issueTypeError (TypeErrorSchematic problem (reason <> ": " <> ppTerm naming (untyped t)))
+
+budget :: Distinct n => Int -> TypeCheck n ()
+budget fuel = when (fuel <= 0) $
+  issueTypeError (TypeErrorOther "schematic validation limit reached")
+
+-- Check a declaration telescope separately: a definition may name a family kind
+-- or a schema, whereas an argument to a type parameter must be an object type.
+declaration :: Distinct n => Int -> IntSet.IntSet -> TermT n -> Maybe (TermT n) -> TypeCheck n ()
+declaration fuel seen ty value = do
+  budget fuel
+  -- Check dependencies before reduction can obscure their failures.
+  dependencies ty
+  signature fuel seen ty
+  mapM_ (\t -> dependencies t >> term fuel seen t) value
+  where
+    dependencies = mapM_ (uses fuel seen . Var) . freeVarsOfTermT
+
+signature :: Distinct n => Int -> IntSet.IntSet -> TermT n -> TypeCheck n ()
+signature fuel seen ty = do
+  budget fuel
+  uses fuel seen ty
+  inspectRedex fuel seen ty
+  fragmentHead fuel ty >>= \case
+    TypeFunT _ orig md dom guard body -> do
+      void (classify (fuel - 1) seen dom)
+      mapM_ (\g -> inScope orig md dom g (term (fuel - 1) seen)) guard
+      inScope orig md dom body (signature (fuel - 1) seen)
+    t -> void (classify (fuel - 1) seen t)
+
+-- Check each dependency before using its signature, even if safe mode was off
+-- when it was declared. Successful earlier checks are cached in the context.
+-- Check variables during traversal instead of rescanning every subtree.
+uses :: Distinct n => Int -> IntSet.IntSet -> TermT n -> TypeCheck n ()
+uses fuel seen (Var v) = do
+  info <- infoOfVar id v
+  cached <- gets (IntSet.member (Foil.nameId v) . logSchematicCache)
+  when (varIsTopLevel info && varSchematicStatus info /= SchematicChecked && not cached) $ do
+    when (varSchematicStatus info == SchematicRejected) $
+      schematicError SchematicDependency "dependency failed schematic validation" (Var v)
+    when (isJust (varDataRole info)) $
+      schematicError SchematicUnsupported "inductive dependency" (Var v)
+    budget fuel
+    when (IntSet.member (Foil.nameId v) seen) $
+      issueTypeError (TypeErrorOther "cyclic schematic dependency")
+    -- A caller's tope assumptions cannot justify a reusable dependency check.
+    local withoutCallerTopes $ declaration (fuel - 1) (IntSet.insert (Foil.nameId v) seen)
+      (varType info) (varValue info)
+    modifyLog $ \checkLog' -> checkLog'
+      { logSchematicCache = IntSet.insert (Foil.nameId v) (logSchematicCache checkLog') }
+uses _ _ _ = pure ()
+
+withoutCallerTopes :: Context n -> Context n
+withoutCallerTopes ctx = ctx
+  { ctxDiscreteTopes = [], ctxTopes = [], ctxTopesNF = []
+  , ctxTopesNFUnion = [[]], ctxTopesEntailBottom = Just False
+  , ctxTopesSaturated = SaturationUncached
+  }
+
+-- Check erased arguments and annotations before exposing the result.
+inspectRedex :: Distinct n => Int -> IntSet.IntSet -> TermT n -> TypeCheck n ()
+inspectRedex fuel seen original = case original of
+  LetT{} -> term fuel seen original
+  TypeAscT{} -> term fuel seen original
+  FirstT{} -> term fuel seen original
+  SecondT{} -> term fuel seen original
+  IdJT{} -> term fuel seen original
+  RecOrT{} -> term fuel seen original
+  _ -> applications fuel seen original
+
+classify :: Distinct n => Int -> IntSet.IntSet -> TermT n -> TypeCheck n Sort
+classify fuel seen original = do
+  budget fuel
+  uses fuel seen original
+  inspectRedex fuel seen original
+  knownObjectFamily fuel seen original >>= \case
+    True -> pure ObjectType
+    False -> classifyHead fuel seen original
+
+classifyHead :: Distinct n => Int -> IntSet.IntSet -> TermT n -> TypeCheck n Sort
+classifyHead fuel seen original =
+  fragmentHead fuel original >>= \case
+    UniverseT{} -> pure ParameterKind
+    UniverseCubeT{} -> pure ParameterKind
+    UniverseTopeT{} -> pure ParameterKind
+    TypeFunT _ orig md dom guard body -> do
+      d <- classify (fuel - 1) seen dom
+      mapM_ (\g -> inScope orig md dom g (term (fuel - 1) seen)) guard
+      r <- inScope orig md dom body (classify (fuel - 1) seen)
+      case (d, r) of
+        (ObjectType, ObjectType) -> pure ObjectType
+        (Shape, ObjectType) -> pure ObjectType
+        (_, ParameterKind) -> pure ParameterKind
+        (_, Shape) -> invalid "cube or shape family" original
+        _ -> pure SchematicRule
+    TypeSigmaT _ orig md a b -> do
+      d <- classify (fuel - 1) seen a
+      r <- inScope orig md a b (classify (fuel - 1) seen)
+      pure (if d == ObjectType && r == ObjectType then ObjectType else ParameterKind)
+    TypeIdT _ a mt b -> do
+      ty <- maybe (schematicTypeOf fuel a) pure mt
+      object (fuel - 1) seen ty
+      term (fuel - 1) seen a
+      term (fuel - 1) seen b
+      pure ObjectType
+    TypeUnitT{} -> pure ObjectType
+    RecBottomT{} -> pure ObjectType
+    RecOrT _ branches -> do
+      sorts <- mapM (\(p, v) -> localTope p (classify (fuel - 1) seen v)) branches
+      case sorts of
+        s : rest | all (== s) rest -> pure s
+        _ -> invalid "case split between different schematic kinds" original
+    TypeRestrictedT _ ty rs -> do
+      s <- classify (fuel - 1) seen ty
+      forM_ rs $ \(p, v) -> term (fuel - 1) seen p >> argument (fuel - 1) seen ty v
+      pure s
+    CubeUnitT{} -> pure Shape
+    Cube2T{} -> pure Shape
+    CubeProductT _ a b -> term (fuel - 1) seen a >> term (fuel - 1) seen b >> pure Shape
+    t -> do
+      termNeutral (fuel - 1) seen t
+      schematicTypeOf fuel t >>= fragmentHead fuel >>= \case
+        UniverseT{} -> pure ObjectType
+        UniverseCubeT{} -> pure Shape
+        UniverseTopeT{} -> pure Shape
+        _ -> invalid "expected an object type, parameter kind, or schematic rule" t
+
+-- Reuse only universally object-valued families, after checking actual arguments.
+-- Other families retain reduction-based classification in the caller's context.
+knownObjectFamily :: Distinct n => Int -> IntSet.IntSet -> TermT n -> TypeCheck n Bool
+knownObjectFamily fuel seen = spine 0
+  where
+    spine arity (AppT _ f _) = spine (arity + 1) f
+    spine arity (Var v) = do
+      info <- infoOfVar id v
+      if not (varIsTopLevel info) then pure False else do
+        let key = Foil.nameId v
+        cached <- gets (IntMap.lookup key . logSchematicObjectFamilies)
+        summary <- case cached of
+          Just result -> pure result
+          Nothing -> do
+            cache key Nothing
+            result <- (local withoutCallerTopes $
+              objectFamilyArity fuel seen 0 (varType info) (Var v))
+              `catchError` \_ -> pure Nothing
+            cache key result
+            pure result
+        pure (summary == Just arity)
+    spine _ _ = pure False
+    cache key result = modifyLog $ \checkLog' -> checkLog'
+      { logSchematicObjectFamilies = IntMap.insert key result (logSchematicObjectFamilies checkLog') }
+
+-- Probe at fresh parameters; never generalise a concrete instance.
+objectFamilyArity :: Distinct n => Int -> IntSet.IntSet -> Int -> TermT n -> TermT n -> TypeCheck n (Maybe Int)
+objectFamilyArity fuel seen arity ty value = do
+  budget fuel
+  fragmentHead fuel ty >>= \case
+    TypeFunT _ orig md dom _ body ->
+      inScope orig md dom body $ \cod -> do
+        bound <- asks ctxBound
+        case bound of
+          v : _ -> objectFamilyArity (fuel - 1) seen (arity + 1) cod
+            (appT cod (Foil.sink value) (Var v))
+          [] -> issueTypeError (TypeErrorOther "missing schematic index")
+    UniverseT{} -> do
+      s <- classify (fuel - 1) seen value
+      pure (if s == ObjectType then Just arity else Nothing)
+    _ -> pure Nothing
+
+object :: Distinct n => Int -> IntSet.IntSet -> TermT n -> TypeCheck n ()
+object fuel seen t = do
+  s <- classify (fuel - 1) seen t
+  unless (s == ObjectType) (invalid "expected an object type" t)
+
+-- A type-family argument is checked pointwise. In particular U, A -> U, and
+-- (A : U) -> A cannot instantiate a parameter declared simply as A : U.
+argument :: Distinct n => Int -> IntSet.IntSet -> TermT n -> TermT n -> TypeCheck n ()
+argument fuel seen dom arg = do
+  budget fuel
+  functionHead fuel dom >>= \case
+    UniverseT{} -> object (fuel - 1) seen arg
+    TypeFunT _ orig md a guard body -> do
+      s <- classify (fuel - 1) seen dom
+      if s == ParameterKind then do
+        -- Eta-expand only for checking; the ordinary checker has checked the
+        -- argument's type. The body is inspected with the same fresh index.
+        inScope orig md a body $ \cod -> do
+          ctx <- asks id
+          case ctxBound ctx of
+            v : _ -> argument (fuel - 1) seen cod (appT cod (Foil.sink arg) (Var v))
+            [] -> issueTypeError (TypeErrorOther "missing schematic index")
+        mapM_ (\g -> inScope orig md a g (term (fuel - 1) seen)) guard
+      else term (fuel - 1) seen arg
+    _ -> term (fuel - 1) seen arg
+
+-- Section abstraction can leave application annotations describing an earlier
+-- telescope. Derive elimination types from the current signatures instead.
+-- TODO: Share this reconstruction with Eval when repairing annotations there.
+schematicTypeOf :: Distinct n => Int -> TermT n -> TypeCheck n (TermT n)
+schematicTypeOf fuel t = do
+  budget fuel
+  case t of
+    AppT _ f x -> schematicTypeOf (fuel - 1) f >>= functionHead fuel >>= \case
+      TypeFunT _ _ _ _ _ ret -> instantiate ret x
+      _ -> invalid "application without a function type" f
+    FirstT _ p -> schematicTypeOf (fuel - 1) p >>= functionHead fuel >>= \case
+      TypeSigmaT _ _ _ a _ -> pure a
+      CubeProductT _ a _ -> pure a
+      _ -> invalid "projection without a product type" p
+    SecondT _ p -> schematicTypeOf (fuel - 1) p >>= functionHead fuel >>= \case
+      TypeSigmaT _ _ _ a b -> instantiate b (firstT a p)
+      CubeProductT _ _ b -> pure b
+      _ -> invalid "projection without a product type" p
+    _ -> typeOfUncomputed t
+
+-- Boundaries constrain a function without changing its parameter kinds.
+functionHead :: Distinct n => Int -> TermT n -> TypeCheck n (TermT n)
+functionHead fuel t = do
+  budget fuel
+  fragmentHead fuel t >>= \case
+    TypeRestrictedT _ base _ -> functionHead (fuel - 1) base
+    head' -> pure head'
+
+applications :: Distinct n => Int -> IntSet.IntSet -> TermT n -> TypeCheck n ()
+applications fuel seen (AppT _ f x) = do
+  budget fuel
+  term (fuel - 1) seen f
+  schematicTypeOf fuel f >>= functionHead fuel >>= \case
+    TypeFunT _ _ _ dom _ _ -> argument (fuel - 1) seen dom x
+    _ -> invalid "application without a schematic or object function type" f
+applications _ _ _ = pure ()
+
+term :: Distinct n => Int -> IntSet.IntSet -> TermT n -> TypeCheck n ()
+term fuel seen t = do
+  budget fuel
+  uses fuel seen t
+  case t of
+    TypeFunT{} -> void (classify (fuel - 1) seen t)
+    TypeSigmaT{} -> void (classify (fuel - 1) seen t)
+    TypeIdT{} -> void (classify (fuel - 1) seen t)
+    TypeRestrictedT{} -> void (classify (fuel - 1) seen t)
+    LambdaT info orig param body -> do
+      (md, dom) <- case param of
+        Just (LambdaParam md dom guard) -> do
+          mapM_ (\g -> inScope orig md dom g (term (fuel - 1) seen)) guard
+          pure (md, dom)
+        Nothing -> functionHead fuel (infoType info) >>= \case
+          TypeFunT _ _ md dom _ _ -> pure (md, dom)
+          _ -> invalid "lambda without a function type" t
+      void (classify (fuel - 1) seen dom)
+      inScope orig md dom body (term (fuel - 1) seen)
+    AppT{} -> applications fuel seen t
+    LetT _ orig annotation value body -> do
+      mapM_ (signature (fuel - 1) seen) annotation
+      term (fuel - 1) seen value
+      ty <- maybe (schematicTypeOf fuel value) pure annotation
+      inScopeWith orig Id ty (Just value) body (term (fuel - 1) seen)
+    TypeAscT _ value ty -> signature (fuel - 1) seen ty >> term (fuel - 1) seen value
+    IdJT _ a x motive d y p -> do
+      object (fuel - 1) seen a
+      -- J eliminates equality into object types, not into schematic kinds.
+      motiveType <- schematicTypeOf fuel motive
+      argument (fuel - 1) seen motiveType motive
+      mapM_ (term (fuel - 1) seen) [x, motive, d, y, p]
+    _ -> termNeutral fuel seen t
+
+-- This is deliberately an allow-list. New syntax cannot inherit certification.
+termNeutral :: Distinct n => Int -> IntSet.IntSet -> TermT n -> TypeCheck n ()
+termNeutral fuel seen t = case t of
+  Var{} -> pure ()
+  UniverseT{} -> pure ()
+  UniverseCubeT{} -> pure ()
+  UniverseTopeT{} -> pure ()
+  CubeUnitT{} -> pure ()
+  CubeUnitStarT{} -> pure ()
+  Cube2T{} -> pure ()
+  Cube2_0T{} -> pure ()
+  Cube2_1T{} -> pure ()
+  TypeUnitT{} -> pure ()
+  UnitT{} -> pure ()
+  TopeTopT{} -> pure ()
+  TopeBottomT{} -> pure ()
+  CubeProductT{} -> children
+  CubeSupT{} -> children
+  CubeInfT{} -> children
+  TopeEQT{} -> children
+  TopeLEQT{} -> children
+  TopeAndT{} -> children
+  TopeOrT{} -> children
+  PairT _ x y -> do
+    ty <- schematicTypeOf fuel t
+    functionHead fuel ty >>= \case
+      TypeSigmaT _ _ _ a b -> do
+        argument (fuel - 1) seen a x
+        cod <- instantiate b x
+        argument (fuel - 1) seen cod y
+      CubeProductT{} -> children
+      _ -> invalid "pair without a product type" t
+  FirstT{} -> children
+  SecondT{} -> children
+  ReflT _ mx -> forM_ mx $ \(x, mty) -> do
+    ty <- maybe (schematicTypeOf fuel x) pure mty
+    object (fuel - 1) seen ty
+    term (fuel - 1) seen x
+  -- Elaboration checks the absurd tope context; recBOT has a cyclic type annotation.
+  RecBottomT{} -> pure ()
+  RecOrT{} -> children
+  AppT{} -> applications fuel seen t
+  _ -> schematicError SchematicUnsupported "unsupported schematic expression" t
+  where
+    children = case t of
+      Node (AnnSig _ sig) -> mapM_ (term (fuel - 1) seen) (bifoldMap (const []) (:[]) sig)
+      Var{} -> pure ()
diff --git a/src/Rzk/TypeCheck/Unify.hs b/src/Rzk/TypeCheck/Unify.hs
--- a/src/Rzk/TypeCheck/Unify.hs
+++ b/src/Rzk/TypeCheck/Unify.hs
@@ -157,7 +157,16 @@
         -- A hole (in lenient mode) stands for a term of the expected type, so it
         -- unifies with anything; accept it rather than falling through to the
         -- dispatch below (which would panic on an unexpected term).
-        Just (expected', actual') | isHoleT expected' || isHoleT actual' -> return ()
+        --
+        -- The same goes for a term /headed/ by a hole (@?f t@, @π₁ ?@): filling
+        -- the head decides its shape, so it has none to mismatch with yet (see
+        -- 'unifyStructurally'). It must be accepted here, before the spine is
+        -- decomposed: comparing @?f t@ with @α t 0₂@ argument-wise would unify
+        -- @t@ with @0₂@ in the cube layer and fail, although @?f := \\ t → α t 0₂@
+        -- is a solution. This is what the η-expanded hole of a hole candidate
+        -- meets when the goal's argument is a λ into an extension type, e.g. an
+        -- edge @\\ t → α t 0₂@ of a square.
+        Just (expected', actual') | isHoleHeadedT expected' || isHoleHeadedT actual' -> return ()
         Just (expected', actual') -> do
           same <- alphaEq expected' actual'
           unless same $ dispatch expected' actual'
@@ -299,7 +308,8 @@
           case actual' of
             TypeFunT _ty' orig' md' cube' mtope' ret' -> do
               when (md /= md') $
-                issueTypeError (TypeErrorOther $ "modality mismatch in function type: expected " <> show md <> " but got " <> show md')
+                issueTypeError (TypeErrorModalityMismatch
+                  MismatchFunctionType md md' Nothing)
               switchVariance $  -- unifying in the negative position!
                 unifyTerms cube cube' -- FIXME: unifyCubes
               inScope2 orig' md cube' ret ret' $ \binder retBody retBody' -> do
@@ -340,7 +350,8 @@
           case actual' of
             TypeSigmaT _ty' orig' md' a' b' -> do
               when (md /= md') $
-                issueTypeError (TypeErrorOther $ "modality mismatch in sigma type: expected " <> show md <> " but got " <> show md')
+                issueTypeError (TypeErrorModalityMismatch
+                  MismatchSigmaType md md' Nothing)
               unify Nothing a a'
               inScope2 orig' md a' b b' $ \_binder bBody bBody' ->
                 unify Nothing bBody bBody'
@@ -377,7 +388,8 @@
                   case stripTypeRestrictions (infoType ty') of
                     TypeFunT _ty' _origF' md' param' mtope' _ret' -> do
                       when (md /= md') $
-                        issueTypeError (TypeErrorOther $ "modality mismatch in lambda: expected " <> show md <> " but got " <> show md')
+                        issueTypeError (TypeErrorModalityMismatch
+                          MismatchLambda md md' Nothing)
                       unify Nothing param param' -- we (should) have already checked this in types!
                       inScope2 orig' md param body body' $ \binder bodyIn bodyIn' -> do
                         scope <- asks ctxScope
@@ -410,9 +422,7 @@
             LetModT _ _ app' inn' _ _mmotive' val' body'
               | app == app', inn == inn' -> do
                 unify Nothing val val'
-                bty <- typeOf val >>= \case
-                  TypeModalT _ _ t -> pure t
-                  _ -> panicImpossible "not modal in letmod"
+                bty <- requireTypeUnderModal inn val
                 inScope2 orig (comp app inn) bty body body' $ \_binder bodyIn bodyIn' ->
                   unify Nothing bodyIn bodyIn'
             _ -> err
diff --git a/test/Rzk/DiagnosticSpec.hs b/test/Rzk/DiagnosticSpec.hs
--- a/test/Rzk/DiagnosticSpec.hs
+++ b/test/Rzk/DiagnosticSpec.hs
@@ -46,6 +46,44 @@
           ("goal" `isInfixOf` diagnosticMessage d) `shouldBe` True
         ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
 
+    it "leaves ordinary identity context entries unmarked" $ do
+      case diagnose "#lang rzk-1\n#define g : (A : U) -> A -> A\n  := \\ A a -> ?\n" of
+        [d] -> do
+          diagnosticMessage d `shouldSatisfy` isInfixOf "    A : U"
+          diagnosticMessage d `shouldSatisfy` isInfixOf "    a : A"
+          diagnosticMessage d `shouldNotSatisfy` isInfixOf "× "
+          diagnosticMessage d `shouldNotSatisfy` isInfixOf "[modality:"
+        ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
+
+    it "marks inaccessible modal term and cube variables" $ do
+      let src = "#lang rzk-1\n\
+                \#def g (A : U) (B :_op U) (i :_op 2) : U := ?\n"
+      case diagnose src of
+        [d] -> do
+          diagnosticMessage d `shouldSatisfy` isInfixOf "    A : U"
+          diagnosticMessage d `shouldNotSatisfy` isInfixOf "× A : U"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "    × B : U  [modality: ᵒᵖ, locks: _id]"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "    × i : 2  [modality: ᵒᵖ, locks: _id]"
+        ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
+
+    it "keeps and marks a tope that is unavailable under a modal lock" $ do
+      let src = "#lang rzk-1\n\
+                \#def g : (i : 2 | i === 0_2) -> _op Unit\n\
+                \  := \\ i -> mod _op ?\n"
+      case diagnose src of
+        [d] -> do
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "    × i : 2  [modality: _id, locks: ᵒᵖ]"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "    × i ≡ 0₂  [modality: _id, locks: ᵒᵖ]"
+          -- the tope is not in force, so it is in topeInfo but not in topes
+          let json = BL8.unpack (encode d)
+          ("\"topes\":[]" `isInfixOf` json) `shouldBe` True
+          ("\"accessible\":false" `isInfixOf` json) `shouldBe` True
+        ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
+
   -- The structured hole payload (Rzk.Diagnostic.HoleData) exposes the goal and
   -- local context as separate rendered strings, so consumers (e.g. richer LSP
   -- hovers) need not parse the prose `message`. The pair-pattern example is
@@ -63,8 +101,8 @@
             holeDataName hd `shouldBe` Nothing
             holeDataShape hd `shouldBe` Nothing
             ("t \8801 s" `isInfixOf` holeDataGoal hd) `shouldBe` True   -- t ≡ s
-            map fst (holeDataCubeVars hd) `shouldContain` ["(t, s)"]
-            holeDataTopes hd `shouldContain` ["s \8804 t"]              -- s ≤ t
+            map holeDataEntryName (holeDataCubeVars hd) `shouldContain` ["(t, s)"]
+            map holeDataTopeValue (holeDataTopes hd) `shouldContain` ["s \8804 t"] -- s ≤ t
           Nothing -> expectationFailure "expected a structured hole payload"
         ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
 
@@ -76,9 +114,113 @@
           ("\"hole\":{" `isInfixOf` json) `shouldBe` True
           ("\"goal\":" `isInfixOf` json) `shouldBe` True
           ("\"cubeVars\":" `isInfixOf` json) `shouldBe` True
-          ("\"topes\":" `isInfixOf` json) `shouldBe` True
+          ("\"topes\":[\"" `isInfixOf` json) `shouldBe` True   -- topes stay strings
+          ("\"topeInfo\":[{" `isInfixOf` json) `shouldBe` True
+          ("\"tope\":" `isInfixOf` json) `shouldBe` True
+          ("\"modality\":" `isInfixOf` json) `shouldBe` True
+          ("\"locks\":" `isInfixOf` json) `shouldBe` True
+          ("\"accessible\":" `isInfixOf` json) `shouldBe` True
           -- restored binder names are present in the wire format
           ("(t, s)" `isInfixOf` json) `shouldBe` True
+        ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
+
+  describe "diagnoseTypeError modal context" $ do
+    it "marks available and unavailable variables in an error context" $ do
+      let src = "#lang rzk-1\n\
+                \#def bad (A : U) (B :_op U) : U := B\n"
+      case diagnose src of
+        [d] -> do
+          diagnosticMessage d `shouldSatisfy` isInfixOf "  A : U"
+          diagnosticMessage d `shouldNotSatisfy` isInfixOf "× A : U"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "× B : U  [modality: ᵒᵖ, locks: _id]"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "variable B is inaccessible in the current modal context"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "declared modality: ᵒᵖ"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "current locks:      _id"
+        ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
+
+    it "distinguishes lambda and modal-introduction mismatches" $ do
+      let lambdaSrc = "#lang rzk-1\n\
+                      \#def bad : (A : U) -> A -> A := \\ (A :_op U) a -> a\n"
+          introSrc = "#lang rzk-1\n\
+                     \#def bad (A :_b U) (a :_b A) : _b A := mod _op a\n"
+      case (diagnose lambdaSrc, diagnose introSrc) of
+        ([lambdaErr], [introErr]) -> do
+          diagnosticCode lambdaErr `shouldBe` "TypeErrorModalityMismatch"
+          diagnosticMessage lambdaErr `shouldSatisfy`
+            isInfixOf "modality mismatch in lambda parameter A"
+          diagnosticMessage lambdaErr `shouldSatisfy`
+            isInfixOf "expected from function type: _id"
+          diagnosticMessage introErr `shouldSatisfy`
+            isInfixOf "modality mismatch in modal introduction"
+          diagnosticMessage introErr `shouldSatisfy`
+            isInfixOf "expected by result type: ♭"
+          diagnosticMessage introErr `shouldSatisfy`
+            isInfixOf "written after `mod`:     ᵒᵖ"
+        result -> expectationFailure ("expected one diagnostic for each source, got " <> show result)
+
+    it "reports the value and type for a non-modal let-mod elimination" $ do
+      let src = "#lang rzk-1\n\
+                \#def bad (A : U) (x : A) : A := let mod _# y := x in y\n"
+      case diagnose src of
+        [d] -> do
+          diagnosticCode d `shouldBe` "TypeErrorNotModal"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "cannot eliminate a non-modal value with `let mod ♯`"
+          diagnosticMessage d `shouldSatisfy` isInfixOf "value: x"
+          diagnosticMessage d `shouldSatisfy` isInfixOf "type:  A"
+        ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
+
+    it "reports the term and expected type for modal introduction" $ do
+      case diagnose "#lang rzk-1\n#def bad : Unit := mod _op unit\n" of
+        [d] -> do
+          diagnosticCode d `shouldBe` "TypeErrorNotModal"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "cannot check modal introduction against a non-modal type"
+          diagnosticMessage d `shouldSatisfy` isInfixOf "term: mod ᵒᵖ unit"
+          diagnosticMessage d `shouldSatisfy` isInfixOf "expected type: Unit"
+        ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
+
+    it "reports the expected and actual modalities for let-mod elimination" $ do
+      let src = "#lang rzk-1\n\
+                \#def bad (A :_op U) (x : _op A) : _op A\n\
+                \  := let mod _# a := x in mod _op a\n"
+      case diagnose src of
+        [d] -> do
+          diagnosticCode d `shouldBe` "TypeErrorModalityMismatch"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "modality mismatch in modal elimination"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "expected by `let mod`: ♯"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "value's modality:     ᵒᵖ"
+        ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
+
+    it "reports the operand and its type when a modal type is ill-formed" $ do
+      case diagnose "#lang rzk-1\n#def bad : U := _op unit\n" of
+        [d] -> do
+          diagnosticCode d `shouldBe` "TypeErrorNotTypeInModal"
+          diagnosticMessage d `shouldSatisfy` isInfixOf "cannot form modal type ᵒᵖ unit"
+          diagnosticMessage d `shouldSatisfy` isInfixOf "has type\n  Unit"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "but its type must be U, CUBE, or TOPE"
+        ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
+
+    it "uses the structured modality error when unifying function types" $ do
+      let src = "#lang rzk-1\n\
+                \#postulate f : ((X : U) -> U) -> Unit\n\
+                \#postulate g : (X :_op U) -> U\n\
+                \#def bad : Unit := f g\n"
+      case diagnose src of
+        [d] -> do
+          diagnosticCode d `shouldBe` "TypeErrorModalityMismatch"
+          diagnosticMessage d `shouldSatisfy`
+            isInfixOf "cannot unify function types with different parameter modalities"
+          diagnosticMessage d `shouldSatisfy` isInfixOf "expected: _id"
+          diagnosticMessage d `shouldSatisfy` isInfixOf "actual:   ᵒᵖ"
         ds  -> expectationFailure ("expected one diagnostic, got " <> show (length ds))
 
   describe "JSON encoding" $ do
diff --git a/test/Rzk/FoilCoreSpec.hs b/test/Rzk/FoilCoreSpec.hs
--- a/test/Rzk/FoilCoreSpec.hs
+++ b/test/Rzk/FoilCoreSpec.hs
@@ -64,6 +64,7 @@
   , varDeclaredAssumptions = []
   , varLocation = Nothing
   , varDataRole = Nothing
+  , varSchematicStatus = SchematicUnchecked
   , varMetaPrefix = 0
   }
 
@@ -84,6 +85,9 @@
     it_roundTrips "\\ (t, s) -> first (t, s)" "\\ (t, s) → π₁ (t, s)"
     it_roundTrips "\\ A -> \\ (x : A) -> refl_{x : A}" "\\ A → \\ (x : A) → refl_{ x : A }"
     it_roundTrips "\\ t -> \\ s -> t === s" "\\ t → \\ s → t ≡ s"
+    it_roundTrips "\\ x -> match _b x (c a => a)" "\\ x → match ♭ x (c a ⇒ a)"
+    it_roundTrips "\\ x -> match _op x into (\\ _ -> Unit) (c => unit)" "\\ x → match ᵒᵖ x into (\\ x₁ → Unit) (c ⇒ unit)"
+    it_roundTrips "\\ x -> match (mod _b x) (c => unit)" "\\ x → match (mod ♭ x) (c ⇒ unit)"
 
   describe "α-equivalence ignores binder names" $ do
     it "\\ x -> x is \\ y -> y" $
diff --git a/test/Rzk/HolesSpec.hs b/test/Rzk/HolesSpec.hs
--- a/test/Rzk/HolesSpec.hs
+++ b/test/Rzk/HolesSpec.hs
@@ -6,7 +6,7 @@
 -- between term variables and cube variables).
 module Rzk.HolesSpec (spec) where
 
-import           Data.List           (isInfixOf)
+import           Data.List           (isInfixOf, isPrefixOf)
 import           Data.Maybe          (fromMaybe)
 import qualified Data.Text           as T
 import qualified Data.Text.IO        as T (readFile)
@@ -135,10 +135,43 @@
         [h1, h2] -> do
           show (holeGoal h1) `shouldBe` "A"
           show (holeGoal h2) `shouldBe` "A"
-          map show (holeTopes h1) `shouldContain` ["t ≤ s"]
-          map show (holeTopes h2) `shouldContain` ["s ≤ t"]
+          map (show . holeTopeValue) (holeTopes h1) `shouldContain` ["t ≤ s"]
+          map (show . holeTopeValue) (holeTopes h2) `shouldContain` ["s ≤ t"]
         hs  -> expectationFailure ("expected exactly two holes, got " <> show (length hs))
 
+    it "records holes in point positions of a recOR guard" $ do
+      let src = "#lang rzk-1\n#define square (A : U) (a : A)\n  : (2 × 2) → A\n  := \\ (t , s) → recOR ( ? ≤ ? ↦ a , ? ↦ a )\n"
+          holes = holesOf src
+      length (filter ((== "?") . show . holeGoal) holes) `shouldBe` 2
+      map (show . holeGoal) holes `shouldContain` ["TOPE"]
+      length holes `shouldBe` 3
+      let pointLocations =
+            [ loc
+            | h <- holes
+            , show (holeGoal h) == "?"
+            , Just loc <- [holeLocation h]
+            ]
+      case pointLocations of
+        [l, r] -> l `shouldNotBe` r
+        ls     -> expectationFailure ("expected two point-hole locations, got " <> show ls)
+
+    it "does not treat an undefined point name as a hole" $ do
+      let src = "#lang rzk-1\n#define bad : TOPE := missing ≤ 0₂\n"
+      holesOf src `shouldBe` []
+      errTagsOf src `shouldContain` ["TypeErrorUndefined"]
+
+    it "records holes in equality point positions" $ do
+      let holes = holesOf "#lang rzk-1\n#define face : TOPE := ? ≡ ?\n"
+      map (show . holeGoal) holes `shouldBe` ["?", "?"]
+
+    it "rejects a general cube point on either side of an order tope" $ do
+      let invalidRight = "#lang rzk-1\n#define bad (p : 2 × 2) : TOPE := ? ≤ p\n"
+          invalidLeft = "#lang rzk-1\n#define bad (p : 2 × 2) : TOPE := p ≤ ?\n"
+      length (holesOf invalidRight) `shouldBe` 1
+      errTagsOf invalidRight `shouldContain` ["TypeErrorOther"]
+      holesOf invalidLeft `shouldBe` []
+      errTagsOf invalidLeft `shouldContain` ["TypeErrorOther"]
+
     -- When the recOR is checked against an /extension type/, each branch hole
     -- reports the boundary it must meet under its tope (the restriction is
     -- pushed into the branches), rather than the bare underlying type. So the
@@ -151,9 +184,9 @@
           ("A [" `isInfixOf` goal1) `shouldBe` True   -- a restricted type, not bare A
           ("↦ f t" `isInfixOf` goal1) `shouldBe` True -- the s ≡ 0₂ face is shown
           ("↦ a" `isInfixOf` goal1) `shouldBe` True   -- the s ≡ 1₂ face is shown
-          map show (holeTopes h1) `shouldContain` ["s ≤ t"]
+          map (show . holeTopeValue) (holeTopes h1) `shouldContain` ["s ≤ t"]
           show (holeGoal h2) `shouldBe` goal1          -- both branches carry the same boundary
-          map show (holeTopes h2) `shouldContain` ["t ≤ s"]
+          map (show . holeTopeValue) (holeTopes h2) `shouldContain` ["t ≤ s"]
         hs  -> expectationFailure ("expected exactly two holes, got " <> show (length hs))
 
     -- A hole nested inside a larger term (`f ?`) checked against an
@@ -249,7 +282,7 @@
           let goal = show (holeGoal h)
           ("t ≡ s" `isInfixOf` goal) `shouldBe` True
           ('π' `elem` goal) `shouldBe` False
-          map show (holeTopes h) `shouldContain` ["s ≤ t"]
+          map (show . holeTopeValue) (holeTopes h) `shouldContain` ["s ≤ t"]
           -- the cube variable is shown as the pattern, not a fresh variable
           names (holeCubeVars h) `shouldBe` ["(t, s)"]
         hs  -> expectationFailure ("expected exactly one hole, got " <> show (length hs))
@@ -262,7 +295,7 @@
           let goal = show (holeGoal h)
           ("r ≡ t" `isInfixOf` goal) `shouldBe` True
           ('π' `elem` goal) `shouldBe` False
-          map show (holeTopes h) `shouldContain` ["r ≤ s"]
+          map (show . holeTopeValue) (holeTopes h) `shouldContain` ["r ≤ s"]
           names (holeCubeVars h) `shouldBe` ["((t, s), r)"]
         hs  -> expectationFailure ("expected exactly one hole, got " <> show (length hs))
 
@@ -284,7 +317,7 @@
         [h] -> do
           let goal = show (holeGoal h)
           ("π₁ p ≡ π₂ p" `isInfixOf` goal) `shouldBe` True
-          map show (holeTopes h) `shouldContain` ["π₂ p ≤ π₁ p"]
+          map (show . holeTopeValue) (holeTopes h) `shouldContain` ["π₂ p ≤ π₁ p"]
         hs  -> expectationFailure ("expected exactly one hole, got " <> show (length hs))
 
   describe "holeCandidates (type-directed elimination candidates)" $ do
@@ -496,6 +529,114 @@
                 <> "#define goal (A : U) (x y : A) (p : x = y) : y = x := ?\n"
       in flip oneHole (holesWithLemmas [] indSrc) $ \h ->
            filter (isInfixOf "ind-path") (cands h) `shouldBe` []
+
+  -- Emily Riehl's report on the Yoneda game's square-gives-an-equality level
+  -- (2026-09-22): the square lemma was not offered at exactly the holes that
+  -- need it. The candidate's type is `comp-is-segal ?A ?is ?x ?y ?z ?f ?g = ?h`
+  -- and the goal's two edges are λs whose bodies are applications of the
+  -- square, `\ t → α t 0₂`. Matching η-expands the hole to `\ t → ?f t` and
+  -- compared the bodies `?f t` and `α t 0₂` spine-wise, so `t` was unified
+  -- against `0₂` and failed. A hole-headed application is flexible (filling
+  -- the head decides its shape), so it fits any term, as the shaped unifier
+  -- already says for a bare mismatch. The rows below are the probe table of
+  -- the report: the corners (`α 0₂ 0₂`) are not the obstacle, nor is a λ that
+  -- η-reduces to a variable or a constant λ; only a λ whose body is an
+  -- application of something other than the bound variable failed.
+  describe "holeCandidates against λ arguments into extension types" $ do
+    let cands = map show . holeCandidates
+        prelude = "#lang rzk-1\n\
+          \#def Δ¹ : 2 → TOPE := \\ t → TOP\n\
+          \#def Δ² : (2 × 2) → TOPE := \\ (t , s) → s ≤ t\n\
+          \#def hom (A : U) (x y : A) : U\n\
+          \  := (t : Δ¹) → A [ t ≡ 0₂ ↦ x , t ≡ 1₂ ↦ y ]\n\
+          \#def hom2 (A : U) (x y z : A) (f : hom A x y) (g : hom A y z) (h : hom A x z) : U\n\
+          \  := ((t , s) : Δ²) → A [ s ≡ 0₂ ↦ f t , t ≡ 1₂ ↦ g s , s ≡ t ↦ h s ]\n\
+          \#def is-contr (A : U) : U := Σ (x : A) , (y : A) → x = y\n\
+          \#def is-segal (A : U) : U\n\
+          \  := (x : A) → (y : A) → (z : A) → (f : hom A x y) → (g : hom A y z)\n\
+          \  → is-contr (Σ (h : hom A x z) , (hom2 A x y z f g h))\n\
+          \#def comp-is-segal (A : U) (is-segal-A : is-segal A) (x y z : A)\n\
+          \  (f : hom A x y) (g : hom A y z) : hom A x z\n\
+          \  := first (first (is-segal-A x y z f g))\n\
+          \#postulate uniqueness-comp-is-segal (A : U) (is-segal-A : is-segal A) (x y z : A)\n\
+          \  (f : hom A x y) (g : hom A y z) (h : hom A x z) (alpha : hom2 A x y z f g h)\n\
+          \  : comp-is-segal A is-segal-A x y z f g = h\n"
+        -- the lemma's own spine; the idJ spine over it is a separate move
+        uniqueness = filter (isPrefixOf "uniqueness-comp-is-segal ") . cands
+        offered src = case holesWithLemmas ["uniqueness-comp-is-segal"] (prelude <> src) of
+          [h] -> uniqueness h `shouldBe`
+                   ["uniqueness-comp-is-segal ?A ?is-segal-A ?x ?y ?z ?f ?g ?h ?alpha"]
+          hs  -> expectationFailure ("expected exactly one hole, got " <> show (length hs))
+
+    it "offers the lemma when corners and edges are variables" $
+      offered "#def goal (A : U) (is-segal-A : is-segal A) (x y z : A)\n\
+              \  (f : hom A x y) (g : hom A y z) (h : hom A x z)\n\
+              \  : comp-is-segal A is-segal-A x y z f g = h := ?\n"
+
+    it "offers the lemma when the corners are applications of a square" $
+      offered "#def goal (A : U) (is-segal-A : is-segal A) (α : Δ¹ → Δ¹ → A)\n\
+              \  (f : hom A (α 0₂ 0₂) (α 1₂ 0₂)) (g : hom A (α 1₂ 0₂) (α 1₂ 1₂))\n\
+              \  (h : hom A (α 0₂ 0₂) (α 1₂ 1₂))\n\
+              \  : comp-is-segal A is-segal-A (α 0₂ 0₂) (α 1₂ 0₂) (α 1₂ 1₂) f g = h := ?\n"
+
+    it "offers the lemma when an edge is an η-expansion" $
+      offered "#def goal (A : U) (is-segal-A : is-segal A) (f' : Δ¹ → A) (z : A)\n\
+              \  (g : hom A (f' 1₂) z) (h : hom A (f' 0₂) z)\n\
+              \  : comp-is-segal A is-segal-A (f' 0₂) (f' 1₂) z (\\ t → f' t) g = h := ?\n"
+
+    it "offers the lemma when the edges are constant λs" $
+      offered "#def goal (A : U) (is-segal-A : is-segal A) (x : A) (h : hom A x x)\n\
+              \  : comp-is-segal A is-segal-A x x x (\\ t → x) (\\ t → x) = h := ?\n"
+
+    -- The reported case: both edges are λs whose bodies apply the square to
+    -- the bound variable and a constant, so neither η-reduces.
+    it "offers the lemma when the edges are λs applying a square" $
+      offered "#def goal (A : U) (is-segal-A : is-segal A) (α : Δ¹ → Δ¹ → A)\n\
+              \  (h : hom A (α 0₂ 0₂) (α 1₂ 1₂))\n\
+              \  : comp-is-segal A is-segal-A (α 0₂ 0₂) (α 1₂ 0₂) (α 1₂ 1₂)\n\
+              \      (\\ t → α t 0₂) (\\ s → α 1₂ s) = h := ?\n"
+
+    -- The same with a λ on the right-hand side (the level's actual goal).
+    it "offers the lemma when the right-hand side is a λ too" $
+      offered "#def goal (A : U) (is-segal-A : is-segal A) (α : Δ¹ → Δ¹ → A)\n\
+              \  : comp-is-segal A is-segal-A (α 0₂ 0₂) (α 1₂ 0₂) (α 1₂ 1₂)\n\
+              \      (\\ t → α t 0₂) (\\ s → α 1₂ s) = (\\ t → α t t) := ?\n"
+
+    -- Accepting the move means the inserted term, with every argument a
+    -- hole, must still check in lenient mode: the move is useless otherwise.
+    it "tolerates the lemma applied to holes at the reported goal" $
+      errTagsOf (prelude
+        <> "#def goal (A : U) (is-segal-A : is-segal A) (α : Δ¹ → Δ¹ → A)\n\
+           \  (h : hom A (α 0₂ 0₂) (α 1₂ 1₂))\n\
+           \  : comp-is-segal A is-segal-A (α 0₂ 0₂) (α 1₂ 0₂) (α 1₂ 1₂)\n\
+           \      (\\ t → α t 0₂) (\\ s → α 1₂ s) = h\n\
+           \  := uniqueness-comp-is-segal A ? ? ? ? ? ? ? ?\n")
+        `shouldBe` []
+
+    -- Flexibility is the hole's, not the λ's: a λ body that mismatches
+    -- rigidly (no hole at its head) still rejects the candidate.
+    it "does not offer a lemma whose λ argument mismatches rigidly" $ do
+      let src = "#postulate Q (A : U) (e : Δ¹ → A) : U\n\
+                \#postulate B : U\n\
+                \#postulate c : Δ¹ → Δ¹ → B\n\
+                \#postulate lem : Q B (\\ t → c 0₂ t)\n"
+          goalAt e = prelude <> src <> "#def goal : Q B (\\ t → " <> e <> ") := ?\n"
+          lemAt f e = case holesWithLemmas ["lem"] (goalAt e) of
+            [h] -> f (filter (isPrefixOf "lem") (cands h))
+            hs  -> expectationFailure ("expected exactly one hole, got " <> show (length hs))
+      lemAt (`shouldBe` ["lem"]) "c 0₂ t"
+      lemAt (`shouldBe` [])      "c t 0₂"
+      lemAt (`shouldBe` [])      "c t 1₂"
+
+    -- The flexible side may be on either side of the comparison: here the
+    -- goal's edge is a variable and the lemma's is the λ.
+    it "offers a lemma whose own λ argument meets a variable edge" $ do
+      let src = "#postulate Q (A : U) (e : Δ¹ → A) : U\n\
+                \#postulate lem (A : U) (α : Δ¹ → Δ¹ → A) : Q A (\\ t → α t 0₂)\n\
+                \#def goal (A : U) (e : Δ¹ → A) : Q A e := ?\n"
+      case holesWithLemmas ["lem"] (prelude <> src) of
+        [h] -> filter (isPrefixOf "lem") (cands h) `shouldBe` ["lem ?A ?α"]
+        hs  -> expectationFailure ("expected exactly one hole, got " <> show (length hs))
 
   describe "holeCandidates under shadowing" $ do
     let cands = map show . holeCandidates
diff --git a/test/Rzk/RSTTSafeSpec.hs b/test/Rzk/RSTTSafeSpec.hs
new file mode 100644
--- /dev/null
+++ b/test/Rzk/RSTTSafeSpec.hs
@@ -0,0 +1,286 @@
+{-# LANGUAGE OverloadedStrings #-}
+module Rzk.RSTTSafeSpec (spec) where
+
+import qualified Data.Text as T
+import qualified Language.Rzk.Syntax as Syntax
+import Rzk.Diagnostic (checkWarningTag, typeErrorTagInScopedContext)
+import Rzk.TypeCheck
+import Rzk.TypeCheck.MetaPrefix (isMetaType, metaPrefixOf)
+import Language.Rzk.Foil.Syntax (typeAscT, universeT)
+import Test.Hspec
+
+-- Exercise the public driver used by the CLI and incremental editor clients.
+-- The source fixtures cover the individual fragment conditions.
+run :: Maybe RSTTSafeMode -> [T.Text] -> ([String], [String], Int)
+run override sources =
+  let (errors, warnings, holes) = runDetails override sources
+  in (errors, map checkWarningTag warnings, holes)
+
+runDetails :: Maybe RSTTSafeMode -> [T.Text] -> ([String], [CheckWarning], Int)
+runDetails override sources =
+  case traverse Syntax.parseModule sources of
+    Left err -> error (T.unpack err)
+    Right modules -> case checkedModules (zip (map show [1 :: Int ..]) modules)
+      ((allowHoles emptyContext) { ctxRSTTSafeOverride = override, ctxVerbosity = Silent }) of
+        Left err -> ([typeErrorTagInScopedContext err], [], 0)
+        Right (checked, holes) ->
+          ( map typeErrorTagInScopedContext (checkedErrors checked)
+          , checkedWarnings checked
+          , length holes
+          )
+
+nested :: T.Text
+nested = "#def nested (A : U) (a : A) : A := (\\ (B : U) (b : B) → b) A a\n"
+
+spec :: Spec
+spec = describe "RSTT-safe run policy" $ do
+  it "reports exhausted meta-prefix classification in warn and error modes" $ do
+    -- A valid type ascription needs a head reduction; force that inspection
+    -- to reach the judgement limit without an enormous source fixture.
+    let inspect mode = runTypeCheckWith
+          (emptyContext { ctxRSTTSafeOverride = Just mode
+                        , ctxVerbosity = Silent
+                        , ctxActionStackDepth = maxActionStackDepth })
+          (metaPrefixOf (typeAscT universeT universeT))
+        (warnResult, (_, warnWarnings)) = inspect RSTTSafeWarn
+        (errorResult, (_, errorWarnings)) = inspect RSTTSafeError
+    either (const Nothing) Just warnResult `shouldBe` Just 0
+    map checkWarningTag warnWarnings `shouldBe` ["RSTTIncompleteWarning"]
+    either (Just . typeErrorTagInScopedContext) (const Nothing) errorResult
+      `shouldBe` Just "TypeErrorRSTT"
+    map checkWarningTag errorWarnings `shouldBe` ["RSTTIncompleteWarning"]
+
+  it "does not classify an inspection failure as an object type" $ do
+    let (result, _) = runTypeCheckWith
+          (emptyContext { ctxVerbosity = Silent
+                        , ctxActionStackDepth = maxActionStackDepth })
+          (isMetaType (typeAscT universeT universeT))
+    either (Just . typeErrorTagInScopedContext) (const Nothing) result
+      `shouldBe` Just "TypeErrorOther"
+
+  it "classifies a reducible universe when inspection succeeds" $ do
+    let (result, (_, warnings)) = runTypeCheckWith
+          (emptyContext { ctxVerbosity = Silent })
+          (isMetaType (typeAscT universeT universeT))
+    either (const Nothing) Just result `shouldBe` Just True
+    map checkWarningTag warnings `shouldBe` []
+
+  it "keeps a CLI error selection despite source attempts to disable checks" $ do
+    let (errors, _, _) = run (Just RSTTSafeError)
+          ["#lang rzk-1\n#set-option \"rstt-safe\" = \"off\"\n#set-option \"warn-meta-binder\" = \"no\"\n" <> nested]
+    errors `shouldBe` ["TypeErrorRSTT"]
+  it "keeps a CLI warning selection despite a source error selection" $ do
+    let (errors, warnings, _) = run (Just RSTTSafeWarn)
+          ["#lang rzk-1\n#set-option \"rstt-safe\" = \"error\"\n" <> nested]
+    errors `shouldBe` []
+    warnings `shouldBe` ["MetaBinderWarning"]
+  it "applies the CLI selection to subsequent modules" $ do
+    let (errors, _, _) = run (Just RSTTSafeError)
+          ["#lang rzk-1\n#def id (A : U) (a : A) : A := a\n",
+           "#lang rzk-1\n#set-option \"rstt-safe\" = \"off\"\n" <> nested]
+    errors `shouldBe` ["TypeErrorRSTT"]
+  it "keeps restriction checks enabled by the CLI despite source options" $ do
+    let source = "#lang rzk-1\n#set-option \"rstt-safe\" = \"off\"\n#set-option \"warn-free-standing-restriction\" = \"no\"\n#postulate restricted (A : U) (a : A) : A [TOP ↦ a]\n"
+        (errors, _, _) = run (Just RSTTSafeError) [source]
+        (warnErrors, warnings, _) = run (Just RSTTSafeWarn) [source]
+    errors `shouldBe` ["TypeErrorRSTT"]
+    warnErrors `shouldBe` []
+    warnings `shouldBe` ["FreeStandingRestrictionWarning"]
+  it "keeps outer-point dependency checks enabled by the CLI" $ do
+    let source = "#lang rzk-1\n#set-option \"rstt-safe\" = \"off\"\n#set-option \"warn-shape-dependency\" = \"no\"\n#postulate mixed (A : U) (a : A) (s : 2) (f : (t : 2) → A [t === s ↦ a]) : Unit\n"
+        (errors, _, _) = run (Just RSTTSafeError) [source]
+        (warnErrors, warnings, _) = run (Just RSTTSafeWarn) [source]
+    errors `shouldBe` ["TypeErrorRSTT"]
+    warnErrors `shouldBe` []
+    warnings `shouldBe` ["RSTTShapeDependencyWarning"]
+  it "does not check shape dependencies by default" $ do
+    run Nothing
+      ["#lang rzk-1\n#postulate mixed (A : U) (a : A) (s : 2) (f : (t : 2) → A [t === s ↦ a]) : Unit\n"]
+      `shouldBe` ([], [], 0)
+  it "warns about shape dependencies when the standalone option is on" $ do
+    run Nothing
+      ["#lang rzk-1\n#set-option \"warn-shape-dependency\" = \"yes\"\n#postulate mixed (A : U) (a : A) (s : 2) (f : (t : 2) → A [t === s ↦ a]) : Unit\n"]
+      `shouldBe` ([], ["RSTTShapeDependencyWarning"], 0)
+  it "restores the standalone shape-dependency default on unset" $ do
+    run Nothing
+      ["#lang rzk-1\n#set-option \"warn-shape-dependency\" = \"yes\"\n#unset-option \"warn-shape-dependency\"\n#postulate mixed (A : U) (a : A) (s : 2) (f : (t : 2) → A [t === s ↦ a]) : Unit\n"]
+      `shouldBe` ([], [], 0)
+  it "restores an explicit shape-dependency opt-out after safe mode" $ do
+    run Nothing
+      ["#lang rzk-1\n#set-option \"warn-shape-dependency\" = \"no\"\n#set-option \"rstt-safe\" = \"error\"\n#set-option \"rstt-safe\" = \"off\"\n#postulate mixed (A : U) (a : A) (s : 2) (f : (t : 2) → A [t === s ↦ a]) : Unit\n"]
+      `shouldBe` ([], [], 0)
+  it "keeps shape-dependency checks enabled by source safe mode" $ do
+    let (errors, _, _) = run Nothing
+          ["#lang rzk-1\n#set-option \"rstt-safe\" = \"error\"\n#set-option \"warn-shape-dependency\" = \"no\"\n#postulate mixed (A : U) (a : A) (s : 2) (f : (t : 2) → A [t === s ↦ a]) : Unit\n"]
+    errors `shouldBe` ["TypeErrorRSTT"]
+  it "keeps restriction checks enabled by source safe mode" $ do
+    let (errors, _, _) = run Nothing
+          ["#lang rzk-1\n#set-option \"rstt-safe\" = \"error\"\n#set-option \"warn-free-standing-restriction\" = \"no\"\n#postulate restricted (A : U) (a : A) : A [TOP ↦ a]\n"]
+    errors `shouldBe` ["TypeErrorRSTT"]
+  it "restores standalone restriction settings when safe mode is turned off" $ do
+    run Nothing
+      ["#lang rzk-1\n#set-option \"warn-free-standing-restriction\" = \"no\"\n#set-option \"rstt-safe\" = \"warn\"\n#set-option \"rstt-safe\" = \"off\"\n#postulate restricted (A : U) (a : A) : A [TOP ↦ a]\n"]
+      `shouldBe` ([], [], 0)
+  it "resets the standalone binder default even while safe mode is active" $ do
+    run Nothing
+      ["#lang rzk-1\n#set-option \"warn-meta-binder\" = \"yes\"\n#unset-option \"warn-meta-binder\"\n#set-option \"rstt-safe\" = \"off\"\n" <> nested]
+      `shouldBe` ([], [], 0)
+  it "rejects a hole even when the API allows unfinished terms" $ do
+    let (errors, warnings, count) = run (Just RSTTSafeError)
+          ["#lang rzk-1\n#def unfinished : Unit := ?\n"]
+    errors `shouldBe` ["TypeErrorRSTT"]
+    warnings `shouldBe` ["RSTTHoleWarning"]
+    count `shouldBe` 1
+  it "reports unfinished obligations without failing in warning mode" $ do
+    run (Just RSTTSafeWarn) ["#lang rzk-1\n#def unfinished : Unit := ?\n"]
+      `shouldBe` ([], ["RSTTHoleWarning"], 1)
+
+  it "rejects outer-point capture introduced by an instantiated type family" $ do
+    let source = T.unlines
+          [ "#lang rzk-1"
+          , "#def extension (φ : 2 → TOPE) (A : U) (a : A) : U :="
+          , "  (t : 2) → A [φ t ↦ a]"
+          , "#def at-point (A : U) (a : A) (s : 2)"
+          , "  (f : extension (\\ t → t === s) A a) : A := f s"
+          ]
+        (errors, warnings, _) = run (Just RSTTSafeError) [source]
+    errors `shouldBe` ["TypeErrorRSTT"]
+    warnings `shouldBe` ["RSTTShapeDependencyWarning"]
+
+  it "exposes shapes behind lets and both projections" $ do
+    let shape = "(t : 2) → A [φ t ↦ a]"
+        bodies =
+          [ "let X : U := " <> shape <> " in X"
+          , "first ((" <> shape <> "), unit)"
+          , "second (unit, (" <> shape <> "))"
+          ]
+    mapM_ (\body -> do
+      let source = T.unlines
+            [ "#lang rzk-1"
+            , "#def extension (φ : 2 → TOPE) (A : U) (a : A) : U := " <> body
+            , "#postulate bad (A : U) (a : A) (s : 2)"
+            , "  (f : extension (\\ t → t === s) A a) : Unit"
+            ]
+          (errors, warnings, _) = run (Just RSTTSafeError) [source]
+      errors `shouldBe` ["TypeErrorRSTT"]
+      warnings `shouldBe` ["RSTTShapeDependencyWarning"]) bodies
+
+  it "checks argument domains created by earlier schematic arguments" $ do
+    let source = T.unlines
+          [ "#lang rzk-1"
+          , "#postulate schema (φ : 2 → TOPE) (A : U) (a : A)"
+          , "  (f : (t : 2) → A [φ t ↦ a]) : Unit"
+          , "#def bad (A : U) (a : A) (s : 2) : Unit :="
+          , "  schema (\\ t → t === s) A a (\\ t → a)"
+          ]
+        (errors, warnings, _) = run (Just RSTTSafeError) [source]
+    errors `shouldBe` ["TypeErrorRSTT"]
+    warnings `shouldBe` ["RSTTShapeDependencyWarning"]
+
+  it "allows independent shapes after unfolding and beta reduction" $ do
+    run (Just RSTTSafeError) [T.unlines
+      [ "#lang rzk-1"
+      , "#def extension (φ : 2 → TOPE) (A : U) (a : A) : U :="
+      , "  (t : 2) → A [φ t ↦ a]"
+      , "#def at-point (A : U) (a : A) (s : 2)"
+      , "  (f : extension (\\ t → t === 0_2) A a) : A := f s"
+      ]] `shouldBe` ([], [], 0)
+
+  it "finds contextual domains after instantiation, let reduction and projection" $ do
+    let source = T.unlines
+          [ "#lang rzk-1"
+          , "#def shape (φ : 2 → TOPE) (A : U) : U := (t : 2 | φ t) → A"
+          , "#postulate bad (A : U) (s : 2)"
+          , "  (f : first ((let X := shape (\\ t → t <= s) A in X), unit)) : Unit"
+          ]
+        (errors, warnings, _) = run (Just RSTTSafeWarn) [source]
+    errors `shouldBe` []
+    warnings `shouldSatisfy` elem "RSTTShapeDependencyWarning"
+
+  it "preserves dependencies even when a guard simplifies to top" $ do
+    let source = T.unlines
+          [ "#lang rzk-1"
+          , "#def extension (φ : 2 → TOPE) (A : U) (a : A) : U :="
+          , "  (t : 2) → A [φ t ↦ a]"
+          , "#postulate bad (A : U) (a : A) (s : 2)"
+          , "  (f : extension (\\ t → s === s) A a) : Unit"
+          ]
+        (errors, warnings, _) = run (Just RSTTSafeError) [source]
+    errors `shouldBe` ["TypeErrorRSTT"]
+    warnings `shouldBe` ["RSTTShapeDependencyWarning"]
+
+  it "preserves concluded tails after unfolding" $ do
+    let source = T.unlines
+          [ "#lang rzk-1"
+          , "#set-option \"rstt-safe\" = \"off\""
+          , "#def restricted (A : U) (a : A) : U := A [TOP ↦ a]"
+          , "#set-option \"rstt-safe\" = \"error\""
+          , "#def good (A : U) (a : A) : restricted A a := a"
+          ]
+    run Nothing [source] `shouldBe` ([], [], 0)
+
+  it "reports an incomplete audit instead of silently accepting a reduction limit" $ do
+    let source = T.unlines $ ["#lang rzk-1", "#def T0 : U := Unit"] <>
+          [ "#def T" <> T.pack (show i) <> " : U := T" <> T.pack (show (i - 1))
+          | i <- [1 .. 260 :: Int] ]
+        (errors, warnings, _) = run (Just RSTTSafeWarn) [source]
+        (strictErrors, _, _) = run (Just RSTTSafeError) [source]
+    errors `shouldBe` []
+    warnings `shouldSatisfy` elem "RSTTIncompleteWarning"
+    strictErrors `shouldSatisfy` elem "TypeErrorRSTT"
+
+  it "audits computed argument types in standalone commands" $ do
+    let declarations = T.unlines
+          [ "#lang rzk-1"
+          , "#postulate schema (φ : 2 → TOPE) (A : U) (a : A)"
+          , "  (f : (t : 2) → A [φ t ↦ a]) : Unit"
+          ]
+        application = "(\\ (s : 2) → schema (\\ t → t === s) Unit unit (\\ t → unit))"
+    mapM_ (\command -> do
+      let (errors, warnings, _) = run (Just RSTTSafeError) [declarations <> command]
+      errors `shouldBe` ["TypeErrorRSTT"]
+      warnings `shouldBe` ["RSTTShapeDependencyWarning"])
+      [ "#check " <> application <> " : 2 → Unit"
+      , "#compute " <> application
+      , "#compute-nf " <> application
+      ]
+
+  it "locates unsupported syntax below binders before it can reduce away" $ do
+    let source = "#lang rzk-1\n#def discard (i : 2) : Unit :=\n  (\\ (j : 2) → unit) (sup i 1_2)\n"
+        (errors, warnings, _) = runDetails (Just RSTTSafeWarn) [source]
+    errors `shouldBe` []
+    map checkWarningTag warnings `shouldBe` ["RSTTSyntaxWarning"]
+    map warningLocation warnings `shouldBe`
+      [Just (LocationInfo (Just "1") (Just 3) (Just 23))]
+  it "checks standalone commands as well as declarations" $ do
+    let (errors, warnings, _) = run (Just RSTTSafeError)
+          ["#lang rzk-1\n#check (\\ (j : 2) → unit) (sup 0_2 1_2) : Unit\n"]
+    errors `shouldBe` ["TypeErrorRSTT"]
+    warnings `shouldBe` ["RSTTSyntaxWarning"]
+  it "locates modal syntax inside an otherwise allowed term" $ do
+    let (errors, warnings, _) = runDetails (Just RSTTSafeWarn)
+          ["#lang rzk-1\n#def modal : U :=\n  (_# Unit)\n"]
+    errors `shouldBe` []
+    map checkWarningTag warnings `shouldBe` ["RSTTModalWarning"]
+    map warningLocation warnings `shouldBe`
+      [Just (LocationInfo (Just "1") (Just 3) (Just 4))]
+  it "locates match before elaboration turns it into an eliminator" $ do
+    let (errors, warnings, _) = runDetails (Just RSTTSafeWarn)
+          ["#lang rzk-1\n#data bool := false | true\n#def choose (b : bool) : bool :=\n  match b (false ⇒ true | true ⇒ false)\n"]
+    errors `shouldBe` []
+    map checkWarningTag warnings `shouldBe`
+      ["RSTTInductiveWarning", "RSTTInductiveWarning"]
+    map warningLocation warnings `shouldBe`
+      [ Just (LocationInfo (Just "1") (Just 2) (Just 1))
+      , Just (LocationInfo (Just "1") (Just 4) (Just 3)) ]
+  it "still rejects direct constructor uses when safe mode is re-enabled" $ do
+    let (errors, warnings, _) = runDetails Nothing
+          ["#lang rzk-1\n#set-option \"rstt-safe\" = \"off\"\n#data bool := false | true\n#set-option \"rstt-safe\" = \"warn\"\n#def yes : bool := true\n"]
+    errors `shouldBe` []
+    map checkWarningTag warnings `shouldBe` ["RSTTInductiveWarning"]
+    map warningLocation warnings `shouldBe`
+      [Just (LocationInfo (Just "1") (Just 5) (Just 20))]
+  it "allows local binders that shadow constructor names" $ do
+    run Nothing
+      ["#lang rzk-1\n#set-option \"rstt-safe\" = \"off\"\n#data bool := false | true\n#set-option \"rstt-safe\" = \"warn\"\n#def shadow (false : Unit) : Unit := false\n"]
+      `shouldBe` ([], [], 0)
diff --git a/test/Rzk/RefIndexSpec.hs b/test/Rzk/RefIndexSpec.hs
--- a/test/Rzk/RefIndexSpec.hs
+++ b/test/Rzk/RefIndexSpec.hs
@@ -146,6 +146,21 @@
     it "does not occlude the type name with the derived entries" $
       -- hovering the declaration's own `bool` must hit `bool`, not ind-bool
       RI.bindingName (bindingAt riData "data.rzk" (1, 6)) `shouldBe` "bool"
+
+  describe "modal match" $ do
+    let matchSrc = T.unlines
+          [ "#lang rzk-1"                                  -- 0
+          , "#data D := c (a : Unit)"                      -- 1
+          , "#define f (x : D) (m : D -> U) : U"           -- 2
+          , "  := match _b x into m (c a => a)"            -- 3
+          ]
+        riMatch = indexOf [("match.rzk", matchSrc)]
+
+    it "indexes the scrutinee, motive, constructor, and branch binder" $ do
+      defPos (bindingAt riMatch "match.rzk" (3, 14)) `shouldBe` ("match.rzk", 2, 11)
+      defPos (bindingAt riMatch "match.rzk" (3, 21)) `shouldBe` ("match.rzk", 2, 19)
+      defPos (bindingAt riMatch "match.rzk" (3, 24)) `shouldBe` ("match.rzk", 1, 11)
+      defPos (bindingAt riMatch "match.rzk" (3, 31)) `shouldBe` ("match.rzk", 3, 26)
 #else
 spec :: Spec
 spec = describe "reference index" (pure ())
diff --git a/test/Rzk/SchematicSpec.hs b/test/Rzk/SchematicSpec.hs
new file mode 100644
--- /dev/null
+++ b/test/Rzk/SchematicSpec.hs
@@ -0,0 +1,233 @@
+{-# LANGUAGE OverloadedStrings #-}
+module Rzk.SchematicSpec (spec) where
+
+import qualified Data.Text as T
+import qualified Language.Rzk.Syntax as Syntax
+import Rzk.Diagnostic (checkWarningTag, typeErrorTagInScopedContext)
+import Rzk.TypeCheck
+import Test.Hspec
+
+check :: Maybe RSTTSafeMode -> [T.Text] -> ([String], [String])
+check mode sources = case traverse Syntax.parseModule sources of
+  Left err -> error (T.unpack err)
+  Right modules -> case checkedModules (zip (map show [1 :: Int ..]) modules)
+    (emptyContext { ctxRSTTSafeOverride = mode, ctxVerbosity = Silent }) of
+      Left err -> ([typeErrorTagInScopedContext err], [])
+      Right (checked, _) ->
+        (map typeErrorTagInScopedContext (checkedErrors checked),
+         map checkWarningTag (checkedWarnings checked))
+
+source :: [T.Text] -> T.Text
+source declarations = T.unlines ("#lang rzk-1" : declarations)
+
+identity :: T.Text
+identity = "#def id (A : U) (a : A) : A := a"
+
+accepts :: [T.Text] -> Expectation
+accepts ds = check (Just RSTTSafeError) [source ds] `shouldBe` ([], [])
+
+rejects :: [T.Text] -> Expectation
+rejects ds = do
+  let (errors, warnings) = check (Just RSTTSafeError) [source ds]
+  errors `shouldBe` ["TypeErrorRSTT"]
+  warnings `shouldSatisfy` elem "RSTTSchematicWarning"
+
+spec :: Spec
+spec = describe "Schematic declarations" $ do
+  it "accepts ordinary type and family arguments" $ accepts
+    [ identity
+    , "#def apply (A : U) (B : A → U) (f : (a : A) → B a) (a : A) : B a := f a"
+    , "#def good : Unit := apply Unit (\\ x → Unit) (\\ x → id Unit x) unit"
+    ]
+
+  it "keeps schematic statements distinct from proofs" $ accepts
+    [ "#def Bottom : U := (A : U) → A"
+    , "#postulate trusted : Bottom"
+    ]
+
+  it "accepts schematic rule aliases and their instances" $ accepts
+    [ "#def Rule : U := (A : U) → A → A"
+    , "#def apply-rule (rule : Rule) (A : U) (a : A) : A := rule A a"
+    , "#def good : Unit := apply-rule (\\ A a → a) Unit unit"
+    ]
+
+  it "checks every universe instantiation before beta reduction" $
+    rejects [identity, "#def bad : U := id U Unit"]
+
+  it "leaves CUBE and TOPE type arguments to the layer discipline" $
+    mapM_ (\(arg, value) ->
+      fst (check (Just RSTTSafeError)
+             [source [identity, "#def bad : " <> arg <> " := id " <> arg <> " " <> value]])
+        `shouldBe` ["TypeErrorOther"])
+      [("CUBE", "2"), ("TOPE", "TOP")]
+
+  it "rejects families and rules passed as ordinary types" $
+    mapM_ (\(ty, value) -> rejects [identity, "#def bad : " <> ty <> " := id (" <> ty <> ") (" <> value <> ")"])
+      [("U → U", "\\ x → x"), ("(A : U) → A → A", "\\ A a → a")]
+
+  it "rejects the predicate-of-predicates step of Hurkens" $ rejects
+    [ "#def P (A : U) : U := A → U"
+    , "#def bad (X : U) : U := P (P X)"
+    ]
+
+  it "checks family arguments pointwise" $ rejects
+    [ "#def receive (F : Unit → U) : U := F unit"
+    , "#def bad : U := receive (\\ x → U)"
+    ]
+
+  it "checks higher-order family arguments pointwise" $ rejects
+    [ "#def receive (F : U → U) : U := F Unit"
+    , "#def bad : U := receive (\\ A → U)"
+    ]
+
+  it "allows higher-order meta functions with object-valued instances" $ accepts
+    [ "#def receive (F : U → U) : U := F Unit"
+    , "#def good : U := receive (\\ A → A → A)"
+    ]
+
+  it "allows meta computations through pairs" $ accepts
+    [ "#def T : U := first (Unit, unit)"
+    , "#def good : T := unit"
+    ]
+
+  it "rejects a product containing schematic data as an object type" $ rejects
+    [ identity
+    , "#def bad : Σ (A : U), A := id (Σ (A : U), A) (Unit, unit)"
+    ]
+
+  it "rejects object equality between types" $ rejects
+    [ "#postulate bad : Unit =_{U} Unit" ]
+
+  it "rejects equality elimination into the universe" $ rejects
+    [ "#def bad : U := idJ (Unit, unit, (\\ _ _ → U), Unit, unit, refl)" ]
+
+  it "rechecks used dependencies introduced with safe mode off" $ do
+    let ds = [ "#set-option \"rstt-safe\" = \"off\"", identity
+             , "#def bad : U := id U Unit"
+             , "#set-option \"rstt-safe\" = \"error\""
+             , "#def use : U := bad" ]
+        (errors, warnings) = check Nothing [source ds]
+    errors `shouldBe` ["TypeErrorRSTT"]
+    warnings `shouldSatisfy` elem "RSTTSchematicWarning"
+
+  it "does not recheck unused dependencies" $
+    check Nothing [source
+      [ "#set-option \"rstt-safe\" = \"off\"", identity
+      , "#def bad : U := id U Unit"
+      , "#set-option \"rstt-safe\" = \"error\""
+      , "#def good : Unit := unit" ]] `shouldBe` ([], [])
+
+  it "keeps the additional check off in ordinary mode" $
+    check (Just RSTTSafeOff) [source [identity, "#def bad : U := id U Unit"]]
+      `shouldBe` ([], [])
+
+  it "reports kind confusion in warning mode" $
+    check (Just RSTTSafeWarn) [source [identity, "#def bad : U := id U Unit"]]
+      `shouldBe` ([], ["RSTTSchematicWarning"])
+
+  it "checks standalone commands" $
+    mapM_ (\command -> rejects [identity, command])
+      ["#check id U Unit : U", "#compute id U Unit", "#compute-nf id U Unit"]
+
+  it "preserves valid section abstraction and checks later instances" $ do
+    let section = ["#section S", "#assume A : U", "#def local-id (a : A) : A := a", "#end S"]
+    accepts (section <> ["#def good : Unit := local-id Unit unit"])
+    rejects (section <> ["#def bad : U := local-id U Unit"])
+
+  it "reconstructs applications after section parameters become explicit" $ accepts
+    [ "#def product (X Y : U) : U := Σ (x : X), Y"
+    , "#section S", "#assume A B : U"
+    , "#def F (f : A → B) : U := A"
+    , "#def G (f : A → B) : U := product (F f) (F f)"
+    , "#end S"
+    , "#postulate test (A B : U) (f : A → B) : G A B f"
+    ]
+
+  it "rejects a universe hidden in a neutral case split" $ rejects
+    [ "#def mixed (i : 2 | i === 0_2 ∨ i === 1_2) : U :="
+    , "  recOR (i === 0_2 ↦ Unit, i === 1_2 ↦ U)"
+    , "#postulate receive (A : U) : Unit"
+    , "#def bad (i : 2 | i === 0_2 ∨ i === 1_2) : Unit := receive (mixed i)"
+    ]
+
+  it "accepts object types selected by a neutral case split" $ accepts
+    [ "#def mixed (i : 2 | i === 0_2 ∨ i === 1_2) : U :="
+    , "  recOR (i === 0_2 ↦ Unit, i === 1_2 ↦ Unit → Unit)"
+    , "#postulate receive (A : U) : Unit"
+    , "#def good (i : 2 | i === 0_2 ∨ i === 1_2) : Unit := receive (mixed i)"
+    ]
+
+  it "accepts ex falso under an empty shape without following its cyclic annotation" $ accepts
+    [ "#def empty-shape (A : U) (t : 2 | BOT) : A := recBOT" ]
+
+  it "checks erased type arguments in declaration signatures" $ rejects
+    [ identity, "#postulate bad : id U Unit" ]
+
+  it "checks the kinds of boundary values on a universe" $ do
+    rejects ["#def bad : U [TOP ↦ U] := U"]
+    accepts ["#def good : U [TOP ↦ Unit] := Unit"]
+
+  it "checks actual type arguments after reusing an object family" $ do
+    let ds =
+          [ identity
+          , "#def Family (A : U) : U := A → A"
+          , "#def good : Family Unit := id (Family Unit) (\\ x → x)"
+          ]
+    accepts ds
+    rejects (ds <> ["#def bad : Family U := id (Family U) (\\ x → x)"])
+
+  it "checks actual family arguments after reusing an object family" $ do
+    let ds =
+          [ identity
+          , "#def at (F : Unit → U) : U := F unit"
+          , "#def good : at (\\ _ → Unit) := id (at (\\ _ → Unit)) unit"
+          ]
+    accepts ds
+    rejects (ds <> ["#def bad : at (\\ _ → U) := id (at (\\ _ → U)) Unit"])
+
+  it "does not generalise an object instance of a mixed-kind family" $ do
+    let ds =
+          [ "#def mixed (i : 2 | i === 0_2 ∨ i === 1_2) : U :="
+          , "  recOR (i === 0_2 ↦ Unit, i === 1_2 ↦ U)"
+          , "#postulate receive (A : U) : Unit"
+          , "#def good : Unit := receive (mixed 0_2)"
+          ]
+    accepts ds
+    rejects (ds <> ["#def bad : Unit := receive (mixed 1_2)"])
+
+  it "preserves family checks when section telescopes change" $ do
+    let ds =
+          [ identity, "#section S", "#assume A : U", "#assume a : A"
+          , "#def Family : U := A"
+          , "#def first-use uses (A) : Family := id Family a"
+          , "#end S"
+          , "#def good : Family Unit := id (Family Unit) unit"
+          ]
+    accepts ds
+    rejects (ds <> ["#def bad : Family U := id (Family U) Unit"])
+
+  it "checks dependencies in arguments erased by reduction" $ do
+    let ds =
+          [ "#set-option \"rstt-safe\" = \"off\"", identity
+          , "#def bad : Unit := id (U → Unit) (\\ _ → unit) Unit"
+          , "#set-option \"rstt-safe\" = \"error\""
+          , "#def discard (x : Unit) : Unit := unit"
+          , "#def use : Unit := discard bad"
+          ]
+        (errors, warnings) = check Nothing [source ds]
+    errors `shouldBe` ["TypeErrorRSTT"]
+    warnings `shouldSatisfy` elem "RSTTSchematicWarning"
+
+  it "does not cache a family classification justified by a caller's tope" $ do
+    let ds =
+          [ "#def mixed (i : 2 | i === 0_2 ∨ i === 1_2) : U :="
+          , "  recOR (i === 0_2 ↦ Unit, i === 1_2 ↦ U)"
+          , "#postulate receive (A : U) : Unit"
+          , "#def good (i : 2 | i === 0_2 ∨ i === 1_2) : Unit :="
+          , "  receive (recOR (i === 0_2 ↦ mixed i, i === 1_2 ↦ Unit))"
+          ]
+    accepts ds
+    rejects (ds <>
+      [ "#def bad (i : 2 | i === 0_2 ∨ i === 1_2) : Unit :="
+      , "  receive (recOR (i === 0_2 ↦ Unit, i === 1_2 ↦ mixed i))"
+      ])
diff --git a/test/Rzk/SemanticTokensSpec.hs b/test/Rzk/SemanticTokensSpec.hs
--- a/test/Rzk/SemanticTokensSpec.hs
+++ b/test/Rzk/SemanticTokensSpec.hs
@@ -180,6 +180,13 @@
       tokenizeSyntaxSymbols "#lang rzk-1\n#define broken (x : A) := ?\n"
         `shouldSatisfy` any ((== SemanticTokenTypes_Regexp) . _tokenType)
 
+    it "marks a modal match modality as a decorator" $ do
+      let mtoks = tokensOf $ T.unlines
+            [ "#lang rzk-1"
+            , "#define f (x : D) : D := match _b x (c a => a)"
+            ]
+      tokenAt mtoks (1, 31) `shouldBe` Just SemanticTokenTypes_Decorator
+
   describe "formatSignature" $ do
     let fmt name src = case parseTerm (T.pack src) of
           Left err -> error ("parse error: " <> T.unpack err)
diff --git a/test/typecheck/cases/happy-data-bool.rzk b/test/typecheck/cases/happy-data-bool.rzk
--- a/test/typecheck/cases/happy-data-bool.rzk
+++ b/test/typecheck/cases/happy-data-bool.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- The simplest inductive type: booleans, with computation through the
 -- generated eliminators.
 #data bool := false | true
diff --git a/test/typecheck/cases/happy-data-circle.rzk b/test/typecheck/cases/happy-data-circle.rzk
--- a/test/typecheck/cases/happy-data-circle.rzk
+++ b/test/typecheck/cases/happy-data-circle.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- The circle: one point constructor and one path constructor. The path
 -- methods refer to the point methods, so the generated eliminator types
 -- bind their methods by name (m-base, m-loop); transport is spelled
diff --git a/test/typecheck/cases/happy-data-coprod.rzk b/test/typecheck/cases/happy-data-coprod.rzk
--- a/test/typecheck/cases/happy-data-coprod.rzk
+++ b/test/typecheck/cases/happy-data-coprod.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- A parameterised inductive type, with an explicit return type on one
 -- constructor (it must be the declared type applied to the parameters).
 #data coprod
diff --git a/test/typecheck/cases/happy-data-eliminator-reascription.rzk b/test/typecheck/cases/happy-data-eliminator-reascription.rzk
--- a/test/typecheck/cases/happy-data-eliminator-reascription.rzk
+++ b/test/typecheck/cases/happy-data-eliminator-reascription.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- An "eliminate with" re-ascription clause stores the user's spelling of a
 -- generated eliminator's type, after checking that it is definitionally
 -- equal to the canonical one (with the type former and constructors in
diff --git a/test/typecheck/cases/happy-data-empty.rzk b/test/typecheck/cases/happy-data-empty.rzk
--- a/test/typecheck/cases/happy-data-empty.rzk
+++ b/test/typecheck/cases/happy-data-empty.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- The empty family: no := at all, and the eliminator is ex falso.
 #data empty
 
diff --git a/test/typecheck/cases/happy-data-eta-short.rzk b/test/typecheck/cases/happy-data-eta-short.rzk
--- a/test/typecheck/cases/happy-data-eta-short.rzk
+++ b/test/typecheck/cases/happy-data-eta-short.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- A definition whose value is an under-applied eliminator (no binder):
 -- the ι-rule must fire through the neutral-application head.
 #data bool := false | true
diff --git a/test/typecheck/cases/happy-data-hit-reascription.rzk b/test/typecheck/cases/happy-data-hit-reascription.rzk
--- a/test/typecheck/cases/happy-data-hit-reascription.rzk
+++ b/test/typecheck/cases/happy-data-hit-reascription.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- The re-ascription clauses give the generated eliminators and
 -- computation rules readable spellings through a library transport/ap/apd
 -- (each definable from idJ before any declaration).
diff --git a/test/typecheck/cases/happy-data-hottbook-nat.rzk b/test/typecheck/cases/happy-data-hottbook-nat.rzk
--- a/test/typecheck/cases/happy-data-hottbook-nat.rzk
+++ b/test/typecheck/cases/happy-data-hottbook-nat.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- HoTT book §2.13 (natural numbers), drafted against #data stage 2.
 
 #data empty
diff --git a/test/typecheck/cases/happy-data-indices-edge.rzk b/test/typecheck/cases/happy-data-indices-edge.rzk
--- a/test/typecheck/cases/happy-data-indices-edge.rzk
+++ b/test/typecheck/cases/happy-data-indices-edge.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #data nat := zero | suc (n : nat)
 
 -- two indices, a constructor pinning them equal
diff --git a/test/typecheck/cases/happy-data-interval-funext.rzk b/test/typecheck/cases/happy-data-interval-funext.rzk
--- a/test/typecheck/cases/happy-data-interval-funext.rzk
+++ b/test/typecheck/cases/happy-data-interval-funext.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- Function extensionality is provable from the interval higher inductive
 -- type, following Lemma 6.3.2 of the HoTT book: a pointwise identification
 -- α makes a map A → interval → B whose two ends are f and g, and ap of its
diff --git a/test/typecheck/cases/happy-data-large-warning.rzk b/test/typecheck/cases/happy-data-large-warning.rzk
--- a/test/typecheck/cases/happy-data-large-warning.rzk
+++ b/test/typecheck/cases/happy-data-large-warning.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- A constructor field storing a universe makes the type large: under
 -- type-in-type this is a paradox amplifier, so the declaration is accepted
 -- with a warning (and will be rejected under safe mode).
diff --git a/test/typecheck/cases/happy-data-list.rzk b/test/typecheck/cases/happy-data-list.rzk
--- a/test/typecheck/cases/happy-data-list.rzk
+++ b/test/typecheck/cases/happy-data-list.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #data nat := zero | suc (n : nat)
 
 #data list
diff --git a/test/typecheck/cases/happy-data-modal-kind-param.expect.yaml b/test/typecheck/cases/happy-data-modal-kind-param.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-modal-kind-param.expect.yaml
@@ -0,0 +1,3 @@
+status: ok
+regression_for:
+  - data-modal-kind-parameter
diff --git a/test/typecheck/cases/happy-data-modal-kind-param.rzk b/test/typecheck/cases/happy-data-modal-kind-param.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-modal-kind-param.rzk
@@ -0,0 +1,29 @@
+#lang rzk-1
+
+-- The modal kinds are #data parameters, as they are #define parameters.
+-- Parameters are uniform, so the eliminators only abstract over them.
+#data P-op (psi : _op TOPE) (A : U) := c-op (a : A)
+#data P-op-family (psi : 2 -> _op TOPE) := c-op-family
+#data P-flat-cube (I : _b CUBE) := c-flat-cube
+#data P-flat (psi : _b TOPE) := c-flat
+#data P-sharp-family (psi : _# (2 -> TOPE)) := c-sharp-family
+
+#define iota-rec-P-op
+  ( psi : _op TOPE) (A : U) (C : U) (f : A -> C) (a : A)
+  : rec-P-op psi A C f (c-op psi A a) = f a
+  := refl
+
+#define iota-ind-P-op
+  ( psi : _op TOPE) (A : U) (C : P-op psi A -> U)
+  ( f : (a : A) -> C (c-op psi A a)) (a : A)
+  : ind-P-op psi A C f (c-op psi A a) = f a
+  := refl
+
+#define inst-P-op (A : U) (a : A) : P-op (mod _op TOP) A := c-op (mod _op TOP) A a
+
+#define inst-P-flat-cube : P-flat-cube (mod _b 2) := c-flat-cube (mod _b 2)
+
+-- A shape field whose tope comes from a modal-tope parameter.
+#data R (psi : _op TOPE) := pt (t : 2 | uninv_op psi)
+
+#define pt-top (t : 2) : R (mod _op TOP) := pt (mod _op TOP) t
diff --git a/test/typecheck/cases/happy-data-modal-shape-field.expect.yaml b/test/typecheck/cases/happy-data-modal-shape-field.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-modal-shape-field.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - data-shape-fields-modal-shape-field
diff --git a/test/typecheck/cases/happy-data-modal-shape-field.rzk b/test/typecheck/cases/happy-data-modal-shape-field.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-modal-shape-field.rzk
@@ -0,0 +1,33 @@
+#lang rzk-1
+
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
+-- A modal shape field: an ordinary shape point sitting under a lock. The
+-- eliminator binds it with the field's modality, so the lock discipline of
+-- the modal layer applies inside a branch exactly as it does for a modal
+-- Π-binder. No crisp induction is involved here; that is the separate
+-- principle of eliminating a crisp x :_b D by cases (ind-b-D, match _b).
+#data FlatArr := fa (t :_b 2 | ⊤)
+
+#define f0 : FlatArr := fa 0_2
+
+#define fam (A :_b (t : 2) -> U) (x : FlatArr) : U
+  := match x (fa t ⇒ A t)
+
+-- Strict β through the lock: the match computes on a syntactic point.
+#define beta (A :_b (t : 2) -> U) (s :_b 2) : fam A (fa s) = A s
+  := refl
+
+-- The other two spellings of a modal shape field agree with the inline one:
+-- a bare modal cube and a named modal shape are decided by the elaborated
+-- domain, not the surface form.
+#define Delta1 : 2 -> TOPE := \ t -> ⊤
+
+#data FlatCube := fc (t :_b 2)
+#data FlatByName := fn (t :_b Delta1)
+
+#define fc0 : FlatCube := fc 0_2
+#define fam-fc (A :_b (t : 2) -> U) (x : FlatCube) : U := match x (fc t ⇒ A t)
+#define beta-fc (A :_b (t : 2) -> U) (s :_b 2) : fam-fc A (fc s) = A s := refl
+#define fam-fn (A :_b (t : 2) -> U) (x : FlatByName) : U := match x (fn t ⇒ A t)
diff --git a/test/typecheck/cases/happy-data-nat.rzk b/test/typecheck/cases/happy-data-nat.rzk
--- a/test/typecheck/cases/happy-data-nat.rzk
+++ b/test/typecheck/cases/happy-data-nat.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #data nat := zero | suc (n : nat)
 
 #check ind-nat
diff --git a/test/typecheck/cases/happy-data-path-shape-field.expect.yaml b/test/typecheck/cases/happy-data-path-shape-field.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-path-shape-field.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - data-shape-fields-path-constructor-shape-field
diff --git a/test/typecheck/cases/happy-data-path-shape-field.rzk b/test/typecheck/cases/happy-data-path-shape-field.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-path-shape-field.rzk
@@ -0,0 +1,33 @@
+#lang rzk-1
+
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
+-- A path constructor may take a cube or shape field: a Φ-indexed family of
+-- *undirected* cells, i.e. identity paths. This cannot express a directed
+-- cell: the return type of a path constructor is an identity type, not a
+-- hom, and there is no syntax for face equations, so the directed-cell
+-- boundary holds. Deliberately kept and pinned here; the metatheoretic
+-- status is by analogy with an ordinary field of the realisation type
+-- (merid over ⌈Φ⌉), not by a written rule.
+
+#data Loops := base | turn (t : 2 | ⊤) : base =_{Loops} base
+
+#define rec-Loops-type
+  : (C : U) -> (m : C) -> ((t : 2 | ⊤) -> m =_{C} m) -> Loops -> C
+  := rec-Loops
+
+-- Endpoints may mention the variable a shape field of the same declaration
+-- binds: the undirected cone over the realisation.
+#data Cone := apex | pt (t : 2 | ⊤) | edge (t : 2 | ⊤) : pt t =_{Cone} apex
+
+#define rec-Cone-type
+  : (C : U) -> (m-apex : C) -> (m-pt : (t : 2 | ⊤) -> C)
+      -> ((t : 2 | ⊤) -> m-pt t =_{C} m-apex) -> Cone -> C
+  := rec-Cone
+
+-- The point methods still compute strictly on a syntactic point.
+#define collapse : Cone -> Unit
+  := rec-Cone Unit unit (\ _ -> unit) (\ _ -> refl)
+
+#define collapse-pt : collapse (pt 0_2) = unit := refl
diff --git a/test/typecheck/cases/happy-data-prop-trunc.rzk b/test/typecheck/cases/happy-data-prop-trunc.rzk
--- a/test/typecheck/cases/happy-data-prop-trunc.rzk
+++ b/test/typecheck/cases/happy-data-prop-trunc.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- The propositional truncation: the path constructor's endpoints are its
 -- own recursive fields, so their images in the method types are the
 -- induction hypotheses.
diff --git a/test/typecheck/cases/happy-data-pushout.rzk b/test/typecheck/cases/happy-data-pushout.rzk
--- a/test/typecheck/cases/happy-data-pushout.rzk
+++ b/test/typecheck/cases/happy-data-pushout.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- The pushout: the path constructor's endpoints apply point constructors
 -- to datatype-free terms (f c and g c), which the endpoint images leave
 -- untouched.
diff --git a/test/typecheck/cases/happy-data-rec-section.rzk b/test/typecheck/cases/happy-data-rec-section.rzk
--- a/test/typecheck/cases/happy-data-rec-section.rzk
+++ b/test/typecheck/cases/happy-data-rec-section.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #data nat := zero | suc (n : nat)
 
 #section counted
diff --git a/test/typecheck/cases/happy-data-section.rzk b/test/typecheck/cases/happy-data-section.rzk
--- a/test/typecheck/cases/happy-data-section.rzk
+++ b/test/typecheck/cases/happy-data-section.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- A #data inside a #section closes over the used assumptions uniformly:
 -- the type former, the constructors, and the eliminators all gain the
 -- section parameter, and the ι-rule keeps computing afterwards.
diff --git a/test/typecheck/cases/happy-data-shape-realisation.expect.yaml b/test/typecheck/cases/happy-data-shape-realisation.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-shape-realisation.expect.yaml
@@ -0,0 +1,1 @@
+status: ok
diff --git a/test/typecheck/cases/happy-data-shape-realisation.rzk b/test/typecheck/cases/happy-data-shape-realisation.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-shape-realisation.rzk
@@ -0,0 +1,69 @@
+#lang rzk-1
+
+-- A constructor may take a shape point. The declared type is then the shape
+-- realisation of that shape, and the generated recursor is the
+-- representability rule: mapping out of it is giving an extension-type
+-- section. See Kudasov 2021, "Booleans, coproducts and shape types in type
+-- theory for synthetic ∞-categories", §4 "Shapes as types":
+-- https://fizruk.github.io/files/%5Bnotes%5D%20N.Kudasov.%20Booleans%2C%20coproducts%20and%20shape%20types%20in%20type%20theory%20for%20synthetic%20%E2%88%9E-categories.pdf
+
+-- The general realisation ⌈Φ⌉, generic in the cube and in the tope. A shape
+-- is a predicate on a cube, so it is a parameter of type `I → TOPE`, exactly
+-- as `Δ¹` and `Λ²₁` are written.
+#data Shape (I : CUBE) (phi : I -> TOPE) := point (t : phi)
+
+#define rec-Shape-type
+  : (I : CUBE) -> (phi : I -> TOPE) -> (C : U)
+      -> ((t : I | phi t) -> C) -> Shape I phi -> C
+  := rec-Shape
+
+#define ind-Shape-type
+  : (I : CUBE) -> (phi : I -> TOPE) -> (C : Shape I phi -> U)
+      -> ((t : I | phi t) -> C (point I phi t)) -> (x : Shape I phi) -> C x
+  := ind-Shape
+
+#define rec-op-Shape-type
+  (I :_op CUBE)
+  (phi :_op I -> TOPE)
+  (x :_op Shape I phi)
+  : Unit
+  := rec-op-Shape I phi Unit (\ _ -> unit) x
+
+#define match-op-Shape
+  (I :_op CUBE)
+  (phi :_op I -> TOPE)
+  (x :_op Shape I phi)
+  : Unit
+  := match _op x into (\ (_ :_op Shape I phi) -> Unit)
+       (point _ => unit)
+
+-- Strict computation on a syntactic point: rec(Point p) ≡ a[p/t].
+#define shape-beta
+  ( I : CUBE) (phi : I -> TOPE)
+  ( C : U)
+  ( m : (t : I | phi t) -> C)
+  ( p : I | phi p)
+  : rec-Shape I phi C m (point I phi p) = m p
+  := refl
+
+-- Instances: the walking arrow and the (2,1)-horn.
+#define Delta1 : 2 -> TOPE := \ t -> ⊤
+#define Lambda21 : (2 * 2) -> TOPE := \ (t, s) -> (s === 0_2) \/ (t === 1_2)
+
+#define arr : U := Shape 2 Delta1
+#define horn : U := Shape (2 * 2) Lambda21
+
+#define arr-0 : arr := point 2 Delta1 0_2
+
+-- The three spellings of a shape field agree. The first two were already
+-- accepted; the inline one is what this change adds.
+#data ByCube := byCube (t : 2)
+#data ByName := byName (t : Delta1)
+#data Inline := inline (t : 2 | ⊤)
+
+#define rec-ByCube-type : (C : U) -> ((t : 2 | ⊤) -> C) -> ByCube -> C
+  := rec-ByCube
+#define rec-ByName-type : (C : U) -> ((t : 2 | ⊤) -> C) -> ByName -> C
+  := rec-ByName
+#define rec-Inline-type : (C : U) -> ((t : 2 | ⊤) -> C) -> Inline -> C
+  := rec-Inline
diff --git a/test/typecheck/cases/happy-data-shape-tope.expect.yaml b/test/typecheck/cases/happy-data-shape-tope.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-shape-tope.expect.yaml
@@ -0,0 +1,1 @@
+status: ok
diff --git a/test/typecheck/cases/happy-data-shape-tope.rzk b/test/typecheck/cases/happy-data-shape-tope.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-shape-tope.rzk
@@ -0,0 +1,25 @@
+#lang rzk-1
+
+-- The tope of a shape field is available inside a match branch: the
+-- eliminator brings it into the branch's context, so it is discharged in the
+-- tope layer rather than escaping as a cube term.
+
+#data Bd := bd (t : 2 | (t === 0_2) \/ (t === 1_2))
+
+#define at-bd
+  ( A : U) (a : A)
+  : (j : 2 | (j === 0_2) \/ (j === 1_2)) -> A
+  := \ j -> a
+
+#define bd-carries-its-tope (A : U) (a : A) (s : Bd) : A
+  := match s (bd t ⇒ at-bd A a t)
+
+-- A shape field may be followed by fields mentioning the cube variable it
+-- binds: this is the total space Σ_{t : Δ¹} A(t), which has no other spelling.
+#data Total (A : (t : 2) -> U) := tot (t : 2 | ⊤) (a : A t)
+
+#define total-fst (A : (t : 2) -> U) (w : Total A) : U
+  := match w (tot t a ⇒ A t)
+
+-- A subshape of a product cube: the 2-simplex as a type.
+#data Tri := tri (t : 2 * 2 | second t <= first t)
diff --git a/test/typecheck/cases/happy-data-tope-param.expect.yaml b/test/typecheck/cases/happy-data-tope-param.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-tope-param.expect.yaml
@@ -0,0 +1,3 @@
+status: ok
+regression_for:
+  - bare-tope-parameter
diff --git a/test/typecheck/cases/happy-data-tope-param.rzk b/test/typecheck/cases/happy-data-tope-param.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-tope-param.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- TOPE is a parameter kind of #data, like CUBE and tope families.
+#data Real (I : CUBE) (psi : TOPE) := pt (t : I | psi)
+
+#define pt-top (I : CUBE) (t : I) : Real I TOP := pt I TOP t
diff --git a/test/typecheck/cases/happy-data-vec.rzk b/test/typecheck/cases/happy-data-vec.rzk
--- a/test/typecheck/cases/happy-data-vec.rzk
+++ b/test/typecheck/cases/happy-data-vec.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #data nat := zero | suc (n : nat)
 
 #data vec
diff --git a/test/typecheck/cases/happy-ext-style-restrictions.expect.yaml b/test/typecheck/cases/happy-ext-style-restrictions.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-ext-style-restrictions.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings: []
+regression_for:
+  - free-standing-restriction-warning
+  - synthesised-types-are-concluded
diff --git a/test/typecheck/cases/happy-ext-style-restrictions.rzk b/test/typecheck/cases/happy-ext-style-restrictions.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-ext-style-restrictions.rzk
@@ -0,0 +1,36 @@
+#lang rzk-1
+
+-- Ext-style restrictions, and free-standing ones in concluded positions
+-- only: the fragment conservativity covers. Companion of
+-- warn-free-standing-restriction-assumed.
+
+-- On the codomain of a shape-Π, also with the shape tope left implicit.
+#def ext-type (A : 2 → U) (a : (t : 2 | t ≡ 0₂) → A t) : U
+  := (t : 2) → A t [t ≡ 0₂ ↦ a t]
+
+-- A tail type: the restriction sits under an ordinary Π, which is
+-- free-standing, but it is concluded rather than assumed.
+#def nested-tail
+  ( I : CUBE) (ψ : I → TOPE) (ϕ : ψ → TOPE) (X : U) (Y : ψ → X → U)
+  ( f : (t : ϕ) → (x : X) → Y t x)
+  ( g : (x : X) → (t : ψ) → (Y t x) [ϕ t ↦ f t x])
+  : (t : ψ) → (x : X) → (Y t x) [ϕ t ↦ f t x]
+  := \ t x → g x t
+
+-- A motive whose restriction is ext-style: the unit-cube encoding of RSTT.
+#def rstt-motive (A : U) (x : A) (p : x =_{A} x) : (t : 1) → A [TOP ↦ x]
+  := idJ (A , x , (\ _ _ → (t : 1) → A [TOP ↦ x]) , (\ t → x) , x , p)
+
+-- A section of an extension type applied at a point carries a restriction by
+-- instantiation. That type is concluded, so naming it, binding it by let, or
+-- forming refl at it stays silent: the types the elaborator synthesises for a
+-- let annotation and for a refl's element are not assumed positions.
+#def at-point (I : CUBE) (ψ : I → TOPE) (ϕ : ψ → TOPE) (A : ψ → U)
+  ( a : (t : ϕ) → A t) (f : (t : ψ) → A t [ϕ t ↦ a t]) (s : ψ)
+  : A s
+  := let z := f s in z
+
+#def refl-at-point (I : CUBE) (ψ : I → TOPE) (ϕ : ψ → TOPE) (A : ψ → U)
+  ( a : (t : ϕ) → A t) (f : (t : ψ) → A t [ϕ t ↦ a t]) (s : ψ)
+  : (f s) =_{A s} (f s)
+  := refl
diff --git a/test/typecheck/cases/happy-flip-unflip.rzk b/test/typecheck/cases/happy-flip-unflip.rzk
--- a/test/typecheck/cases/happy-flip-unflip.rzk
+++ b/test/typecheck/cases/happy-flip-unflip.rzk
@@ -1,29 +1,35 @@
 #lang rzk-1
 
--- Test: _op (flip(i) === 0_2) is equivalent to (i === 1_2)
--- Verified via propositional equality of topes under _op
+-- Test: _op (flip(i) === 0_2) is equivalent to (i === 1_2).
+-- The topes cannot be compared by an identity type (TOPE is not a type),
+-- so each law is observed as definitional equality of the extension types
+-- the two topes carve out of the unit cube, over an arbitrary type A
+-- (op-bound, so it is accessible under the _op lock).
 
 #def test-flip-tope-equiv
+  (A :_op U)
   (i : 2)
   : let mod _op q := inv_op (i === 1_2) in
     let mod _op fi := flip_op i in
-    _op (q = (fi === 0_2))
+    _op (((t : 1 | q) -> A) = ((t : 1 | fi === 0_2) -> A))
   := mod _op refl
 
 -- Symmetric case: _op (flip(i) === 1_2) is equivalent to (i === 0_2)
 
 #def test-flip-tope-equiv-sym
+  (A :_op U)
   (i : 2)
   : let mod _op q := inv_op (i === 0_2) in
     let mod _op fi := flip_op i in
-    _op (q = (fi === 1_2))
+    _op (((t : 1 | q) -> A) = ((t : 1 | fi === 1_2) -> A))
   := mod _op refl
 
 -- flip/unflip with 2: inv roundtrip
 
 #def test-flip-inv-roundtrip-2
+  (A :_op U)
   (i : 2)
   : let mod _op q := inv_op (i === 0_2) in
     let mod _op fi := flip_op i in
-    _op (q = (fi === 1_2))
+    _op (((t : 1 | q) -> A) = ((t : 1 | fi === 1_2) -> A))
   := mod _op refl
diff --git a/test/typecheck/cases/happy-interval-endpoint-entailment.expect.yaml b/test/typecheck/cases/happy-interval-endpoint-entailment.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-interval-endpoint-entailment.expect.yaml
@@ -0,0 +1,3 @@
+status: ok
+regression_for:
+  - interval-endpoint-entailment-through-equality
diff --git a/test/typecheck/cases/happy-interval-endpoint-entailment.rzk b/test/typecheck/cases/happy-interval-endpoint-entailment.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-interval-endpoint-entailment.rzk
@@ -0,0 +1,19 @@
+#lang rzk-1
+
+#def simplex
+  : (II * II) -> TOPE
+  := \ (t , s) -> s <= t
+
+#def horn
+  : (II * II) -> TOPE
+  := \ (t , s) -> t === 1_I \/ s === 0_I
+
+#def restrict-simplex
+  (A : U)
+  (a : simplex -> A)
+  : horn -> A
+  := \ (t , s) ->
+    recOR(
+        t === 1_I |-> a (t , s)
+      , s === 0_I |-> a (t , s)
+    )
diff --git a/test/typecheck/cases/happy-match-basics.rzk b/test/typecheck/cases/happy-match-basics.rzk
--- a/test/typecheck/cases/happy-match-basics.rzk
+++ b/test/typecheck/cases/happy-match-basics.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #data bool := false | true
 
 #data nat := zero | suc (n : nat)
diff --git a/test/typecheck/cases/happy-match-case-vec.rzk b/test/typecheck/cases/happy-match-case-vec.rzk
--- a/test/typecheck/cases/happy-match-case-vec.rzk
+++ b/test/typecheck/cases/happy-match-case-vec.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #data nat := zero | suc (n : nat)
 
 #data vec (A : U) : nat → U
diff --git a/test/typecheck/cases/happy-match-indexed.rzk b/test/typecheck/cases/happy-match-indexed.rzk
--- a/test/typecheck/cases/happy-match-indexed.rzk
+++ b/test/typecheck/cases/happy-match-indexed.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #data nat := zero | suc (n : nat)
 
 #data vec (A : U) : nat → U
diff --git a/test/typecheck/cases/happy-match-modal.expect.yaml b/test/typecheck/cases/happy-match-modal.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-match-modal.expect.yaml
@@ -0,0 +1,9 @@
+status: ok
+warnings: []
+regression_for:
+  - modal-match-scrutinee-accessibility
+  - modal-match-composes-constructor-argument-modalities
+  - modal-match-explicit-motive
+  - modal-match-composition-order-op-op
+  - modal-match-keeps-induction-hypothesis-modality
+  - modal-data-eliminators-are-generated
diff --git a/test/typecheck/cases/happy-match-modal.rzk b/test/typecheck/cases/happy-match-modal.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-match-modal.rzk
@@ -0,0 +1,83 @@
+#lang rzk-1
+
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
+-- A modal match checks the scrutinee under its modality. Every constructor
+-- argument is then bound under the composition of that modality and the
+-- argument's own modality: Flat ∘ Id = Flat and Flat ∘ Op = Flat here.
+#data ModalMatch := mm (plain : 2) (op :_op 2)
+
+#define modal-match-flat
+  (f :_b (i : 2) -> (j : 2) -> Unit)
+  (x :_b ModalMatch)
+  : _b Unit
+  := match _b x
+       (mm plain op => mod _b (f plain op))
+
+-- The modal spelling also supports an explicit motive.
+#define modal-match-flat-into
+  (f :_b (i : 2) -> (j : 2) -> Unit)
+  (x :_b ModalMatch)
+  : _b Unit
+  := match _b x into (\ (_ :_b ModalMatch) -> _b Unit)
+       (mm plain op => mod _b (f plain op))
+
+#data Tagged : Unit -> U := tagged : Tagged unit
+
+#define modal-match-indexed-motive
+  (x :_b Tagged unit)
+  : _b Unit
+  := match _b x into (\ (i :_b Unit) (_ :_b Tagged i) -> _b Unit)
+       (tagged => mod _b unit)
+
+-- Composition is ordered: Op · Op = Id, so an op field of a value matched
+-- under Op becomes available in the plain context.
+#data OpField := op-field (point :_op 2)
+
+#define modal-match-op-op
+  (f : (i : 2) -> Unit)
+  (x :_op OpField)
+  : Unit
+  := match _op x
+       (op-field point => f point)
+
+#data Nat := zero | suc (pred : Nat)
+
+#check ind-Nat
+  : (C : Nat -> U)
+  -> C zero
+  -> ((pred : Nat) -> (ih : C pred) -> C (suc pred))
+  -> (n : Nat)
+  -> C n
+#check rec-Nat
+  : (C : U) -> C -> ((pred : Nat) -> C -> C) -> Nat -> C
+#check ind-op-Nat
+  : (C : (n :_op Nat) -> U)
+  -> C zero
+  -> ((pred :_op Nat) -> (ih : C pred) -> C (suc pred))
+  -> (n :_op Nat)
+  -> C n
+#check rec-op-Nat
+  : (C : U) -> C -> ((pred :_op Nat) -> C -> C) -> (n :_op Nat) -> C
+#check ind-b-Nat
+  : (C : (n :_b Nat) -> U)
+  -> C zero
+  -> ((pred :_b Nat) -> (ih : C pred) -> C (suc pred))
+  -> (n :_b Nat)
+  -> C n
+#check rec-b-Nat
+  : (C : U) -> C -> ((pred :_b Nat) -> C -> C) -> (n :_b Nat) -> C
+
+#define modal-predecessor-generated
+  (n :_b Nat)
+  : _b Nat
+  := rec-b-Nat (_b Nat) (mod _b zero)
+       (\ pred _ -> mod _b pred) n
+
+#define modal-match-recursive
+  (x :_b Nat)
+  : Unit
+  := match _b x
+       ( zero => unit
+       | suc pred ih => ih)
diff --git a/test/typecheck/cases/happy-meta-prefix-option-off.rzk b/test/typecheck/cases/happy-meta-prefix-option-off.rzk
--- a/test/typecheck/cases/happy-meta-prefix-option-off.rzk
+++ b/test/typecheck/cases/happy-meta-prefix-option-off.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #set-option "warn-meta-prefix" = "off"
 
 #define my-id (X : U) (x : X) : X := x
diff --git a/test/typecheck/cases/happy-meta-prefix-plumbing.rzk b/test/typecheck/cases/happy-meta-prefix-plumbing.rzk
--- a/test/typecheck/cases/happy-meta-prefix-plumbing.rzk
+++ b/test/typecheck/cases/happy-meta-prefix-plumbing.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #define my-id (X : U) (x : X) : X := x
 
 -- Aliasing a schema at the root of a definition is macro-level plumbing.
diff --git a/test/typecheck/cases/happy-modal-inv.rzk b/test/typecheck/cases/happy-modal-inv.rzk
--- a/test/typecheck/cases/happy-modal-inv.rzk
+++ b/test/typecheck/cases/happy-modal-inv.rzk
@@ -2,55 +2,146 @@
 
 #compute-nf inv_op (0_2 === 0_2)
 
+-- The inv/uninv laws are observed as definitional equality of the extension
+-- types the topes carve out of the unit cube, over an arbitrary type A:
+-- TOPE is not a type, so the topes themselves cannot be compared by an
+-- identity type. Under an _op lock the type is op-bound (A :_op U).
+
 -- inv flips endpoint: inv_op(i === 0) = mod _op (flip(i) === 1)
 #def test-lt-mod-inv
+  (A :_op U)
   ( i : 2)
-  : let mod _op q := invᵒᵖ (i ≡ 0₂) in let mod _op fi := flip_op i in _op (q = (fi === 1_2))
+  : let mod _op q := invᵒᵖ (i ≡ 0₂) in let mod _op fi := flip_op i in
+    _op (((t : 1 | q) -> A) = ((t : 1 | fi === 1_2) -> A))
   := mod _op refl
 
 #def test-inv-endpoint-one
+  (A :_op U)
   (i : 2)
   : let mod _op q := inv_op (i === 1_2) in
     let mod _op fi := flip_op i in
-    _op (q = (fi === 0_2))
+    _op (((t : 1 | q) -> A) = ((t : 1 | fi === 0_2) -> A))
   := mod _op refl
 
 -- uninv(inv(phi)) = phi
 #def test-inv-uninv-cancel
+  (A : U)
   (i : 2)
-  : uninv_op (inv_op (i === 0_2)) = (i === 0_2)
+  : ((t : 1 | uninv_op (inv_op (i === 0_2))) -> A) = ((t : 1 | i === 0_2) -> A)
   := refl
 
 -- inv(uninv(mod _op phi)) = mod _op phi
 #def test-uninv-inv-cancel
+  (A :_op U)
   (i : 2)
   : let mod _op fi := flip_op i in
-    inv_op (uninv_op (mod _op (fi === 0_2))) = mod _op (fi === 0_2)
-  := refl
+    let mod _op a := inv_op (uninv_op (mod _op (fi === 0_2))) in
+    _op (((t : 1 | a) -> A) = ((t : 1 | fi === 0_2) -> A))
+  := mod _op refl
 
 -- inv distributes over conjunction
 #def test-inv-distributes-and
+  (A :_op U)
   (i j : 2)
   : let mod _op q := inv_op ((i === 0_2) /\ (j === 1_2)) in
     let mod _op fi := flip_op i in
     let mod _op fj := flip_op j in
-    _op (q = ((fi === 1_2) /\ (fj === 0_2)))
+    _op (((t : 1 | q) -> A) = ((t : 1 | (fi === 1_2) /\ (fj === 0_2)) -> A))
   := mod _op refl
 
 -- inv/uninv on TOP and BOT (bug catchers: stuck without nfTope fix)
 
 #def test-inv-top
-  : let mod _op q := (inv_op TOP) in _op (q = TOP)
+  (A :_op U)
+  : let mod _op q := (inv_op TOP) in
+    _op (((t : 1 | q) -> A) = ((t : 1 | TOP) -> A))
   := mod _op refl
 
 #def test-inv-bot
-  : let mod _op q := inv_op BOT in _op (q = BOT)
+  (A :_op U)
+  : let mod _op q := inv_op BOT in
+    _op (((t : 1 | q) -> A) = ((t : 1 | BOT) -> A))
   := mod _op refl
 
 #def test-uninv-top
-  : uninv_op (mod _op TOP) = TOP
+  (A : U)
+  : ((t : 1 | uninv_op (mod _op TOP)) -> A) = ((t : 1 | TOP) -> A)
   := refl
 
 #def test-uninv-bot
-  : uninv_op (mod _op BOT) = BOT
+  (A : U)
+  : ((t : 1 | uninv_op (mod _op BOT)) -> A) = ((t : 1 | BOT) -> A)
   := refl
+
+-- inv is precomposition with the order-reversing flip, so it commutes with
+-- /\, \/, TOP and BOT, and reverses <=.
+
+-- inv distributes over disjunction
+#define test-inv-distributes-or
+  (A :_op U)
+  (i j : 2)
+  : let mod _op q := inv_op ((i === 0_2) \/ (j === 1_2)) in
+    let mod _op fi := flip_op i in
+    let mod _op fj := flip_op j in
+    _op (((t : 1 | q) -> A) = ((t : 1 | (fi === 1_2) \/ (fj === 0_2)) -> A))
+  := mod _op refl
+
+-- inv reverses an inequality: inv(i <= j) = (fj <= fi)
+#define test-inv-leq
+  (A :_op U)
+  (i j : 2)
+  : let mod _op q := inv_op (i <= j) in
+    let mod _op fi := flip_op i in
+    let mod _op fj := flip_op j in
+    _op (((t : 1 | q) -> A) = ((t : 1 | fj <= fi) -> A))
+  := mod _op refl
+
+-- uninv distributes over disjunction, via cancellation
+#define test-uninv-or
+  (A : U)
+  (i j : 2)
+  : ((t : 1 | uninv_op (inv_op ((i === 0_2) \/ (j === 1_2)))) -> A)
+  = ((t : 1 | (i === 0_2) \/ (j === 1_2)) -> A)
+  := refl
+
+-- uninv over conjunction, with a nested stuck conjunct
+#define test-uninv-and-mixed
+  (A : U)
+  (i j : 2)
+  : ((t : 1 | uninv_op (inv_op ((i <= j) /\ (j === 1_2)))) -> A)
+  = ((t : 1 | (i <= j) /\ (j === 1_2)) -> A)
+  := refl
+
+-- BOT absorbs under uninv (i must be op-bound to be used under mod _op)
+#define test-uninv-and-bot
+  (A : U)
+  (i :_op 2)
+  : ((t : 1 | uninv_op (mod _op ((i === 0_2) /\ BOT))) -> A)
+  = ((t : 1 | BOT) -> A)
+  := refl
+
+-- inv on the lattice interval endpoints (I_0 / I_1)
+#define test-inv-I-endpoint
+  (A :_op U)
+  (i : 𝕀)
+  : let mod _op q := inv_op (i === 0ᵢ) in
+    let mod _op fi := flip_op i in
+    _op (((t : 1 | q) -> A) = ((t : 1 | fi === 1ᵢ) -> A))
+  := mod _op refl
+
+-- inv of a conjunction with BOT first normalises to mod _op BOT
+#define test-inv-and-bot
+  (A :_op U)
+  (i : 2)
+  : let mod _op q := inv_op (BOT /\ (i === 0_2)) in
+    _op (((t : 1 | q) -> A) = ((t : 1 | BOT) -> A))
+  := mod _op refl
+
+-- inv of a let-bound tope variable normalises through the variable
+#define test-inv-through-let
+  (A :_op U)
+  (i : 2)
+  : let mod _op q := inv_op (let phi := (i === 0_2) in phi) in
+    let mod _op fi := flip_op i in
+    _op (((t : 1 | q) -> A) = ((t : 1 | fi === 1_2) -> A))
+  := mod _op refl
diff --git a/test/typecheck/cases/happy-modal-let-dependent-payload.expect.yaml b/test/typecheck/cases/happy-modal-let-dependent-payload.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-modal-let-dependent-payload.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - let-mod-infers-a-dependent-type-at-the-payload
diff --git a/test/typecheck/cases/happy-modal-let-dependent-payload.rzk b/test/typecheck/cases/happy-modal-let-dependent-payload.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-modal-let-dependent-payload.rzk
@@ -0,0 +1,27 @@
+#lang rzk-1
+
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
+-- A motive-free let mod in inference position whose body type depends on the
+-- bound variable: the inferred type is instantiated with the payload of x,
+-- not with x itself, for the right adjoints _#, _op and _id. The projection
+-- forces the let through inference.
+
+#define dep-sharp
+  (A : U)
+  (x : _# A)
+  : x = x
+  := first (let mod _# a := x in (refl_{mod _# a}, unit))
+
+#define dep-op
+  (A :_op U)
+  (x : _op A)
+  : x = x
+  := first (let mod _op a := x in (refl_{mod _op a}, unit))
+
+#define dep-id
+  (A : U)
+  (x : _id A)
+  : x = x
+  := first (let mod _id a := x in (refl_{mod _id a}, unit))
diff --git a/test/typecheck/cases/happy-modal-let-restricted.expect.yaml b/test/typecheck/cases/happy-modal-let-restricted.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-modal-let-restricted.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings: []
+regression_for:
+  - let-mod-eliminates-an-outer-restricted-modal-type
+  - let-mod-into-infers-an-outer-restricted-modal-type
diff --git a/test/typecheck/cases/happy-modal-let-restricted.rzk b/test/typecheck/cases/happy-modal-let-restricted.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-modal-let-restricted.rzk
@@ -0,0 +1,71 @@
+#lang rzk-1
+
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
+-- A restriction is a refinement of the whole modal type, not an obstacle to
+-- modal elimination. `let mod` must look through the outer restriction when
+-- finding the modal payload type.
+#define unwrap-restricted-modal
+  (A :_b U)
+  (a :_b A)
+  (i : 2)
+  (x : (_b A) [ i === 0_2 |-> mod _b a ])
+  : _b A
+  := let mod _b y := x in mod _b y
+
+-- An explicit motive takes the inference path through the elaborator.
+#define unwrap-restricted-modal-into
+  (A :_b U)
+  (a :_b A)
+  (i : 2)
+  (x : (_b A) [ i === 0_2 |-> mod _b a ])
+  : _b A
+  := let mod _b y := x into (\ _ -> _b A) in mod _b y
+
+-- On the face, the let computes to the boundary value.
+#define restricted-flat-boundary
+  (A :_b U)
+  (a :_b A)
+  (i : 2)
+  (x : (_b A) [ i === 0_2 |-> mod _b a ])
+  : (_b A) [ i === 0_2 |-> mod _b a ]
+  := let mod _b y := x in mod _b y
+
+-- For a right adjoint, η identifies the let with x.
+#define restricted-op-eta
+  (A :_op U)
+  (a :_op A)
+  (i : 2)
+  (x : (_op A) [ i === 0_2 |-> mod _op a ])
+  : (let mod _op y := x in mod _op y) = x
+  := refl
+
+-- A restriction with two faces.
+#define restricted-sharp-two-faces
+  (A : U)
+  (a b : A)
+  (i : 2)
+  (x : (_# A) [ i === 0_2 |-> mod _# a , i === 1_2 |-> mod _# b ])
+  : (_# A) [ i === 0_2 |-> mod _# a , i === 1_2 |-> mod _# b ]
+  := let mod _# y := x in mod _# y
+
+-- A restriction nested twice around the modal type.
+#define restricted-twice
+  (A :_b U)
+  (a :_b A)
+  (i j : 2)
+  (x : ((_b A) [ i === 0_2 |-> mod _b a ]) [ j === 0_2 |-> mod _b a ])
+  : _b A
+  := let mod _b y := x in mod _b y
+
+-- Dependent motive on a restricted value, outside any face.
+#define into-restricted-dependent
+  (A :_b U)
+  (a :_b A)
+  (C : (_b A) -> U)
+  (c : (y :_b A) -> C (mod _b y))
+  (i : 2)
+  (x : (_b A) [ i === 0_2 |-> mod _b a ])
+  : C x
+  := let mod _b y := x into C in c y
diff --git a/test/typecheck/cases/happy-modal-tope-unwrap.rzk b/test/typecheck/cases/happy-modal-tope-unwrap.rzk
--- a/test/typecheck/cases/happy-modal-tope-unwrap.rzk
+++ b/test/typecheck/cases/happy-modal-tope-unwrap.rzk
@@ -6,10 +6,11 @@
 --    given _op phi we can derive uninv_op(phi), and vice versa.
 
 #def test-op-unwrap-to-uninv
+  (A :_op U)
   (i : 2)
   : let mod _op q := inv_op (i === 0_2) in
     let mod _op fi := flip_op i in
-    _op (q = (fi === 1_2))
+    _op (((t : 1 | q) -> A) = ((t : 1 | fi === 1_2) -> A))
   := mod _op refl
 
 -- 2. _b phi implies phi:
diff --git a/test/typecheck/cases/happy-modal-uninv-shape-restricted.expect.yaml b/test/typecheck/cases/happy-modal-uninv-shape-restricted.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-modal-uninv-shape-restricted.expect.yaml
@@ -0,0 +1,3 @@
+status: ok
+regression_for:
+  - "nfTope: uninv distributes over the conjunction that a shape-restricted application normalises to, so each conjunct reaches the tope context"
diff --git a/test/typecheck/cases/happy-modal-uninv-shape-restricted.rzk b/test/typecheck/cases/happy-modal-uninv-shape-restricted.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-modal-uninv-shape-restricted.rzk
@@ -0,0 +1,26 @@
+#lang rzk-1
+
+-- Under an _op lock a plain assumption uninv_op (mod _op phi) must make phi
+-- available in the op-context: that is what un-inversion means. The control
+-- below (an unrestricted phi) works; the case that matters is a phi which is
+-- itself shape-restricted, as in sHoTT's op-ext-flip-2-fwd. There the normal
+-- form of (phi ft) carries the ambient shape (psi ft) as a side condition, so
+-- the assumption un-inverts to a conjunction, and both conjuncts have to become
+-- available separately: the domain of x is (psi ft) /\ (phi ft).
+
+#postulate uninv-under-op-unrestricted
+  ( phi :_op (2 -> TOPE))
+  ( A :_op (t : 2) -> U)
+  ( x :_op (t : 2 | phi t) -> A t)
+  : ( t : 2) ->
+    let mod _op ft := flip_op t in
+    (_op (A ft)) [ uninv_op (mod _op (phi ft)) |-> mod _op (x ft) ]
+
+#postulate uninv-under-op-shape-restricted
+  ( psi :_op (2 -> TOPE))
+  ( phi :_op ((t : 2 | psi t) -> TOPE))
+  ( A :_op (t : 2 | psi t) -> U)
+  ( x :_op (t : 2 | phi t) -> A t)
+  : ( t : 2 | let mod _op ft := flip_op t in _op (psi ft)) ->
+    let mod _op ft := flip_op t in
+    (_op (A ft)) [ uninv_op (mod _op (phi ft)) |-> mod _op (x ft) ]
diff --git a/test/typecheck/cases/happy-restrict-face-not-contained.rzk b/test/typecheck/cases/happy-restrict-face-not-contained.rzk
--- a/test/typecheck/cases/happy-restrict-face-not-contained.rzk
+++ b/test/typecheck/cases/happy-restrict-face-not-contained.rzk
@@ -3,8 +3,8 @@
 -- Restriction faces need not lie within the local tope context. The checker
 -- constrains the term only on `context ∧ face`, so a face that overhangs the
 -- context (extends beyond it while still overlapping) is allowed. Following
--- Riehl–Shulman, there is no requirement that the face be contained in (entailed
--- by) the context. Overhang only triggers a non-fatal warning.
+-- Riehl–Shulman, there is no requirement that the face be contained in the context
+-- (entail it). Overhang only triggers a non-fatal warning.
 --
 -- (A face *disjoint* from the context is a different matter: it is vacuous and is
 -- rejected — see `ill-restrict-face-disjoint`.)
diff --git a/test/typecheck/cases/happy-rstt-awareness.expect.yaml b/test/typecheck/cases/happy-rstt-awareness.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-awareness.expect.yaml
@@ -0,0 +1,6 @@
+status: ok
+warnings:
+  - OverhangWarning
+  - TopeFamilyDomainWarning
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/happy-rstt-awareness.rzk b/test/typecheck/cases/happy-rstt-awareness.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-awareness.rzk
@@ -0,0 +1,7 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#set-option "warn-overhang" = "yes"
+#def concluded (t : 2 | t === 0_2) : Unit [TOP ↦ unit] := unit
+#def family (I : CUBE) (φ : I → TOPE) (χ : φ → TOPE) (A : U) : U := (t : χ) → A
+#def clip (A : U) : U := family 2 (\ t → BOT) (\ t → TOP) A
diff --git a/test/typecheck/cases/happy-rstt-bare-tope-param.expect.yaml b/test/typecheck/cases/happy-rstt-bare-tope-param.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-bare-tope-param.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
+  - bare-tope-parameter
diff --git a/test/typecheck/cases/happy-rstt-bare-tope-param.rzk b/test/typecheck/cases/happy-rstt-bare-tope-param.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-bare-tope-param.rzk
@@ -0,0 +1,18 @@
+#lang rzk-1
+
+-- A bare tope parameter is a tope parameter of the meta-theoretic parameter
+-- layer, like the family (psi : 1 -> TOPE): RSTT-safe mode accepts both.
+#set-option "rstt-safe" = "error"
+
+#define const-on
+  ( psi : TOPE) (A : U) (a : A)
+  : (t : 2 | psi) -> A
+  := \ _ -> a
+
+#define use (A : U) (a : A) : (t : 2 | TOP) -> A := const-on TOP A a
+
+#section s
+#assume chi : TOPE
+#variable B : U
+#define r (b : B) : (t : 2) -> B [chi |-> b] := \ _ -> b
+#end s
diff --git a/test/typecheck/cases/happy-rstt-boundary-error.expect.yaml b/test/typecheck/cases/happy-rstt-boundary-error.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-boundary-error.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/happy-rstt-boundary-error.rzk b/test/typecheck/cases/happy-rstt-boundary-error.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-boundary-error.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#postulate overhang (f : (t : 2 | t === 0_2) → Unit [TOP ↦ unit]) : Unit
diff --git a/test/typecheck/cases/happy-rstt-boundary-multicube.expect.yaml b/test/typecheck/cases/happy-rstt-boundary-multicube.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-boundary-multicube.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/happy-rstt-boundary-multicube.rzk b/test/typecheck/cases/happy-rstt-boundary-multicube.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-boundary-multicube.rzk
@@ -0,0 +1,40 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+
+-- A product cube binds all its coordinates together.
+#def clip
+  (I J : CUBE) (ψ φ : (I * J) → TOPE)
+  (A : (p : I * J | ψ p) → U)
+  (a : (p : I * J | ψ p) → A p)
+  (f : (p : I * J | ψ p) → A p [φ p ↦ a p])
+  : (p : I * J | ψ p) → A p [ψ p /\ φ p ↦ a p]
+  := \ p → f p
+
+#def unclip
+  (I J : CUBE) (ψ φ : (I * J) → TOPE)
+  (A : (p : I * J | ψ p) → U)
+  (a : (p : I * J | ψ p) → A p)
+  (f : (p : I * J | ψ p) → A p [ψ p /\ φ p ↦ a p])
+  : (p : I * J | ψ p) → A p [φ p ↦ a p]
+  := \ p → f p
+
+-- Boundary values may depend on outer points; the face must not.
+#postulate outer-value (A : U) (a : 2 → A) (s : 2)
+  (f : (t : 2 | t === 0_2) → A [TOP ↦ a s]) : Unit
+
+#postulate product-boundary (A : U) (a : A)
+  (f : ((t, u) : 2 * 2 | t <= u) → A [t === 0_2 \/ u === 1_2 ↦ a])
+  : Unit
+
+-- A concluded tail restriction can be erased in the back-translation.
+#def tail (s t : 2) : Unit [s === t ↦ unit] := unit
+
+-- Contextual tope/type families are schematic judgements, not extension types.
+#postulate families
+  (χ : (s : 2) → (t : 2 | t <= s) → TOPE)
+  (A : (s : 2) → (t : 2 | t <= s) → U) : Unit
+
+#def is-zero : 2 → TOPE := \ t → t === 0_2
+#postulate closed-alias (A : U) (a : A)
+  (f : (t : 2) → A [is-zero t ↦ a]) : Unit
diff --git a/test/typecheck/cases/happy-rstt-boundary-warn.expect.yaml b/test/typecheck/cases/happy-rstt-boundary-warn.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-boundary-warn.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/happy-rstt-boundary-warn.rzk b/test/typecheck/cases/happy-rstt-boundary-warn.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-boundary-warn.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+-- Boundary obligations are interpreted within the binder's shape.
+#postulate overhang (f : (t : 2 | t === 0_2) → Unit [TOP ↦ unit]) : Unit
diff --git a/test/typecheck/cases/happy-rstt-boundary.expect.yaml b/test/typecheck/cases/happy-rstt-boundary.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-boundary.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/happy-rstt-boundary.rzk b/test/typecheck/cases/happy-rstt-boundary.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-boundary.rzk
@@ -0,0 +1,10 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+-- Overhang along a concluded codomain remains a tail type.
+#def concluded (t : 2 | t === 0_2) : Unit [TOP ↦ unit] := unit
+-- An ambient constraint is not part of the immediate shape binder.
+#postulate ambient (s : 2 | s === 0_2)
+  (f : (t : 2) → Unit [t === 0_2 ↦ unit]) : Unit
+-- A boundary included in its own shape is ext-style.
+#postulate contained (f : (t : 2 | t === 0_2) → Unit [t === 0_2 ↦ unit]) : Unit
diff --git a/test/typecheck/cases/happy-rstt-independent-cubes.expect.yaml b/test/typecheck/cases/happy-rstt-independent-cubes.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-independent-cubes.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/happy-rstt-independent-cubes.rzk b/test/typecheck/cases/happy-rstt-independent-cubes.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-independent-cubes.rzk
@@ -0,0 +1,9 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def independent (I : CUBE) (s : 2) (f : (t : I) → Unit) : Unit := unit
+#def at-endpoint (I : 2 → CUBE) (s : 2)
+  (f : (t : I 0_2) → Unit) : Unit := unit
+#def product (I J : CUBE) ((s, t) : I × J) : Unit := unit
+#def functions (I : CUBE) : U := (t : I) → Unit
+#def instance (I : CUBE) (s : 2) (f : functions I) : Unit := unit
diff --git a/test/typecheck/cases/happy-rstt-off.expect.yaml b/test/typecheck/cases/happy-rstt-off.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-off.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/happy-rstt-off.rzk b/test/typecheck/cases/happy-rstt-off.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-off.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "off"
+#def nested (A : U) (a : A) : A
+  := (\ (B : U) (b : B) → b) A a
diff --git a/test/typecheck/cases/happy-rstt-schema-parameters.expect.yaml b/test/typecheck/cases/happy-rstt-schema-parameters.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-schema-parameters.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/happy-rstt-schema-parameters.rzk b/test/typecheck/cases/happy-rstt-schema-parameters.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-schema-parameters.rzk
@@ -0,0 +1,8 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def family (A : U) : U := A
+#def alias : U → U := family
+#def receive (F : U → U) (A : U) : U := F A
+#def supply (A : U) : U := receive (\ B → B) A
+#def ordinary (A : U) : Σ (f : A → A), Unit := ((\ a → a), unit)
diff --git a/test/typecheck/cases/happy-rstt-shape-dependency-off.expect.yaml b/test/typecheck/cases/happy-rstt-shape-dependency-off.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-shape-dependency-off.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/happy-rstt-shape-dependency-off.rzk b/test/typecheck/cases/happy-rstt-shape-dependency-off.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-shape-dependency-off.rzk
@@ -0,0 +1,7 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "off"
+#set-option "warn-shape-dependency" = "no"
+#set-option "warn-free-standing-restriction" = "yes"
+#postulate mixed (A : U) (a : A) (s : 2)
+  (f : (t : 2 | t <= s) → A [t === s ↦ a]) : Unit
diff --git a/test/typecheck/cases/happy-rstt-tail-nested.expect.yaml b/test/typecheck/cases/happy-rstt-tail-nested.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-tail-nested.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-paper-worked-examples
diff --git a/test/typecheck/cases/happy-rstt-tail-nested.rzk b/test/typecheck/cases/happy-rstt-tail-nested.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-tail-nested.rzk
@@ -0,0 +1,27 @@
+#lang rzk-1
+#set-option "rstt-safe" = "error"
+
+-- Paper example: src/nested-restriction.rzk
+
+
+#def nested-lemma
+  ( I : CUBE)
+  ( ψ : I → TOPE)
+  ( ϕ : ψ → TOPE)
+  ( X : U)
+  ( Y : ψ → X → U)
+  ( f : (t : ϕ) → (x : X) → Y t x)
+  ( g : (x : X) → (t : ψ) → (Y t x) [ϕ t ↦ f t x])
+  : (t : ψ) → (x : X) → (Y t x) [ϕ t ↦ f t x]
+  := \ t x → g x t
+
+#def flip-via-nested
+  ( I : CUBE)
+  ( ψ : I → TOPE)
+  ( ϕ : ψ → TOPE)
+  ( X : U)
+  ( Y : ψ → X → U)
+  ( f : (t : ϕ) → (x : X) → Y t x)
+  ( g : (x : X) → (t : ψ) → (Y t x) [ϕ t ↦ f t x])
+  : (t : ψ) → ((x : X) → Y t x) [ϕ t ↦ f t]
+  := \ t x → nested-lemma I ψ ϕ X Y f g t x
diff --git a/test/typecheck/cases/happy-rstt-tau-flip.expect.yaml b/test/typecheck/cases/happy-rstt-tau-flip.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-tau-flip.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-paper-worked-examples
diff --git a/test/typecheck/cases/happy-rstt-tau-flip.rzk b/test/typecheck/cases/happy-rstt-tau-flip.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-tau-flip.rzk
@@ -0,0 +1,56 @@
+#lang rzk-1
+#set-option "rstt-safe" = "error"
+
+-- Paper example: src/context-hott.rzk
+
+
+-- Non-displayed context for the code snippets included in the paper.
+-- These definitions mirror the sHoTT library (hott/* modules).
+
+#define product
+  ( A B : U)
+  : U
+  := Σ (a : A) , B
+
+#define has-section
+  ( A B : U)
+  ( f : A → B)
+  : U
+  := Σ (s : B → A) , ((b : B) → f (s b) = b)
+
+#define has-retraction
+  ( A B : U)
+  ( f : A → B)
+  : U
+  := Σ (r : B → A) , ((a : A) → r (f a) = a)
+
+#define is-equiv
+  ( A B : U)
+  ( f : A → B)
+  : U
+  := product (has-retraction A B f) (has-section A B f)
+
+#define Equiv
+  ( A B : U)
+  : U
+  := Σ (f : A → B) , is-equiv A B f
+
+-- Paper example: src/flip-ext-fun.rzk
+
+
+#define flip-ext-fun
+  ( I : CUBE)
+  ( ψ : I → TOPE)
+  ( φ : ψ → TOPE)
+  ( X : U)
+  ( Y : ψ → X → U)
+  ( f : (t : φ) → (x : X) → Y t x)
+  : Equiv
+      ( (t : ψ) → ((x : X) → Y t x) [φ t ↦ f t])
+      ( (x : X) → (t : ψ) → Y t x [φ t ↦ f t x])
+  :=
+    ( \ g x t → g t x ,
+      ( ( \ h t x → (h x) t ,
+          \ g → refl) ,
+        ( \ h t x → (h x) t ,
+          \ h → refl)))
diff --git a/test/typecheck/cases/happy-rstt-tope-terms.expect.yaml b/test/typecheck/cases/happy-rstt-tope-terms.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-tope-terms.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/happy-rstt-tope-terms.rzk b/test/typecheck/cases/happy-rstt-tope-terms.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-tope-terms.rzk
@@ -0,0 +1,15 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def ordinary (A : U) (a : A)
+  : (t : 2 | ((\ (x : A) → 0_2) a) === 0_2) → A
+  := \ t → a
+
+#def face (A : U) (a : A)
+  : (t : 2) → A [t === ((\ (x : A) → 0_2) a) ↦ a]
+  := \ t → a
+
+#def tope-id (φ : 2 → TOPE) : 2 → TOPE := φ
+#def schema (A : U) (a : A)
+  : (t : 2 | tope-id (\ u → u === 0_2) t) → A
+  := \ t → a
diff --git a/test/typecheck/cases/happy-rstt-trusted-postulate.expect.yaml b/test/typecheck/cases/happy-rstt-trusted-postulate.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-trusted-postulate.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/happy-rstt-trusted-postulate.rzk b/test/typecheck/cases/happy-rstt-trusted-postulate.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-rstt-trusted-postulate.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+-- Fragment membership does not establish consistency of postulates.
+#postulate arbitrary (A : U) : A
+#def conditional (A : U) : A := arbitrary A
diff --git a/test/typecheck/cases/happy-set-option-warn-overhang.expect.yaml b/test/typecheck/cases/happy-set-option-warn-overhang.expect.yaml
--- a/test/typecheck/cases/happy-set-option-warn-overhang.expect.yaml
+++ b/test/typecheck/cases/happy-set-option-warn-overhang.expect.yaml
@@ -2,3 +2,5 @@
 regression_for:
   - warn-overhang-option
   - checkTopeAgainstContext-opt-in-hint
+warnings:
+  - OverhangWarning
diff --git a/test/typecheck/cases/happy-tope-assume.expect.yaml b/test/typecheck/cases/happy-tope-assume.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-tope-assume.expect.yaml
@@ -0,0 +1,3 @@
+status: ok
+regression_for:
+  - bare-tope-assumption
diff --git a/test/typecheck/cases/happy-tope-assume.rzk b/test/typecheck/cases/happy-tope-assume.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-tope-assume.rzk
@@ -0,0 +1,12 @@
+#lang rzk-1
+
+-- A bare tope assumption closes to a bare tope parameter.
+#section bare-tope
+#assume psi : TOPE
+#variable A : U
+#define restrict-const (a : A) : (t : 2) -> A [psi |-> a] := \ _ -> a
+#end bare-tope
+
+#define closed
+  : (psi : TOPE) -> (A : U) -> (a : A) -> (t : 2) -> A [psi |-> a]
+  := restrict-const
diff --git a/test/typecheck/cases/happy-tope-family-domain-instance.expect.yaml b/test/typecheck/cases/happy-tope-family-domain-instance.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-tope-family-domain-instance.expect.yaml
@@ -0,0 +1,6 @@
+status: ok
+warnings:
+  - TopeFamilyDomainWarning
+  - TopeFamilyDomainWarning
+regression_for:
+  - tope-family-domain-conjunct-elaboration
diff --git a/test/typecheck/cases/happy-tope-family-domain-instance.rzk b/test/typecheck/cases/happy-tope-family-domain-instance.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-tope-family-domain-instance.rzk
@@ -0,0 +1,28 @@
+#lang rzk-1
+
+-- A concrete family checked against a domain type carries the domain:
+-- `\ t → TOP` at {t : I | ⊥} → TOPE becomes `\ t → ⊥ ∧ ⊤`. So it is read as
+-- its intersection with the domain, also through a parameter with a wider
+-- domain. Companion of ill-tope-family-domain-non-instance. Each family that
+-- is not included in its domain is reported (warn-tope-family-domain-*).
+
+#def wider     (I : CUBE) (φ : I → TOPE) (A : U) : U := (t : φ) → A
+#def via-wider (I : CUBE) (ψ : I → TOPE) (χ : ψ → TOPE) (A : U) : U := wider I χ A
+
+-- The family ⊤ over the domain ⊥ selects the empty shape, also through `wider`.
+#def into-clipped (I : CUBE) (A : U) (g : (t : I | BOT) → A)
+  : via-wider I (\ t → BOT) (\ t → TOP) A
+  := g
+
+#def from-clipped (I : CUBE) (A : U) (f : via-wider I (\ t → BOT) (\ t → TOP) A)
+  : (t : I | BOT) → A
+  := f
+
+-- A family that entails its domain is left unchanged.
+#def endpoint (A : U) (a : A)
+  : via-wider 2 (\ t → TOP) (\ t → t ≡ 0₂) A
+  := \ t → a
+
+#def use-endpoint (A : U) (h : via-wider 2 (\ t → TOP) (\ t → t ≡ 0₂) A)
+  : A
+  := h 0₂
diff --git a/test/typecheck/cases/happy-tope-param.expect.yaml b/test/typecheck/cases/happy-tope-param.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-tope-param.expect.yaml
@@ -0,0 +1,3 @@
+status: ok
+regression_for:
+  - bare-tope-parameter
diff --git a/test/typecheck/cases/happy-tope-param.rzk b/test/typecheck/cases/happy-tope-param.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-tope-param.rzk
@@ -0,0 +1,39 @@
+#lang rzk-1
+
+-- A bare tope parameter (psi : TOPE) means the same as the tope family
+-- (psi : 1 -> TOPE): it can restrict a shape or an extension type, it is
+-- instantiated with any tope in scope, and the two spellings convert.
+
+#define const-on
+  ( psi : TOPE) (A : U) (a : A)
+  : (t : 2 | psi) -> A
+  := \ _ -> a
+
+#define ext-at
+  ( psi : TOPE) (A : U) (a : A)
+  : (t : 2) -> A [psi |-> a]
+  := \ _ -> a
+
+#define use-top (A : U) (a : A) : (t : 2 | TOP) -> A := const-on TOP A a
+
+#define use-point
+  ( s : 2) (A : U) (a : A)
+  : (t : 2 | s === 0_2) -> A
+  := const-on (s === 0_2) A a
+
+#define weaken
+  ( psi chi : TOPE) (A : U) (f : (t : 2 | psi \/ chi) -> A)
+  : (t : 2 | psi) -> A
+  := \ t -> f t
+
+#define to-family
+  ( f : (psi : TOPE) -> (A : U) -> (a : A) -> (t : 2 | psi) -> A)
+  : (psi : 1 -> TOPE) -> (A : U) -> (a : A) -> (t : 2 | psi *_1) -> A
+  := \ psi -> f (psi *_1)
+
+#define from-family
+  ( g : (psi : 1 -> TOPE) -> (A : U) -> (a : A) -> (t : 2 | psi *_1) -> A)
+  : (psi : TOPE) -> (A : U) -> (a : A) -> (t : 2 | psi) -> A
+  := \ psi -> g (\ _ -> psi)
+
+#define lam : (psi : TOPE) -> U := \ (psi : TOPE) -> (t : 2 | psi) -> Unit
diff --git a/test/typecheck/cases/ill-data-cube-index.expect.yaml b/test/typecheck/cases/ill-data-cube-index.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-cube-index.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "an index of a #data sort must be a type, got a cube: 2"
+line: 7
+regression_for:
+  - data-shape-fields-reject-cube-index
diff --git a/test/typecheck/cases/ill-data-cube-index.rzk b/test/typecheck/cases/ill-data-cube-index.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-cube-index.rzk
@@ -0,0 +1,7 @@
+#lang rzk-1
+
+-- A cube index is rejected on the elaborated sort. A cube is an unrestricted
+-- shape, so it goes the same way as shape indices: a family varying over a
+-- shape is what extension types are for, and no metatheory is written down
+-- for an inductive family over one.
+#data Fam : 2 -> U := at (t : 2) : Fam t
diff --git a/test/typecheck/cases/ill-data-cube-param.expect.yaml b/test/typecheck/cases/ill-data-cube-param.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-cube-param.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a parameter of a #data must be a type, CUBE, TOPE, or a tope family, got a cube: 2"
+line: 9
+regression_for:
+  - data-shape-fields-reject-cube-param
diff --git a/test/typecheck/cases/ill-data-cube-param.rzk b/test/typecheck/cases/ill-data-cube-param.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-cube-param.rzk
@@ -0,0 +1,9 @@
+#lang rzk-1
+
+-- A #data cannot be parametrised by a cube point, in any spelling: the
+-- inline shape spelling is rejected on the surface form, and the bare-cube
+-- and named-shape spellings are rejected on the elaborated sort, so the rule
+-- does not depend on how the binder is written. Parameters of type CUBE or
+-- I → TOPE range over cubes and shapes themselves and remain accepted (see
+-- happy-data-shape-realisation).
+#data P (t : 2) := c
diff --git a/test/typecheck/cases/ill-data-cube-universe-field.expect.yaml b/test/typecheck/cases/ill-data-cube-universe-field.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-cube-universe-field.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a field of constructor c must be a type, a cube point, or a shape, got the cube universe: CUBE"
+regression_for:
+  - data-shape-fields-b-prime-layer-rules
diff --git a/test/typecheck/cases/ill-data-cube-universe-field.rzk b/test/typecheck/cases/ill-data-cube-universe-field.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-cube-universe-field.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- A field may not store a cube itself: a CUBE-valued field puts a cube-layer
+-- citizen inside type-layer data, which no written metatheory covers. (A
+-- CUBE *parameter* stays legal: the generic Shape realisation depends on it.)
+#data F := c (I : CUBE)
diff --git a/test/typecheck/cases/ill-data-cube-universe-index.expect.yaml b/test/typecheck/cases/ill-data-cube-universe-index.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-cube-universe-index.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "an index of a #data sort must be a type, got the cube universe: CUBE"
+regression_for:
+  - data-shape-fields-b-prime-layer-rules
diff --git a/test/typecheck/cases/ill-data-cube-universe-index.rzk b/test/typecheck/cases/ill-data-cube-universe-index.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-cube-universe-index.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+-- An index must be a type, full stop: a family over the cube universe is
+-- internal quantification over the cube layer.
+#data X : CUBE -> U
diff --git a/test/typecheck/cases/ill-data-eliminator-unknown.expect.yaml b/test/typecheck/cases/ill-data-eliminator-unknown.expect.yaml
--- a/test/typecheck/cases/ill-data-eliminator-unknown.expect.yaml
+++ b/test/typecheck/cases/ill-data-eliminator-unknown.expect.yaml
@@ -2,7 +2,7 @@
 error_tag: TypeErrorOther
 message_contains:
   - "eliminate with clause for elim-d"
-  - "the eliminators are ind-d and rec-d"
+  - "the eliminators are ind-d, rec-d, ind-op-d, rec-op-d, ind-b-d, rec-b-d)"
 line: 4
 regression_for:
   - data-eliminator-reascription-clause
diff --git a/test/typecheck/cases/ill-data-eliminator-unknown.rzk b/test/typecheck/cases/ill-data-eliminator-unknown.rzk
--- a/test/typecheck/cases/ill-data-eliminator-unknown.rzk
+++ b/test/typecheck/cases/ill-data-eliminator-unknown.rzk
@@ -1,5 +1,5 @@
 #lang rzk-1
 
--- An eliminate with clause must name one of the two generated eliminators.
+-- An eliminate with clause must name one of the generated eliminators.
 #data d := c
   eliminate with elim-d : (C : d → U) → C c → (x : d) → C x
diff --git a/test/typecheck/cases/ill-data-modal-cube-field.expect.yaml b/test/typecheck/cases/ill-data-modal-cube-field.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-cube-field.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "got a modal cube or tope kind: _b CUBE"
+regression_for:
+  - layer-discipline-kind-names
diff --git a/test/typecheck/cases/ill-data-modal-cube-field.rzk b/test/typecheck/cases/ill-data-modal-cube-field.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-cube-field.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+-- A field of a modal cube kind is rejected like one of a modal tope kind,
+-- and the error names the kind.
+#data F := c (I : _b CUBE)
diff --git a/test/typecheck/cases/ill-data-modal-kind-param-lock.expect.yaml b/test/typecheck/cases/ill-data-modal-kind-param-lock.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-kind-param-lock.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorUnaccessibleVar
+message_contains:
+  - "variable J is inaccessible in the current modal context"
+regression_for:
+  - data-modal-kind-parameter
diff --git a/test/typecheck/cases/ill-data-modal-kind-param-lock.rzk b/test/typecheck/cases/ill-data-modal-kind-param-lock.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-kind-param-lock.rzk
@@ -0,0 +1,7 @@
+#lang rzk-1
+
+#data P-flat-cube (I : _b CUBE) := c-flat-cube
+
+-- A modal parameter is instantiated under its lock: a plain cube variable is
+-- not available under _b.
+#define bad (J : CUBE) : U := P-flat-cube (mod _b J)
diff --git a/test/typecheck/cases/ill-data-modal-kind-param-point.expect.yaml b/test/typecheck/cases/ill-data-modal-kind-param-point.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-kind-param-point.expect.yaml
@@ -0,0 +1,4 @@
+status: error
+error_tag: TypeErrorTopeNotSatisfied
+regression_for:
+  - data-modal-kind-parameter
diff --git a/test/typecheck/cases/ill-data-modal-kind-param-point.rzk b/test/typecheck/cases/ill-data-modal-kind-param-point.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-kind-param-point.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+#data R (psi : _op TOPE) := pt (t : 2 | uninv_op psi)
+
+-- The shape field keeps its tope: there is no point of R (mod _op BOT).
+#define bad : R (mod _op BOT) := pt (mod _op BOT) 0_2
diff --git a/test/typecheck/cases/ill-data-modal-shape-field-lock.expect.yaml b/test/typecheck/cases/ill-data-modal-shape-field-lock.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-shape-field-lock.expect.yaml
@@ -0,0 +1,8 @@
+status: error
+error_tag: TypeErrorUnaccessibleVar
+message_contains:
+  - "variable s is inaccessible"
+  - "declared modality: _id"
+  - "current locks:      ♭"
+regression_for:
+  - data-shape-fields-modal-shape-field-lock
diff --git a/test/typecheck/cases/ill-data-modal-shape-field-lock.rzk b/test/typecheck/cases/ill-data-modal-shape-field-lock.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-shape-field-lock.rzk
@@ -0,0 +1,13 @@
+#lang rzk-1
+
+-- The lock discipline is enforced for a modal shape field: the branch binds
+-- the cube variable under the field's modality, so applying a family to it
+-- demands the matching accessibility. An unannotated (s : 2) is not
+-- accessible under the ♭ lock.
+#data FlatArr := fa (t :_b 2 | ⊤)
+
+#define fam (A :_b (t : 2) -> U) (x : FlatArr) : U
+  := match x (fa t ⇒ A t)
+
+#define bad (A :_b (t : 2) -> U) (s : 2) : fam A (fa s) = A s
+  := refl
diff --git a/test/typecheck/cases/ill-data-modal-tope-field.expect.yaml b/test/typecheck/cases/ill-data-modal-tope-field.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-tope-field.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a field of constructor c must be a type, a cube point, or a shape, got a modal cube or tope kind: _op TOPE"
+regression_for:
+  - data-shape-fields-b-prime-layer-rules
diff --git a/test/typecheck/cases/ill-data-modal-tope-field.rzk b/test/typecheck/cases/ill-data-modal-tope-field.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-tope-field.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- A field of a modal tope kind would store a tope-layer citizen, seen
+-- through a modality, inside type-layer data. The modal kinds are
+-- parameters only.
+#data F := c (psi : _op TOPE)
diff --git a/test/typecheck/cases/ill-data-modal-tope-index.expect.yaml b/test/typecheck/cases/ill-data-modal-tope-index.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-tope-index.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "an index of a #data sort must be a type, got a modal cube or tope kind: _op TOPE"
+regression_for:
+  - data-shape-fields-b-prime-layer-rules
diff --git a/test/typecheck/cases/ill-data-modal-tope-index.rzk b/test/typecheck/cases/ill-data-modal-tope-index.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-tope-index.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+-- An index of a modal tope kind is internal quantification over the tope
+-- layer through a modality; an index must be a type.
+#data X : (_op TOPE) -> U
diff --git a/test/typecheck/cases/ill-data-modal-type-field.expect.yaml b/test/typecheck/cases/ill-data-modal-type-field.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-type-field.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "modal type fields are not supported yet"
+line: 8
+regression_for:
+  - data-shape-fields-reject-modal-type-field
diff --git a/test/typecheck/cases/ill-data-modal-type-field.rzk b/test/typecheck/cases/ill-data-modal-type-field.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-modal-type-field.rzk
@@ -0,0 +1,8 @@
+#lang rzk-1
+
+-- A modal field whose domain is a type is rejected: unlike a cube or shape
+-- field, a type field can be recursive, and the recursion and positivity
+-- bookkeeping does not see through a modal binder. The decision is made on
+-- the elaborated constructor type (checkDataConFieldLayers), since on the
+-- surface (x :_b Unit) is indistinguishable from a named modal shape field.
+#data Wrap := wrap (x :_b Unit)
diff --git a/test/typecheck/cases/ill-data-no-sharp-eliminator.expect.yaml b/test/typecheck/cases/ill-data-no-sharp-eliminator.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-no-sharp-eliminator.expect.yaml
@@ -0,0 +1,4 @@
+status: error
+error_tag: TypeErrorUndefined
+regression_for:
+  - modal-data-no-sharp-eliminators
diff --git a/test/typecheck/cases/ill-data-no-sharp-eliminator.rzk b/test/typecheck/cases/ill-data-no-sharp-eliminator.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-no-sharp-eliminator.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- A #data generates no ♯ eliminators (see ill-match-modal-sharp).
+#data Bool := false | true
+
+#define retract : (z :_# Bool) -> Bool := rec-sharp-Bool Bool false true
diff --git a/test/typecheck/cases/ill-data-shape-field.expect.yaml b/test/typecheck/cases/ill-data-shape-field.expect.yaml
deleted file mode 100644
--- a/test/typecheck/cases/ill-data-shape-field.expect.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-status: error
-error_tag: TypeErrorOther
-message_contains:
-  - "directed cell"
-line: 5
-regression_for:
-  - data-stage1-reject-shape-fields
diff --git a/test/typecheck/cases/ill-data-shape-field.rzk b/test/typecheck/cases/ill-data-shape-field.rzk
deleted file mode 100644
--- a/test/typecheck/cases/ill-data-shape-field.rzk
+++ /dev/null
@@ -1,5 +0,0 @@
-#lang rzk-1
-
--- A constructor with a cube or shape argument would declare a directed
--- cell over rzk's simplicial interval; rejected in all M3 stages.
-#data d := arrow (t : 2 | TOP)
diff --git a/test/typecheck/cases/ill-data-shape-index-named.expect.yaml b/test/typecheck/cases/ill-data-shape-index-named.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-shape-index-named.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "an index of a #data sort must be a type, got a shape: Delta1"
+line: 9
+regression_for:
+  - data-shape-fields-reject-shape-index
diff --git a/test/typecheck/cases/ill-data-shape-index-named.rzk b/test/typecheck/cases/ill-data-shape-index-named.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-shape-index-named.rzk
@@ -0,0 +1,9 @@
+#lang rzk-1
+
+-- The named spelling of a shape index is rejected on the elaborated sort:
+-- (Delta1 used as an index type) elaborates to a restricted binder, the same
+-- form the inline spelling (see ill-data-shape-index) would produce, so both
+-- spellings meet the same rule.
+#define Delta1 : 2 -> TOPE := \ t -> ⊤
+
+#data Fam : Delta1 -> U := at (t : Delta1) : Fam t
diff --git a/test/typecheck/cases/ill-data-shape-index.expect.yaml b/test/typecheck/cases/ill-data-shape-index.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-shape-index.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "index of a #data sort must be a plain type"
+line: 7
+regression_for:
+  - data-shape-fields-reject-shape-index
diff --git a/test/typecheck/cases/ill-data-shape-index.rzk b/test/typecheck/cases/ill-data-shape-index.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-shape-index.rzk
@@ -0,0 +1,8 @@
+#lang rzk-1
+
+-- The inline spelling of a shape index is rejected on the surface form.
+-- The named spelling `#data Fam : D1 → U` for `D1 : 2 → TOPE` is rejected
+-- too, on the elaborated sort (see ill-data-shape-index-named), so the two
+-- spellings of one thing meet the same rule.
+#data Fam : (t : 2 | ⊤) → U
+  := at (t : 2 | ⊤) : Fam t
diff --git a/test/typecheck/cases/ill-data-shape-param.expect.yaml b/test/typecheck/cases/ill-data-shape-param.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-shape-param.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a parameter of a #data must be a type, CUBE, TOPE, or a tope family, got a shape: D1"
+line: 9
+regression_for:
+  - data-shape-fields-reject-shape-param
diff --git a/test/typecheck/cases/ill-data-shape-param.rzk b/test/typecheck/cases/ill-data-shape-param.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-shape-param.rzk
@@ -0,0 +1,9 @@
+#lang rzk-1
+
+-- The named spelling of a shape parameter is rejected on the elaborated
+-- sort: (t : D1) elaborates to the restricted binder (t : 2 | D1 t), the
+-- same form the inline spelling would produce, so both spellings meet the
+-- same rule.
+#define D1 : 2 -> TOPE := \ t -> ⊤
+
+#data P (t : D1) := c
diff --git a/test/typecheck/cases/ill-data-tope-family-field.expect.yaml b/test/typecheck/cases/ill-data-tope-family-field.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-tope-family-field.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a field of constructor c must be a type, a cube point, or a shape, got a tope family: 2 -> TOPE"
+regression_for:
+  - data-shape-fields-b-prime-layer-rules
diff --git a/test/typecheck/cases/ill-data-tope-family-field.rzk b/test/typecheck/cases/ill-data-tope-family-field.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-tope-family-field.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- A field may not store a tope family. Cube and shape *points* are the
+-- realisation fragment and stay; the family itself is a parameter kind, not
+-- data.
+#data F := c (phi : 2 -> TOPE)
diff --git a/test/typecheck/cases/ill-data-tope-family-index.expect.yaml b/test/typecheck/cases/ill-data-tope-family-index.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-tope-family-index.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "an index of a #data sort must be a type, got a tope family: 2 -> TOPE"
+regression_for:
+  - data-shape-fields-b-prime-layer-rules
diff --git a/test/typecheck/cases/ill-data-tope-family-index.rzk b/test/typecheck/cases/ill-data-tope-family-index.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-tope-family-index.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+-- A family indexed by tope families is internal quantification over the
+-- tope layer; families over shapes are what extension types are for.
+#data X : (2 -> TOPE) -> U
diff --git a/test/typecheck/cases/ill-data-tope-field.expect.yaml b/test/typecheck/cases/ill-data-tope-field.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-tope-field.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a field of constructor box must be a type, a cube point, or a shape, got the tope universe"
+regression_for:
+  - layer-discipline-tope-universe
diff --git a/test/typecheck/cases/ill-data-tope-field.rzk b/test/typecheck/cases/ill-data-tope-field.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-tope-field.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+-- TOPE is a parameter kind, not a field: a field would store a tope as data.
+#data Boxed := box (psi : TOPE)
diff --git a/test/typecheck/cases/ill-data-tope-index.expect.yaml b/test/typecheck/cases/ill-data-tope-index.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-tope-index.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "an index of a #data sort must be a type, got the tope universe"
+regression_for:
+  - layer-discipline-tope-universe
diff --git a/test/typecheck/cases/ill-data-tope-index.rzk b/test/typecheck/cases/ill-data-tope-index.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-tope-index.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+-- An index of a #data sort must be a type.
+#data OverTopes : TOPE -> U := at-top : OverTopes TOP
diff --git a/test/typecheck/cases/ill-hole-recor-guard-point.expect.yaml b/test/typecheck/cases/ill-hole-recor-guard-point.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-hole-recor-guard-point.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorCannotInferHole
+message_contains:
+  - "cannot infer the type of a hole"
+regression_for:
+  - holes-point-inference-position
diff --git a/test/typecheck/cases/ill-hole-recor-guard-point.rzk b/test/typecheck/cases/ill-hole-recor-guard-point.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-hole-recor-guard-point.rzk
@@ -0,0 +1,8 @@
+#lang rzk-1
+
+-- The points in a tope relation are in inference position. Strict mode cannot
+-- guess their cube and therefore rejects a bare hole. Lenient mode records the
+-- same term as an incomplete sketch; this is covered by Rzk.HolesSpec.
+#define square (A : U) (a : A)
+  : ( 2 × 2) → A
+  := \ (t , s) → recOR (? ≤ ? ↦ a , ? ↦ a)
diff --git a/test/typecheck/cases/ill-kind-app-argument-tope.expect.yaml b/test/typecheck/cases/ill-kind-app-argument-tope.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-app-argument-tope.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a type argument must be a type, got the tope universe"
+regression_for:
+  - layer-discipline-direct-guards
diff --git a/test/typecheck/cases/ill-kind-app-argument-tope.rzk b/test/typecheck/cases/ill-kind-app-argument-tope.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-app-argument-tope.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- A universe kind cannot be passed where a type is expected: the guard is
+-- at the application, since at formation time the parameter is opaque.
+#define diag (X : U) : U := Σ (p : X) , Unit
+#define bad : U := diag TOPE
diff --git a/test/typecheck/cases/ill-kind-define-tope.expect.yaml b/test/typecheck/cases/ill-kind-define-tope.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-define-tope.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a definition at type U must be a type, got the tope universe"
+regression_for:
+  - layer-discipline-direct-guards
diff --git a/test/typecheck/cases/ill-kind-define-tope.rzk b/test/typecheck/cases/ill-kind-define-tope.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-define-tope.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+-- A definition at type U must define a type; a universe-kind body would be
+-- a synonym smuggling the kind into every position that accepts U.
+#define A : U := TOPE
diff --git a/test/typecheck/cases/ill-kind-id-carrier-tope.expect.yaml b/test/typecheck/cases/ill-kind-id-carrier-tope.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-id-carrier-tope.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "the carrier of an identity type must be a type, got the tope universe"
+regression_for:
+  - layer-discipline-direct-guards
diff --git a/test/typecheck/cases/ill-kind-id-carrier-tope.rzk b/test/typecheck/cases/ill-kind-id-carrier-tope.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-id-carrier-tope.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+-- No identity types over the tope universe: TOPE is not a type.
+#define e : U := (TOP /\ TOP) =_{TOPE} TOP
diff --git a/test/typecheck/cases/ill-kind-sigma-body-tope.expect.yaml b/test/typecheck/cases/ill-kind-sigma-body-tope.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-sigma-body-tope.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a Σ component must be a type, got the tope universe"
+regression_for:
+  - layer-discipline-direct-guards
diff --git a/test/typecheck/cases/ill-kind-sigma-body-tope.rzk b/test/typecheck/cases/ill-kind-sigma-body-tope.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-sigma-body-tope.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+-- The second component is checked too.
+#define A : U := Σ (x : Unit) , TOPE
diff --git a/test/typecheck/cases/ill-kind-sigma-cube-universe.expect.yaml b/test/typecheck/cases/ill-kind-sigma-cube-universe.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-sigma-cube-universe.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a Σ component must be a type, got the cube universe"
+regression_for:
+  - layer-discipline-direct-guards
diff --git a/test/typecheck/cases/ill-kind-sigma-cube-universe.rzk b/test/typecheck/cases/ill-kind-sigma-cube-universe.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-sigma-cube-universe.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+-- The cube universe cannot be a Σ component.
+#define A : U := Σ (I : CUBE) , Unit
diff --git a/test/typecheck/cases/ill-kind-sigma-tope-family.expect.yaml b/test/typecheck/cases/ill-kind-sigma-tope-family.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-sigma-tope-family.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a Σ component must be a type, got a tope family"
+regression_for:
+  - layer-discipline-direct-guards
diff --git a/test/typecheck/cases/ill-kind-sigma-tope-family.rzk b/test/typecheck/cases/ill-kind-sigma-tope-family.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-sigma-tope-family.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+-- A tope family cannot be a Σ component.
+#define A : U := Σ (phi : 2 -> TOPE) , Unit
diff --git a/test/typecheck/cases/ill-kind-sigma-tope.expect.yaml b/test/typecheck/cases/ill-kind-sigma-tope.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-sigma-tope.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a Σ component must be a type, got the tope universe"
+regression_for:
+  - layer-discipline-direct-guards
diff --git a/test/typecheck/cases/ill-kind-sigma-tope.rzk b/test/typecheck/cases/ill-kind-sigma-tope.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-kind-sigma-tope.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+-- The tope universe cannot be a Σ component: it would store topes as data.
+#define A : U := Σ (p : TOPE) , Unit
diff --git a/test/typecheck/cases/ill-match-modal-hit.expect.yaml b/test/typecheck/cases/ill-match-modal-hit.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-modal-hit.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "modal match is not supported for higher inductive types"
+regression_for:
+  - modal-match-rejects-higher-inductive-types
diff --git a/test/typecheck/cases/ill-match-modal-hit.rzk b/test/typecheck/cases/ill-match-modal-hit.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-modal-hit.rzk
@@ -0,0 +1,8 @@
+#lang rzk-1
+
+#data S1 := base | loop : base =_{S1} base
+
+#define modal-match-hit (x :_b S1) : Unit
+  := match _b x
+       (base => unit
+       | loop => unit)
diff --git a/test/typecheck/cases/ill-match-modal-ih-remodalized.expect.yaml b/test/typecheck/cases/ill-match-modal-ih-remodalized.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-modal-ih-remodalized.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorUnaccessibleVar
+message_contains:
+  - ih
+regression_for:
+  - a modal match changes constructor-field modalities but not the modality of an induction hypothesis
diff --git a/test/typecheck/cases/ill-match-modal-ih-remodalized.rzk b/test/typecheck/cases/ill-match-modal-ih-remodalized.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-modal-ih-remodalized.rzk
@@ -0,0 +1,10 @@
+#lang rzk-1
+
+#data Nat := zero | suc (pred : Nat)
+
+#define modal-match-ih-remodalized
+  (x :_b Nat)
+  : Unit
+  := match _b x
+       ( zero => unit
+       | suc pred ih => let _b copy := ih in unit)
diff --git a/test/typecheck/cases/ill-match-modal-inaccessible.expect.yaml b/test/typecheck/cases/ill-match-modal-inaccessible.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-modal-inaccessible.expect.yaml
@@ -0,0 +1,8 @@
+status: error
+error_tag: TypeErrorUnaccessibleVar
+message_contains:
+  - "variable x is inaccessible"
+  - "declared modality: _id"
+  - "current locks:      ♭"
+regression_for:
+  - modal-match-scrutinee-accessibility
diff --git a/test/typecheck/cases/ill-match-modal-inaccessible.rzk b/test/typecheck/cases/ill-match-modal-inaccessible.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-modal-inaccessible.rzk
@@ -0,0 +1,8 @@
+#lang rzk-1
+
+#data ModalMatch := mm (point : 2)
+
+-- A plain variable is not available under Flat, so it cannot be the
+-- scrutinee of `match _b`.
+#define modal-match-inaccessible (x : ModalMatch) : Unit
+  := match _b x (mm point => unit)
diff --git a/test/typecheck/cases/ill-match-modal-motive.expect.yaml b/test/typecheck/cases/ill-match-modal-motive.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-modal-motive.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorModalityMismatch
+message_contains:
+  - "modality mismatch"
+regression_for:
+  - modal-match-motive-binder-modality
diff --git a/test/typecheck/cases/ill-match-modal-motive.rzk b/test/typecheck/cases/ill-match-modal-motive.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-modal-motive.rzk
@@ -0,0 +1,9 @@
+#lang rzk-1
+
+#data D := c
+
+#define bad-modal-motive
+  (x :_b D)
+  : Unit
+  := match _b x into (\ (_ : D) -> Unit)
+       (c => unit)
diff --git a/test/typecheck/cases/ill-match-modal-sharp.expect.yaml b/test/typecheck/cases/ill-match-modal-sharp.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-modal-sharp.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "modal match is not supported for ♯"
+regression_for:
+  - modal-data-no-sharp-eliminators
diff --git a/test/typecheck/cases/ill-match-modal-sharp.rzk b/test/typecheck/cases/ill-match-modal-sharp.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-modal-sharp.rzk
@@ -0,0 +1,8 @@
+#lang rzk-1
+
+-- There is no modal match for ♯: as a right adjoint it does not preserve
+-- coproducts, and an eliminator rec-sharp-Bool would retract ♯ Bool onto Bool.
+#data Bool := false | true
+
+#define retract (b :_# Bool) : Bool
+  := match _# b (false => false | true => true)
diff --git a/test/typecheck/cases/ill-modal-b-no-dist.expect.yaml b/test/typecheck/cases/ill-modal-b-no-dist.expect.yaml
--- a/test/typecheck/cases/ill-modal-b-no-dist.expect.yaml
+++ b/test/typecheck/cases/ill-modal-b-no-dist.expect.yaml
@@ -1,4 +1,4 @@
 status: error
 error_tag: TypeErrorUnaccessibleVar
 message_contains:
-  - "unaccessible var with modality"
+  - "is inaccessible in the current modal context"
diff --git a/test/typecheck/cases/ill-modal-not-modal.expect.yaml b/test/typecheck/cases/ill-modal-not-modal.expect.yaml
--- a/test/typecheck/cases/ill-modal-not-modal.expect.yaml
+++ b/test/typecheck/cases/ill-modal-not-modal.expect.yaml
@@ -1,4 +1,6 @@
 status: error
 error_tag: TypeErrorNotModal
 message_contains:
-  - "expected modal type"
+  - "cannot eliminate a non-modal value"
+  - "value: x"
+  - "type:  A"
diff --git a/test/typecheck/cases/ill-rstt-auxiliary-interval.expect.yaml b/test/typecheck/cases/ill-rstt-auxiliary-interval.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-auxiliary-interval.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - auxiliary interval
+regression_for:
+  - rstt-excludes-auxiliary-interval
diff --git a/test/typecheck/cases/ill-rstt-auxiliary-interval.rzk b/test/typecheck/cases/ill-rstt-auxiliary-interval.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-auxiliary-interval.rzk
@@ -0,0 +1,3 @@
+#lang rzk-1
+#set-option "rstt-safe" = "error"
+#def auxiliary : CUBE := II
diff --git a/test/typecheck/cases/ill-rstt-boundary-obligation.expect.yaml b/test/typecheck/cases/ill-rstt-boundary-obligation.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-boundary-obligation.expect.yaml
@@ -0,0 +1,4 @@
+status: error
+error_tag: TypeErrorUnifyTerms
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-boundary-obligation.rzk b/test/typecheck/cases/ill-rstt-boundary-obligation.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-boundary-obligation.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+#set-option "rstt-safe" = "error"
+#def boundary-obligation (A : U) (a b : A)
+  ((s, t) : 2 * 2 | s === 0_2 /\ t === 0_2)
+  : A [s === t ↦ a] := b
diff --git a/test/typecheck/cases/ill-rstt-dependent-cube-family.expect.yaml b/test/typecheck/cases/ill-rstt-dependent-cube-family.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-dependent-cube-family.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - cube domain
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-dependent-cube-family.rzk b/test/typecheck/cases/ill-rstt-dependent-cube-family.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-dependent-cube-family.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def dependent (I : 2 → CUBE) (s : 2)
+  (A : (t : I s) → U) : Unit := unit
diff --git a/test/typecheck/cases/ill-rstt-dependent-cube-instance.expect.yaml b/test/typecheck/cases/ill-rstt-dependent-cube-instance.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-dependent-cube-instance.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - cube domain
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-dependent-cube-instance.rzk b/test/typecheck/cases/ill-rstt-dependent-cube-instance.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-dependent-cube-instance.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def functions (I : CUBE) : U := (t : I) → Unit
+#def dependent (I : 2 → CUBE) (s : 2)
+  (f : functions (I s)) : Unit := unit
diff --git a/test/typecheck/cases/ill-rstt-dependent-cube.expect.yaml b/test/typecheck/cases/ill-rstt-dependent-cube.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-dependent-cube.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - cube domain
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-dependent-cube.rzk b/test/typecheck/cases/ill-rstt-dependent-cube.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-dependent-cube.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def dependent (I : 2 → CUBE) (s : 2)
+  (f : (t : I s) → Unit) : Unit := unit
diff --git a/test/typecheck/cases/ill-rstt-false-bottom.expect.yaml b/test/typecheck/cases/ill-rstt-false-bottom.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-false-bottom.expect.yaml
@@ -0,0 +1,4 @@
+status: error
+error_tag: TypeErrorTopeNotSatisfied
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-false-bottom.rzk b/test/typecheck/cases/ill-rstt-false-bottom.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-false-bottom.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def false-proof (A : U) : A := recBOT
diff --git a/test/typecheck/cases/ill-rstt-false-refl.expect.yaml b/test/typecheck/cases/ill-rstt-false-refl.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-false-refl.expect.yaml
@@ -0,0 +1,4 @@
+status: error
+error_tag: TypeErrorUnifyTerms
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-false-refl.rzk b/test/typecheck/cases/ill-rstt-false-refl.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-false-refl.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def false-path (A : U) (a b : A) : a = b := refl
diff --git a/test/typecheck/cases/ill-rstt-inductive.expect.yaml b/test/typecheck/cases/ill-rstt-inductive.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-inductive.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - inductive declaration
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-inductive.rzk b/test/typecheck/cases/ill-rstt-inductive.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-inductive.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#data bool := false | true
diff --git a/test/typecheck/cases/ill-rstt-meta-binder-in-face.expect.yaml b/test/typecheck/cases/ill-rstt-meta-binder-in-face.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-meta-binder-in-face.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - schematic binder
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-meta-binder-in-face.rzk b/test/typecheck/cases/ill-rstt-meta-binder-in-face.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-meta-binder-in-face.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def missed (A : U) (a : A)
+  : (t : 2) → A [t === ((\ (B : U) → 0_2) A) ↦ a]
+  := \ t → a
diff --git a/test/typecheck/cases/ill-rstt-meta-binder.expect.yaml b/test/typecheck/cases/ill-rstt-meta-binder.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-meta-binder.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - schematic binder
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-meta-binder.rzk b/test/typecheck/cases/ill-rstt-meta-binder.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-meta-binder.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def nested (A : U) (a : A) : A
+  := (\ (B : U) (b : B) → b) A a
diff --git a/test/typecheck/cases/ill-rstt-meta-prefix.expect.yaml b/test/typecheck/cases/ill-rstt-meta-prefix.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-meta-prefix.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - unsaturated schematic parameters
+regression_for:
+  - rstt-error-propagates-through-meta-prefix-traversal
diff --git a/test/typecheck/cases/ill-rstt-meta-prefix.rzk b/test/typecheck/cases/ill-rstt-meta-prefix.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-meta-prefix.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+#set-option "rstt-safe" = "error"
+#set-option "warn-meta-prefix" = "off"
+#def my-id (X : U) (x : X) : X := x
+#def stash : Σ (h : (X : U) → X → X), Unit := (my-id, unit)
diff --git a/test/typecheck/cases/ill-rstt-modal.expect.yaml b/test/typecheck/cases/ill-rstt-modal.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-modal.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - modal type
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-modal.rzk b/test/typecheck/cases/ill-rstt-modal.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-modal.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def sharp-pure (A : U) (a : A) : _# A := mod _# a
diff --git a/test/typecheck/cases/ill-rstt-option.expect.yaml b/test/typecheck/cases/ill-rstt-option.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-option.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - unknown rstt-safe mode
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-option.rzk b/test/typecheck/cases/ill-rstt-option.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-option.rzk
@@ -0,0 +1,3 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "yes"
diff --git a/test/typecheck/cases/ill-rstt-packed-cube-family.expect.yaml b/test/typecheck/cases/ill-rstt-packed-cube-family.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-packed-cube-family.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "a Σ component must be a type, got a cube family"
+regression_for:
+  - rstt-safe-mode
+  - layer-discipline-direct-guards
diff --git a/test/typecheck/cases/ill-rstt-packed-cube-family.rzk b/test/typecheck/cases/ill-rstt-packed-cube-family.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-packed-cube-family.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+-- The layer discipline rejects a cube family as a Σ component in every mode,
+-- before RSTT-safe mode sees the binder.
+#def pack : Σ (F : CUBE → CUBE), Unit := ((\ I → I), unit)
diff --git a/test/typecheck/cases/ill-rstt-packed-type-family.expect.yaml b/test/typecheck/cases/ill-rstt-packed-type-family.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-packed-type-family.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - schematic binder
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-packed-type-family.rzk b/test/typecheck/cases/ill-rstt-packed-type-family.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-packed-type-family.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def pack : Σ (F : U → U), Unit := ((\ A → A), unit)
diff --git a/test/typecheck/cases/ill-rstt-postulate.expect.yaml b/test/typecheck/cases/ill-rstt-postulate.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-postulate.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - free-standing restriction
+regression_for:
+  - rstt-postulate-is-an-assumption
diff --git a/test/typecheck/cases/ill-rstt-postulate.rzk b/test/typecheck/cases/ill-rstt-postulate.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-postulate.rzk
@@ -0,0 +1,3 @@
+#lang rzk-1
+#set-option "rstt-safe" = "error"
+#postulate restricted (A : U) (a : A) : A [TOP ↦ a]
diff --git a/test/typecheck/cases/ill-rstt-restriction-in-domain.expect.yaml b/test/typecheck/cases/ill-rstt-restriction-in-domain.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-restriction-in-domain.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - free-standing restriction
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-restriction-in-domain.rzk b/test/typecheck/cases/ill-rstt-restriction-in-domain.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-restriction-in-domain.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def missed (A : U) (a : A)
+  : (t : 2 | ((\ (x : A [TOP ↦ a]) → 0_2) a) === 0_2) → A
+  := \ t → a
diff --git a/test/typecheck/cases/ill-rstt-restriction.expect.yaml b/test/typecheck/cases/ill-rstt-restriction.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-restriction.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - free-standing restriction
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-restriction.rzk b/test/typecheck/cases/ill-rstt-restriction.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-restriction.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#set-option "warn-free-standing-restriction" = "no"
+#def assumed (A : U) (a : A) (f : (A [TOP ↦ a]) → A) : A := f a
diff --git a/test/typecheck/cases/ill-rstt-shape-boundary.expect.yaml b/test/typecheck/cases/ill-rstt-shape-boundary.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-shape-boundary.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - restriction boundary
+  - outer cube points
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-shape-boundary.rzk b/test/typecheck/cases/ill-rstt-shape-boundary.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-shape-boundary.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#postulate mixed (A : U) (a : A) (s : 2)
+  (f : (t : 2) → A [t === s ↦ a]) : Unit
diff --git a/test/typecheck/cases/ill-rstt-shape-domain.expect.yaml b/test/typecheck/cases/ill-rstt-shape-domain.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-shape-domain.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - shape domain
+  - outer cube points
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-shape-domain.rzk b/test/typecheck/cases/ill-rstt-shape-domain.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-shape-domain.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def mixed (s : 2) : (t : 2 | t <= s) → Unit := \ t → unit
diff --git a/test/typecheck/cases/ill-rstt-uncovered-endpoints.expect.yaml b/test/typecheck/cases/ill-rstt-uncovered-endpoints.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-uncovered-endpoints.expect.yaml
@@ -0,0 +1,4 @@
+status: error
+error_tag: TypeErrorTopeNotSatisfied
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-rstt-uncovered-endpoints.rzk b/test/typecheck/cases/ill-rstt-uncovered-endpoints.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-uncovered-endpoints.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#def uncovered (A : U) (a : A) (t : 2) : A :=
+  recOR (t === 0_2 ↦ a, t === 1_2 ↦ a)
diff --git a/test/typecheck/cases/ill-rstt-unsupported.expect.yaml b/test/typecheck/cases/ill-rstt-unsupported.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-unsupported.expect.yaml
@@ -0,0 +1,8 @@
+status: error
+error_tag: TypeErrorRSTT
+message_contains:
+  - cube supremum (sup)
+line: 4
+column: 23
+regression_for:
+  - rstt-safe-syntax-allow-list
diff --git a/test/typecheck/cases/ill-rstt-unsupported.rzk b/test/typecheck/cases/ill-rstt-unsupported.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-rstt-unsupported.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+#set-option "rstt-safe" = "error"
+#def discard (i : 2) : Unit :=
+  (\ (j : 2) → unit) (sup i 1_2)
diff --git a/test/typecheck/cases/ill-shape-dependency-option.expect.yaml b/test/typecheck/cases/ill-shape-dependency-option.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-shape-dependency-option.expect.yaml
@@ -0,0 +1,6 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - unknown value for "warn-shape-dependency"
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/ill-shape-dependency-option.rzk b/test/typecheck/cases/ill-shape-dependency-option.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-shape-dependency-option.rzk
@@ -0,0 +1,3 @@
+#lang rzk-1
+
+#set-option "warn-shape-dependency" = "off"
diff --git a/test/typecheck/cases/ill-tope-family-domain-non-instance.expect.yaml b/test/typecheck/cases/ill-tope-family-domain-non-instance.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-tope-family-domain-non-instance.expect.yaml
@@ -0,0 +1,8 @@
+status: error
+error_tag: TypeErrorTopeNotSatisfied
+message_contains:
+  - "local context"
+  - "entails"
+line: 17
+regression_for:
+  - tope-family-domain-conjunct-elaboration
diff --git a/test/typecheck/cases/ill-tope-family-domain-non-instance.rzk b/test/typecheck/cases/ill-tope-family-domain-non-instance.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-tope-family-domain-non-instance.rzk
@@ -0,0 +1,17 @@
+#lang rzk-1
+
+-- A family χ : ψ → TOPE is read together with its domain where it is applied:
+-- the binder (t : χ) carries ψ t ∧ χ t. Passed to `wider`, it is read without
+-- the domain. For a family variable the two readings agree, so `coerce` is
+-- accepted. The instantiation ψ := ⊥, χ := ⊤ violates the inclusion, and
+-- without the domain conjunct on the concrete family `bad` inhabited every
+-- type. It must be rejected.
+
+#def wider (I : CUBE) (φ : I → TOPE) (A : U) : U := (t : φ) → A
+
+#def coerce (I : CUBE) (ψ : I → TOPE) (χ : ψ → TOPE) (A : U) (f : (t : χ) → A)
+  : wider I χ A
+  := f
+
+#def bad (A : U) : A
+  := coerce 2 (\ t → BOT) (\ t → TOP) A (\ t → recBOT) 0₂
diff --git a/test/typecheck/cases/ill-tope-family-domain-same-domain.expect.yaml b/test/typecheck/cases/ill-tope-family-domain-same-domain.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-tope-family-domain-same-domain.expect.yaml
@@ -0,0 +1,5 @@
+status: error
+error_tag: TypeErrorTopeNotSatisfied
+line: 14
+regression_for:
+  - tope-family-domain-conjunct-elaboration
diff --git a/test/typecheck/cases/ill-tope-family-domain-same-domain.rzk b/test/typecheck/cases/ill-tope-family-domain-same-domain.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-tope-family-domain-same-domain.rzk
@@ -0,0 +1,14 @@
+#lang rzk-1
+
+-- Control for ill-tope-family-domain-non-instance: with a callee parameter of
+-- the same domain ψ, both readings carry ψ t ∧ φ t, and `bad` is rejected
+-- independently of the domain conjunct on concrete families.
+
+#def same (I : CUBE) (ψ : I → TOPE) (φ : ψ → TOPE) (A : U) : U := (t : φ) → A
+
+#def coerce (I : CUBE) (ψ : I → TOPE) (χ : ψ → TOPE) (A : U) (f : (t : χ) → A)
+  : same I ψ χ A
+  := f
+
+#def bad (A : U) : A
+  := coerce 2 (\ t → BOT) (\ t → TOP) A (\ t → recBOT) 0₂
diff --git a/test/typecheck/cases/ill-tope-param-entailment.expect.yaml b/test/typecheck/cases/ill-tope-param-entailment.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-tope-param-entailment.expect.yaml
@@ -0,0 +1,4 @@
+status: error
+error_tag: TypeErrorTopeNotSatisfied
+regression_for:
+  - bare-tope-parameter
diff --git a/test/typecheck/cases/ill-tope-param-entailment.rzk b/test/typecheck/cases/ill-tope-param-entailment.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-tope-param-entailment.rzk
@@ -0,0 +1,7 @@
+#lang rzk-1
+
+-- Bare tope parameters are opaque: psi does not entail an unrelated chi.
+#define bad
+  ( psi chi : TOPE) (A : U) (f : (t : 2 | chi) -> A)
+  : (t : 2 | psi) -> A
+  := \ t -> f t
diff --git a/test/typecheck/cases/ill-tope-param-instance.expect.yaml b/test/typecheck/cases/ill-tope-param-instance.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-tope-param-instance.expect.yaml
@@ -0,0 +1,4 @@
+status: error
+error_tag: TypeErrorTopeNotSatisfied
+regression_for:
+  - bare-tope-parameter
diff --git a/test/typecheck/cases/ill-tope-param-instance.rzk b/test/typecheck/cases/ill-tope-param-instance.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-tope-param-instance.rzk
@@ -0,0 +1,7 @@
+#lang rzk-1
+
+-- Instantiating a bare tope parameter keeps the restriction: a function on
+-- the shape t === 0_2 cannot be applied at an arbitrary point.
+#define const-on (psi : TOPE) (A : U) (a : A) : (t : 2 | psi) -> A := \ _ -> a
+
+#define bad (A : U) (a : A) (t : 2) : A := const-on (t === 0_2) A a t
diff --git a/test/typecheck/cases/ill-tope-param-lambda.expect.yaml b/test/typecheck/cases/ill-tope-param-lambda.expect.yaml
deleted file mode 100644
--- a/test/typecheck/cases/ill-tope-param-lambda.expect.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-status: error
-error_tag: TypeErrorOther
-message_contains:
-  - "tope params are illegal"
-regression_for:
-  - lambda-TOPE-param-forbidden
diff --git a/test/typecheck/cases/ill-tope-param-lambda.rzk b/test/typecheck/cases/ill-tope-param-lambda.rzk
deleted file mode 100644
--- a/test/typecheck/cases/ill-tope-param-lambda.rzk
+++ /dev/null
@@ -1,3 +0,0 @@
-#lang rzk-1
-
-#define bad : (p : TOPE) -> U := \ p -> U
diff --git a/test/typecheck/cases/ill-tope-param-typefun.expect.yaml b/test/typecheck/cases/ill-tope-param-typefun.expect.yaml
deleted file mode 100644
--- a/test/typecheck/cases/ill-tope-param-typefun.expect.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-status: error
-error_tag: TypeErrorOther
-message_contains:
-  - "tope params are illegal"
-regression_for:
-  - TypeFun-TOPE-domain-forbidden
diff --git a/test/typecheck/cases/ill-tope-param-typefun.rzk b/test/typecheck/cases/ill-tope-param-typefun.rzk
deleted file mode 100644
--- a/test/typecheck/cases/ill-tope-param-typefun.rzk
+++ /dev/null
@@ -1,3 +0,0 @@
-#lang rzk-1
-
-#define bad (phi : TOPE) : U := U
diff --git a/test/typecheck/cases/warn-free-standing-restriction-assumed.expect.yaml b/test/typecheck/cases/warn-free-standing-restriction-assumed.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-free-standing-restriction-assumed.expect.yaml
@@ -0,0 +1,13 @@
+status: ok
+warnings:
+  - FreeStandingRestrictionWarning
+  - FreeStandingRestrictionWarning
+  - FreeStandingRestrictionWarning
+  - FreeStandingRestrictionWarning
+  - FreeStandingRestrictionWarning
+  - FreeStandingRestrictionWarning
+  - FreeStandingRestrictionWarning
+  - FreeStandingRestrictionWarning
+  - FreeStandingRestrictionWarning
+regression_for:
+  - free-standing-restriction-warning
diff --git a/test/typecheck/cases/warn-free-standing-restriction-assumed.rzk b/test/typecheck/cases/warn-free-standing-restriction-assumed.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-free-standing-restriction-assumed.rzk
@@ -0,0 +1,41 @@
+#lang rzk-1
+
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+#set-option "warn-free-standing-restriction" = "yes"
+
+-- A restriction is ext-style when it sits on the codomain of a shape-Π.
+-- Conservativity over RSTT covers the derivations that conclude a
+-- free-standing restriction but never assume one, so the checker reports the
+-- assumed positions: a binder, an eliminator motive, a type passed as data.
+
+#def at-binder (A : U) (x : A) (f : (A [TOP ↦ x]) → A) : A
+  := f x
+
+-- The motive of idJ: the eliminator binds its variables at it.
+#def at-motive (A : U) (x : A) (p : x =_{A} x) : A [TOP ↦ x]
+  := idJ (A , x , (\ _ _ → A [TOP ↦ x]) , x , x , p)
+
+-- Passed as data at a U-valued parameter, then substituted into a motive.
+#def generic-J (A : U) (x : A) (C : (z : A) → (x =_{A} z) → U) (d : C x refl)
+  ( y : A) (p : x =_{A} y)
+  : C y p
+  := idJ (A , x , C , d , y , p)
+
+#def at-data (A : U) (x : A) (p : x =_{A} x) : A [TOP ↦ x]
+  := generic-J A x (\ _ _ → A [TOP ↦ x]) x x p
+
+-- A definition at U whose body is a type: data as well.
+#def at-universe (A : U) (x : A) : U
+  := A [TOP ↦ x]
+
+-- The type of an identity type, which types its endpoints: Def. 5.7 of the
+-- paper does not reach a restriction there.
+#def at-identity (A : U) (x : A) (y : A [TOP ↦ x]) : U
+  := y =_{A [TOP ↦ x]} y
+
+-- The motive of a generated eliminator, passed at its U-valued parameter.
+#data bool := false | true
+
+#def at-eliminator (A : U) (x : A) (b : bool) : A [TOP ↦ x]
+  := ind-bool (\ _ → A [TOP ↦ x]) x x b
diff --git a/test/typecheck/cases/warn-free-standing-restriction-option.expect.yaml b/test/typecheck/cases/warn-free-standing-restriction-option.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-free-standing-restriction-option.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings:
+  - FreeStandingRestrictionWarning
+regression_for:
+  - free-standing-restriction-warning
diff --git a/test/typecheck/cases/warn-free-standing-restriction-option.rzk b/test/typecheck/cases/warn-free-standing-restriction-option.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-free-standing-restriction-option.rzk
@@ -0,0 +1,20 @@
+#lang rzk-1
+
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
+-- The report is controlled by warn-free-standing-restriction; what the
+-- checker accepts does not change.
+
+#def quietly (A : U) (x : A) : U
+  := A [TOP ↦ x]
+
+#set-option "warn-free-standing-restriction" = "yes"
+
+#def reported (A : U) (x : A) : U
+  := A [TOP ↦ x]
+
+#unset-option "warn-free-standing-restriction"
+
+#def reset-quietly (A : U) (x : A) : U
+  := A [TOP ↦ x]
diff --git a/test/typecheck/cases/warn-meta-binder-inside-term.expect.yaml b/test/typecheck/cases/warn-meta-binder-inside-term.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-meta-binder-inside-term.expect.yaml
@@ -0,0 +1,7 @@
+status: ok
+warnings:
+  - MetaBinderWarning
+  - MetaBinderWarning
+  - MetaBinderWarning
+regression_for:
+  - meta-binder-warning
diff --git a/test/typecheck/cases/warn-meta-binder-inside-term.rzk b/test/typecheck/cases/warn-meta-binder-inside-term.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-meta-binder-inside-term.rzk
@@ -0,0 +1,45 @@
+#lang rzk-1
+
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
+-- Schematic parameters are bound in a declaration's parameter prefix, so
+-- that a declaration is a family of object-theory statements, one per
+-- instantiation. A λ inside a term that binds a universe, a cube or a tope
+-- family is outside that reading; it is reported when asked for.
+
+#set-option "warn-meta-binder" = "yes"
+
+-- Leading λs are the declaration's own parameters: silent.
+#def my-id : (X : U) → X → X
+  := \ X x → x
+
+#def at-universe (A : U) (a : A) : A
+  := (\ (B : U) → \ (b : B) → b) A a
+
+#def at-cube (A : U) (a : A) : A
+  := (\ (J : CUBE) → a) 2
+
+#def at-tope-family (I : CUBE) (A : U) (a : A) : A
+  := (\ (φ : I → TOPE) → a) (\ t → TOP)
+
+-- A schema defined by recursion on a schematic index: the case split has to
+-- come first, so the remaining parameters are bound in its branches. Both the
+-- index and the universe are in the meta prefix, so uses supply them; silent.
+#data nat := zero | suc (n : nat)
+
+#def Schematic (n : nat) : U
+  := ( A : U) → A → A
+
+#def by-index (n : nat) : Schematic n
+  := match n
+     ( zero ⇒ \ A a → a
+     | suc _ ih ⇒ \ A a → ih (A → A) (\ x → x) a)
+
+-- Supplying a schema at a schematic parameter is the plumbing the
+-- meta-prefix check allows; silent.
+#def takes-schema (h : (A : U) → A → A) (B : U) (b : B) : B
+  := h B b
+
+#def supplies-schema (B : U) (b : B) : B
+  := takes-schema (\ A a → a) B b
diff --git a/test/typecheck/cases/warn-meta-prefix-object-position.rzk b/test/typecheck/cases/warn-meta-prefix-object-position.rzk
--- a/test/typecheck/cases/warn-meta-prefix-object-position.rzk
+++ b/test/typecheck/cases/warn-meta-prefix-object-position.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- my-id has meta prefix X (a universe parameter).
 #define my-id (X : U) (x : X) : X := x
 
diff --git a/test/typecheck/cases/warn-meta-prefix-option-structural.rzk b/test/typecheck/cases/warn-meta-prefix-option-structural.rzk
--- a/test/typecheck/cases/warn-meta-prefix-option-structural.rzk
+++ b/test/typecheck/cases/warn-meta-prefix-option-structural.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #set-option "warn-meta-prefix" = "structural"
 
 #define my-id (X : U) (x : X) : X := x
diff --git a/test/typecheck/cases/warn-meta-prefix-section.rzk b/test/typecheck/cases/warn-meta-prefix-section.rzk
--- a/test/typecheck/cases/warn-meta-prefix-section.rzk
+++ b/test/typecheck/cases/warn-meta-prefix-section.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 -- Closing the section abstracts T out of use-T, whose type becomes
 -- (T : U) → U: the meta prefix must be recomputed at #end.
 #section sec
diff --git a/test/typecheck/cases/warn-meta-prefix-strict-only.rzk b/test/typecheck/cases/warn-meta-prefix-strict-only.rzk
--- a/test/typecheck/cases/warn-meta-prefix-strict-only.rzk
+++ b/test/typecheck/cases/warn-meta-prefix-strict-only.rzk
@@ -1,5 +1,8 @@
 #lang rzk-1
 
+-- Exercise standalone diagnostics independently of the safe-mode bundle.
+#set-option "rstt-safe" = "off"
+
 #define my-id (X : U) (x : X) : X := x
 
 -- Passing the unsaturated schema to a local parameter whose declared type
diff --git a/test/typecheck/cases/warn-overhang-controls.expect.yaml b/test/typecheck/cases/warn-overhang-controls.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-overhang-controls.expect.yaml
@@ -0,0 +1,7 @@
+status: ok
+warnings:
+  - OverhangWarning
+regression_for:
+  - structured-overhang-recOR-silent-verbosity
+  - warn-overhang-disable-and-reset
+  - overhang-entailment-direction
diff --git a/test/typecheck/cases/warn-overhang-controls.rzk b/test/typecheck/cases/warn-overhang-controls.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-overhang-controls.rzk
@@ -0,0 +1,13 @@
+#lang rzk-1
+
+-- Disabling and unsetting restore silence; a contained face stays silent.
+#set-option "warn-overhang" = "yes"
+#set-option "verbosity" = "silent"
+#def contained (t : 2 | t === 0_2) : Unit [t === 0_2 |-> unit] := unit
+#def split (t : 2 | t === 0_2) : Unit
+  := recOR ((t === 0_2) \/ (t === 1_2) |-> unit)
+#set-option "warn-overhang" = "no"
+#def disabled (t : 2 | t === 0_2) : Unit [TOP |-> unit] := unit
+#set-option "warn-overhang" = "yes"
+#unset-option "warn-overhang"
+#def reset (t : 2 | t === 0_2) : Unit [TOP |-> unit] := unit
diff --git a/test/typecheck/cases/warn-rstt-bare-tope-binder-in-term.expect.yaml b/test/typecheck/cases/warn-rstt-bare-tope-binder-in-term.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-bare-tope-binder-in-term.expect.yaml
@@ -0,0 +1,7 @@
+status: ok
+warnings:
+  - MetaBinderWarning
+  - MetaBinderWarning
+regression_for:
+  - rstt-safe-mode
+  - bare-tope-parameter
diff --git a/test/typecheck/cases/warn-rstt-bare-tope-binder-in-term.rzk b/test/typecheck/cases/warn-rstt-bare-tope-binder-in-term.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-bare-tope-binder-in-term.rzk
@@ -0,0 +1,11 @@
+#lang rzk-1
+
+-- A TOPE binder inside a term is a meta binder in an object position, as
+-- for a tope family: once inside data, once in a redex.
+#set-option "rstt-safe" = "warn"
+
+#define in-pair (A : U) (a : A) : A
+  := first ((a , \ psi -> a) as Σ (x : A) , ((psi : TOPE) -> A))
+
+#define in-redex (A : U) (a : A) : A
+  := (\ (psi : TOPE) -> a) TOP
diff --git a/test/typecheck/cases/warn-rstt-bare-tope-object-point.expect.yaml b/test/typecheck/cases/warn-rstt-bare-tope-object-point.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-bare-tope-object-point.expect.yaml
@@ -0,0 +1,6 @@
+status: ok
+warnings:
+  - RSTTShapeDependencyWarning
+regression_for:
+  - rstt-safe-mode
+  - bare-tope-parameter
diff --git a/test/typecheck/cases/warn-rstt-bare-tope-object-point.rzk b/test/typecheck/cases/warn-rstt-bare-tope-object-point.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-bare-tope-object-point.rzk
@@ -0,0 +1,10 @@
+#lang rzk-1
+
+-- A bare tope parameter is a meta parameter, like (psi : 1 -> TOPE): an
+-- instance that mentions an object-level point is outside RSTT.
+#set-option "rstt-safe" = "warn"
+
+#define const-on (psi : TOPE) (A : U) (a : A) : (t : 2 | psi) -> A := \ _ -> a
+
+#define at-point (s : 2) (A : U) (a : A) : (t : 2 | s === 0_2) -> A
+  := const-on (s === 0_2) A a
diff --git a/test/typecheck/cases/warn-rstt-default.expect.yaml b/test/typecheck/cases/warn-rstt-default.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-default.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/warn-rstt-default.rzk b/test/typecheck/cases/warn-rstt-default.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-default.rzk
@@ -0,0 +1,8 @@
+#lang rzk-1
+
+-- RSTT-safe mode is off by default: the schematic binder inside the body
+-- passes silently.
+#set-option "warn-meta-binder" = "no"
+#set-option "warn-meta-prefix" = "off"
+#def nested (A : U) (a : A) : A
+  := (\ (B : U) (b : B) → b) A a
diff --git a/test/typecheck/cases/warn-rstt-escape-beta.expect.yaml b/test/typecheck/cases/warn-rstt-escape-beta.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-beta.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings:
+  - FreeStandingRestrictionWarning
+regression_for:
+  - rstt-restriction-escape-beta
diff --git a/test/typecheck/cases/warn-rstt-escape-beta.rzk b/test/typecheck/cases/warn-rstt-escape-beta.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-beta.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- Audit S2 alone: report the introduction, not an unfolded use site.
+#set-option "rstt-safe" = "off"
+#set-option "warn-free-standing-restriction" = "yes"
+#def beta (A : U) (a : A) : U := (\ (X : U) → X) (A [TOP ↦ a])
diff --git a/test/typecheck/cases/warn-rstt-escape-iota.expect.yaml b/test/typecheck/cases/warn-rstt-escape-iota.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-iota.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings:
+  - FreeStandingRestrictionWarning
+regression_for:
+  - rstt-restriction-escape-iota
diff --git a/test/typecheck/cases/warn-rstt-escape-iota.rzk b/test/typecheck/cases/warn-rstt-escape-iota.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-iota.rzk
@@ -0,0 +1,8 @@
+#lang rzk-1
+
+-- Audit S2 alone: report the introduction, not an unfolded use site.
+#set-option "rstt-safe" = "off"
+#set-option "warn-free-standing-restriction" = "yes"
+#data nat := zero | suc (n : nat)
+#def via-match (A : U) (a : A) (n : nat) : U
+ := match n (zero ⇒ Unit | suc k ih ⇒ A [TOP ↦ a])
diff --git a/test/typecheck/cases/warn-rstt-escape-let.expect.yaml b/test/typecheck/cases/warn-rstt-escape-let.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-let.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings:
+  - FreeStandingRestrictionWarning
+regression_for:
+  - rstt-restriction-escape-let
diff --git a/test/typecheck/cases/warn-rstt-escape-let.rzk b/test/typecheck/cases/warn-rstt-escape-let.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-let.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- Audit S2 alone: report the introduction, not an unfolded use site.
+#set-option "rstt-safe" = "off"
+#set-option "warn-free-standing-restriction" = "yes"
+#def via-let (A : U) (a : A) : U := let X := A [TOP ↦ a] in X
diff --git a/test/typecheck/cases/warn-rstt-escape-pair.expect.yaml b/test/typecheck/cases/warn-rstt-escape-pair.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-pair.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings:
+  - FreeStandingRestrictionWarning
+regression_for:
+  - rstt-restriction-escape-pair
diff --git a/test/typecheck/cases/warn-rstt-escape-pair.rzk b/test/typecheck/cases/warn-rstt-escape-pair.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-pair.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- Audit S2 alone: report the introduction, not an unfolded use site.
+#set-option "rstt-safe" = "off"
+#set-option "warn-free-standing-restriction" = "yes"
+#def via-pair (A : U) (a : A) : U := first ((A [TOP ↦ a], unit) as Σ (X : U), Unit)
diff --git a/test/typecheck/cases/warn-rstt-escape-section.expect.yaml b/test/typecheck/cases/warn-rstt-escape-section.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-section.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings:
+  - FreeStandingRestrictionWarning
+regression_for:
+  - rstt-restriction-escape-section
diff --git a/test/typecheck/cases/warn-rstt-escape-section.rzk b/test/typecheck/cases/warn-rstt-escape-section.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-section.rzk
@@ -0,0 +1,11 @@
+#lang rzk-1
+
+-- Audit S2 alone: report the introduction, not an unfolded use site.
+#set-option "rstt-safe" = "off"
+#set-option "warn-free-standing-restriction" = "yes"
+#section assumptions
+#assume A : U
+#assume a : A
+#assume x : A [TOP ↦ a]
+#def use uses (a) : A := x
+#end assumptions
diff --git a/test/typecheck/cases/warn-rstt-escape-tope-family.expect.yaml b/test/typecheck/cases/warn-rstt-escape-tope-family.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-tope-family.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings:
+  - FreeStandingRestrictionWarning
+regression_for:
+  - rstt-restriction-escape-tope-family
diff --git a/test/typecheck/cases/warn-rstt-escape-tope-family.rzk b/test/typecheck/cases/warn-rstt-escape-tope-family.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-tope-family.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- Audit S2 alone: report the introduction, not an unfolded use site.
+#set-option "rstt-safe" = "off"
+#set-option "warn-free-standing-restriction" = "yes"
+#def family (A : U) (a : A) : 2 → U := \ t → A [t === 0_2 ↦ a]
diff --git a/test/typecheck/cases/warn-rstt-escape-unfolding.expect.yaml b/test/typecheck/cases/warn-rstt-escape-unfolding.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-unfolding.expect.yaml
@@ -0,0 +1,6 @@
+status: ok
+warnings:
+  - FreeStandingRestrictionWarning
+  - FreeStandingRestrictionWarning
+regression_for:
+  - rstt-restriction-escape-unfolding
diff --git a/test/typecheck/cases/warn-rstt-escape-unfolding.rzk b/test/typecheck/cases/warn-rstt-escape-unfolding.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-escape-unfolding.rzk
@@ -0,0 +1,7 @@
+#lang rzk-1
+
+-- Audit S2 alone: report both the introduction and its unfolded use.
+#set-option "rstt-safe" = "off"
+#set-option "warn-free-standing-restriction" = "yes"
+#def restricted (A : U) (a : A) : U := A [TOP ↦ a]
+#postulate use (A : U) (a : A) (x : restricted A a) : A
diff --git a/test/typecheck/cases/warn-rstt-inductive.expect.yaml b/test/typecheck/cases/warn-rstt-inductive.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-inductive.expect.yaml
@@ -0,0 +1,6 @@
+status: ok
+warnings:
+  - RSTTInductiveWarning
+  - RSTTInductiveWarning
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/warn-rstt-inductive.rzk b/test/typecheck/cases/warn-rstt-inductive.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-inductive.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "warn"
+
+#data bool := false | true
+#def choose (b : bool) : bool := match b (false ⇒ true | true ⇒ false)
diff --git a/test/typecheck/cases/warn-rstt-modal.expect.yaml b/test/typecheck/cases/warn-rstt-modal.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-modal.expect.yaml
@@ -0,0 +1,8 @@
+status: ok
+warnings:
+  - RSTTModalWarning
+  - RSTTModalWarning
+  - RSTTModalWarning
+  - RSTTModalWarning
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/warn-rstt-modal.rzk b/test/typecheck/cases/warn-rstt-modal.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-modal.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "warn"
+
+#def sharp-pure (A : U) (a : A) : _# A := mod _# a
+#def crisp (A :_b U) (a :_b A) : A := a
diff --git a/test/typecheck/cases/warn-rstt-reset.expect.yaml b/test/typecheck/cases/warn-rstt-reset.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-reset.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/warn-rstt-reset.rzk b/test/typecheck/cases/warn-rstt-reset.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-reset.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "error"
+#unset-option "rstt-safe"
+#def nested (A : U) (a : A) : A
+  := (\ (B : U) (b : B) → b) A a
diff --git a/test/typecheck/cases/warn-rstt-shape-dependency.expect.yaml b/test/typecheck/cases/warn-rstt-shape-dependency.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-shape-dependency.expect.yaml
@@ -0,0 +1,11 @@
+status: ok
+warnings:
+  - RSTTShapeDependencyWarning
+  - RSTTShapeDependencyWarning
+  - RSTTShapeDependencyWarning
+  - RSTTShapeDependencyWarning
+  - RSTTShapeDependencyWarning
+  - RSTTShapeDependencyWarning
+  - RSTTShapeDependencyWarning
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/warn-rstt-shape-dependency.rzk b/test/typecheck/cases/warn-rstt-shape-dependency.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-shape-dependency.rzk
@@ -0,0 +1,27 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "warn"
+
+-- A mixed face fails even when the inner domain is the whole cube.
+#postulate mixed-boundary (A : U) (a : A) (s : 2)
+  (f : (t : 2) → A [t === s ↦ a]) : Unit
+
+-- An outer point in the domain is forbidden even without a restriction.
+#postulate mixed-domain (A : U) (s : 2)
+  (f : (t : 2 | t <= s) → A) : Unit
+
+-- Different cubes can be related by a schematic tope family.
+#postulate distinct-cubes (I J : CUBE) (φ : I → J → TOPE)
+  (s : I) (f : (t : J) → Unit [φ s t ↦ unit]) : Unit
+
+-- A product-pattern binder does not hide its dependency from an inner binder.
+#postulate outer-product (A : U) (a : A) ((s, u) : 2 * 2)
+  (f : (t : 2) → A [t === s ↦ a]) : Unit
+
+-- A domain may occur only in a nested lambda's inferred type.
+#def nested (s : 2) : Unit := (\ (t : 2 | t <= s) → unit) 0_2
+
+-- A local tope-family alias must not hide an outer cube point.
+#def alias (s : 2) : U :=
+  let face : 2 → TOPE := \ t → t === s in
+  (t : 2) → Unit [face t ↦ unit]
diff --git a/test/typecheck/cases/warn-rstt-warn-overrides-standalone.expect.yaml b/test/typecheck/cases/warn-rstt-warn-overrides-standalone.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-warn-overrides-standalone.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings:
+  - MetaBinderWarning
+regression_for:
+  - rstt-safe-mode
diff --git a/test/typecheck/cases/warn-rstt-warn-overrides-standalone.rzk b/test/typecheck/cases/warn-rstt-warn-overrides-standalone.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-rstt-warn-overrides-standalone.rzk
@@ -0,0 +1,7 @@
+#lang rzk-1
+
+#set-option "rstt-safe" = "warn"
+#set-option "warn-meta-binder" = "no"
+#set-option "warn-meta-prefix" = "off"
+#def nested (A : U) (a : A) : A
+  := (\ (B : U) (b : B) → b) A a
diff --git a/test/typecheck/cases/warn-tope-family-domain-non-instance.expect.yaml b/test/typecheck/cases/warn-tope-family-domain-non-instance.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-tope-family-domain-non-instance.expect.yaml
@@ -0,0 +1,6 @@
+status: ok
+warnings:
+  - TopeFamilyDomainWarning
+  - TopeFamilyDomainWarning
+regression_for:
+  - tope-family-domain-warning
diff --git a/test/typecheck/cases/warn-tope-family-domain-non-instance.rzk b/test/typecheck/cases/warn-tope-family-domain-non-instance.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-tope-family-domain-non-instance.rzk
@@ -0,0 +1,22 @@
+#lang rzk-1
+
+-- A concrete family not included in its declared domain is read as its
+-- intersection with the domain (happy-tope-family-domain-instance), so the
+-- family checked differs from the family written, and the checker says so.
+
+#def over-domain (I : CUBE) (ψ : I → TOPE) (χ : ψ → TOPE) (A : U) : U
+  := (t : χ) → A
+
+-- ⊤ over the domain ⊥ is read as ⊥ ∧ ⊤.
+#def instantiate (I : CUBE) (A : U) : U
+  := over-domain I (\ t → BOT) (\ t → TOP) A
+
+-- In a parameter type, the family is elaborated twice and reported once.
+#def from-instantiated (I : CUBE) (A : U) (f : over-domain I (\ t → BOT) (\ t → TOP) A)
+  : (t : I | BOT) → A
+  := f
+
+-- t ≡ 0₂ over the domain t ≡ 0₂ ∨ t ≡ 1₂ is included; silent.
+#def endpoint (A : U) (a : A)
+  : over-domain 2 (\ t → t ≡ 0₂ ∨ t ≡ 1₂) (\ t → t ≡ 0₂) A
+  := \ t → a
diff --git a/test/typecheck/cases/warn-tope-family-domain-option.expect.yaml b/test/typecheck/cases/warn-tope-family-domain-option.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-tope-family-domain-option.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings:
+  - TopeFamilyDomainWarning
+regression_for:
+  - tope-family-domain-warning
diff --git a/test/typecheck/cases/warn-tope-family-domain-option.rzk b/test/typecheck/cases/warn-tope-family-domain-option.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/warn-tope-family-domain-option.rzk
@@ -0,0 +1,19 @@
+#lang rzk-1
+
+-- The warning is controlled by warn-tope-family-domain. The family is read as
+-- its intersection with the domain either way.
+
+#def over-domain (I : CUBE) (ψ : I → TOPE) (χ : ψ → TOPE) (A : U) : U
+  := (t : χ) → A
+
+#set-option "warn-tope-family-domain" = "no"
+
+-- Silent.
+#def instantiate-quietly (I : CUBE) (A : U) : U
+  := over-domain I (\ t → BOT) (\ t → TOP) A
+
+#unset-option "warn-tope-family-domain"
+
+-- Reported again.
+#def instantiate (I : CUBE) (A : U) : U
+  := over-domain I (\ t → BOT) (\ t → TOP) A
