diff --git a/lang/mlton/Makefile b/lang/mlton/Makefile index b2281a6c36f4..68ceb31e2ccf 100644 --- a/lang/mlton/Makefile +++ b/lang/mlton/Makefile @@ -12,10 +12,11 @@ PORTNAME= mlton PORTVERSION= 20070826 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= lang MASTER_SITES= http://mlton.org/pages/Download/attachments/ \ - http://mlton.org/pages/Experimental/attachments/ + http://mlton.org/pages/Experimental/attachments/ \ + http://www.cse.unsw.edu.au/~tbourke/distfiles/ DISTFILES= ${BOOT_DIST} ${SRC_DIST} EXTRACT_ONLY= ${SRC_DIST} @@ -23,17 +24,43 @@ EXTRACT_ONLY= ${SRC_DIST} MAINTAINER= jesper.louis.andersen@gmail.com COMMENT= An optimizing Standard ML compiler +LIB_DEPENDS= gmp.7:${PORTSDIR}/math/libgmp4 +RUN_DEPENDS= bash:${PORTSDIR}/shells/bash BUILD_DEPENDS= bash:${PORTSDIR}/shells/bash + +OPTIONS= SMLNJ "Bootstrap with SML/NJ (can take >15 hours)" off \ + MINGW32 "Add the mingw32 target (requires wine)" off + +.include + .if !defined(NOPORTDOCS) BUILD_DEPENDS+= gsed:${PORTSDIR}/textproc/gsed \ htmldoc:${PORTSDIR}/textproc/htmldoc \ latex:${PORTSDIR}/print/teTeX .endif -LIB_DEPENDS= gmp.7:${PORTSDIR}/math/libgmp4 -RUN_DEPENDS= bash:${PORTSDIR}/shells/bash SRC_DIST= ${DISTNAME}-1.src.tgz -BOOT_DIST= ${PORTNAME}-${BOOT_VER}-1-0.${MACHINE_ARCH}-freebsd.${BOOT_SUF} + +.if defined(WITH_SMLNJ) +BUILD_DEPENDS+= smlnj-devel>=110.65:${PORTSDIR}/lang/sml-nj-devel +BOOT_DIST= +MAKE_ENV+= SMLNJ_DEVEL=yes +ALL_TARGET= bootstrap-nj +.else +BOOT_DIST= ${PORTNAME}-${BOOT_VER}-1.${MACHINE_ARCH}-freebsd${OSRELMAJ}.${BOOT_SUF} +.endif + +.if defined(WITH_MINGW32) +BUILD_DEPENDS+= wine:${PORTSDIR}/emulators/wine \ + mingw32-gcc:${PORTSDIR}/devel/mingw32-gcc \ + ${LOCALBASE}/mingw32/lib/libgmp.a:${PORTSDIR}/devel/mingw32-libgmp4 +RUN_DEPENDS+= mingw32-gcc:${PORTSDIR}/devel/mingw32-gcc \ + ${LOCALBASE}/mingw32/lib/libgmp.a:${PORTSDIR}/devel/mingw32-libgmp4 + +PLIST_SUB+= MINGW32CROSS="" +.else +PLIST_SUB+= MINGW32CROSS="@comment " +.endif ONLY_FOR_ARCHS= i386 @@ -42,7 +69,6 @@ MANCOMPRESSED= yes BOOT_WRKSRC= ${WRKDIR}/mlton-bootstrap -ALL_TARGET= all USE_GMAKE= yes MAKE_ARGS= DESTDIR='' \ PATH=${WRKSRC}/build/bin:${BOOT_WRKSRC}/bin:${PATH} \ @@ -52,14 +78,17 @@ MAKE_ARGS= DESTDIR='' \ INSTALL_TARGET= install-no-docs .endif -.include - .if ${ARCH} == "i386" MLTON_ARCH= "x86" .endif -.if ${OSVERSION} < 700000 -IGNORE= cannot bootstrap on FreeBSD < 7.0 +.if ${OSVERSION} >= 700000 +OSRELMAJ= +.else +OSRELMAJ= -6 +.if ${OSVERSION} < 600000 +IGNORE= cannot bootstrap on FreeBSD < 6.0 +.endif .endif BOOT_EXTRACT= --bzip2 @@ -67,11 +96,22 @@ BOOT_SUF= tbz BOOT_VER= 20070826 post-extract: + @${CP} ${FILESDIR}/add-local-cross ${WRKSRC}/bin/ +.if defined(WITH_SMLNJ) + @${CP} ${FILESDIR}/upgrade-basis.sml ${WRKSRC}/mlton/ + @for f in `ls ${FILESDIR}/ml.* ${FILESDIR}/mlb.*`; do \ + ${CP} $$f ${WRKSRC}/mlton/front-end/; \ + done + @for f in `ls ${FILESDIR}/yacc.*`; do \ + ${CP} $$f ${WRKSRC}/mlyacc/src/; \ + done +.else @${MKDIR} ${BOOT_WRKSRC} @${TAR} xf ${DISTDIR}/${BOOT_DIST} ${BOOT_EXTRACT} -C ${BOOT_WRKSRC} @${REINPLACE_CMD} -e \ "s|lib=\'${LOCALBASE}/|lib=\'${BOOT_WRKSRC}/|" \ ${BOOT_WRKSRC}/bin/mlton +.endif post-patch: @${REINPLACE_CMD} -e \ @@ -81,6 +121,12 @@ post-patch: "s|CFLAGS += -I/usr/local/include|CFLAGS += -I${LOCALBASE}/include|" \ ${WRKSRC}/runtime/bytecode/Makefile +post-build: +.if defined(WITH_MINGW32) + @${ECHO} Adding mingw32 target... + ${WRKSRC}/bin/add-local-cross mingw32 x86 mingw +.endif + post-install: .for bin in mllex mlnlffigen mlprof mlton mlyacc ${CHOWN} ${SHAREOWN}:${SHAREGRP} ${PREFIX}/bin/${bin} \ diff --git a/lang/mlton/distinfo b/lang/mlton/distinfo index 7fc2b8069529..15c5463add56 100644 --- a/lang/mlton/distinfo +++ b/lang/mlton/distinfo @@ -1,6 +1,9 @@ -MD5 (mlton-20070826-1-0.i386-freebsd.tbz) = 60ce94e330ec2d8c66563e7b6b9bd534 -SHA256 (mlton-20070826-1-0.i386-freebsd.tbz) = b953da050a725d79c0445896cd6892d266f340622c52824d7f06bf8a4aed34cf -SIZE (mlton-20070826-1-0.i386-freebsd.tbz) = 7006769 +MD5 (mlton-20070826-1.i386-freebsd-6.tbz) = 006bdcedd9840b06a4f57822edb5d162 +SHA256 (mlton-20070826-1.i386-freebsd-6.tbz) = 515d7c11892793e330effce8c4e02467bbfb870671d91ef544b3644003709bea +SIZE (mlton-20070826-1.i386-freebsd-6.tbz) = 7120924 +MD5 (mlton-20070826-1.i386-freebsd.tbz) = 60ce94e330ec2d8c66563e7b6b9bd534 +SHA256 (mlton-20070826-1.i386-freebsd.tbz) = b953da050a725d79c0445896cd6892d266f340622c52824d7f06bf8a4aed34cf +SIZE (mlton-20070826-1.i386-freebsd.tbz) = 7006769 MD5 (mlton-20070826-1.src.tgz) = 08356566e20f47c1bcc8002fde72c2ec SHA256 (mlton-20070826-1.src.tgz) = c2f7e07523294d070682399377ea83ed11f2ed59d142b30fc7032c1c8fd9e103 SIZE (mlton-20070826-1.src.tgz) = 5585773 diff --git a/lang/mlton/files/add-local-cross b/lang/mlton/files/add-local-cross new file mode 100644 index 000000000000..01bc3ef4d942 --- /dev/null +++ b/lang/mlton/files/add-local-cross @@ -0,0 +1,197 @@ +#!/usr/bin/env bash + +set -e + +# This script adds a new crosscompiler target for MLton. +# +# It takes three arguments. +# +# 1. , which is what MLton would pass via the -b flag to the GCC +# cross-compiler tools. You don't need to have installed these tools in order +# to run this script, since it uses ssh and the native gcc on the target. +# Examples of $crossTarget are i386-pc-cygwin and sparc-sun-solaris. +# +# 2. specifies the target architecture. +# The posibilities are: amd64, hppa, sparc, x86. +# +# 3. specifies the target OS. +# The possibilities are: aix, cygwin, darwin, freebsd, hpux, linux, mingw, +# netbsd, openbsd, solaris. +# +# Here are some example uses of this script. +# +# add-cross mingw32 x86 mingw +# +# You also may need to set $libDir, which determines where the$exe.c +# cross-compiler target will be installed. +# +# This script is a modification of add-cross. Rather than ssh into a box +# running the target platform it uses cross-compiler tools to produce +# executables and an environment to execute them. +# +# It only works with the mingw32 cross-compiler and the wine environment. +# + +MAKE=gmake +GCC=mingw32-gcc +RUN=wine + +die () { + echo >&2 "$1" + exit 1 +} + +usage () { + die "usage: $name " +} + +case "$#" in +3) + crossTarget="$1" + crossArch="$2" + crossOS="$3" + ;; +*) + usage + ;; +esac + +name=`basename "$0"` +original=`pwd` +dir=`dirname "$0"` +src=`cd "$dir/.." && pwd` + +PATH="$dir":$PATH + +# libDir is the mlton lib directory where you would like the +# cross-compiler information to be installed. If you have installed +# from the rpms, this will usually be /usr/lib/mlton. You must have +# write permission there. + +lib="$src/build/lib" + +# You shouldn't need to change anything below this line. + +rm -rf "$lib/$crossTarget" +mkdir -p "$lib/$crossTarget" || die "Cannot write to $lib." + +tmp="$src/cross-$crossTarget" +#ssh $machine "rm -rf $tmp && mkdir $tmp" +rm -rf $tmp && mkdir $tmp + +$MAKE -C "$src" dirs + +echo '* Making runtime.' +#( cd "$src" && tar cf - Makefile basis-library bin include runtime ) | +# ssh $machine "cd $tmp && tar xf - && cd runtime && +# ../bin/mmake COMPILE_FAST=yes OMIT_BYTECODE=yes TARGET_ARCH=$crossArch TARGET_OS=$crossOS clean all && +# cd .. && make dirs runtime" +cd "$src" +for f in Makefile basis-library bin include runtime; do + cp -pfR $f "$tmp" +done + +echo "* Running make clean all in $tmp/runtime." +cd "$tmp" +$MAKE -C runtime COMPILE_FAST=yes OMIT_BYTECODE=yes TARGET=$crossTarget \ + TARGET_ARCH=$crossArch \ + TARGET_OS=$crossOS \ + clean all + +echo "* Running make dirs runtime in $tmp." +$MAKE TARGET=$crossTarget TARGET_ARCH=$crossArch TARGET_OS=$crossOS dirs runtime + +echo "* Copy from tmp to build (build/lib/$crossTarget)." +# ssh $machine "cd $tmp/build/lib/self && tar cf - ." | +# ( cd "$lib/$crossTarget" && tar xf - ) +cp -pfR "$tmp/build/lib/$crossTarget" "$lib/" + +echo "* Copy from $crossArch-$crossOS (basis-library/config/c/$crossArch-crossOS)." +#ssh $machine "cd $tmp/basis-library/config/c && tar cf - $crossArch-$crossOS" | +# ( cd "$lib/sml/basis/config/c" && tar xf - ) +cp -pfR "$tmp/basis-library/config/c/$crossArch-$crossOS" \ + "$lib/sml/basis/config/c/" + +echo "* Running make mlbpathmap targetmap in $src." +#( cd "$src" && +# mmake TARGET=$crossTarget TARGET_ARCH=$crossArch TARGET_OS=$crossOS \ +# mlbpathmap targetmap ) +cd "$src" +$MAKE TARGET=$crossTarget TARGET_ARCH=$crossArch TARGET_OS=$crossOS \ + mlbpathmap targetmap + +case "$crossOS" in +mingw) + #suf='.exe' + suf='' +;; +*) + suf='' +;; +esac + +# Copied from mlton-script +case "$crossArch" in +amd64) + archOpts='-m64' +;; +hppa) + archOpts='' +;; +sparc) + archOpts='-m32' +;; +x86) + archOpts='' +;; +esac + +case "$crossOS" in +aix) + osOpts='' +;; +cygwin) + osOpts='' +;; +darwin) + osOpts='-I/opt/local/include -I/sw/include -L/opt/local/lib -L/sw/lib -lgmp' +;; +freebsd) + osOpts='-I/usr/local/include -L/usr/local/lib/ -lgmp' +;; +hpux) + osOpts='' +;; +linux) + osOpts='' +;; +mingw) + libs='-lws2_32 -lkernel32 -lpsapi -lnetapi32' +;; +netbsd) + osOpts='-I/usr/pkg/include -Wl,-R/usr/pkg/lib -L/usr/pkg/lib/ -lgmp' +;; +openbsd) + osOpts='-I/usr/local/include -L/usr/local/lib/ -lgmp' +;; +solaris) + osOpts='-lnsl -lsocket -lrt' +;; +esac + +exe='print-constants' +echo "* Compiling and running print-constants." +#"$src/build/bin/mlton" -target $crossTarget -build-constants true | +# ssh $machine "cd $tmp/runtime && +# cat >$exe.c && +# gcc $archOpts $osOpts -I. -o $exe $exe.c libmlton.a libgdtoa.a -lgmp -lm" +"$src/build/bin/mlton" -target $crossTarget -build-constants true \ + > "$tmp/runtime/$exe.c" +cd "$tmp/runtime/" +$GCC $archOpts $osOpts -I. -o $exe $exe.c libmlton.a libgdtoa.a -lgmp -lm $libs + +#ssh $machine "$tmp/runtime/$exe$suf" >"$lib/$crossTarget/constants" +$RUN "$tmp/runtime/$exe$suf" > "$lib/$crossTarget/constants" +#ssh $machine "rm -rf $tmp" +# rm -rf "$tmp" + diff --git a/lang/mlton/files/ml.grm.sig b/lang/mlton/files/ml.grm.sig new file mode 100644 index 000000000000..7bf0d2ad39fb --- /dev/null +++ b/lang/mlton/files/ml.grm.sig @@ -0,0 +1,88 @@ +signature ML_TOKENS = +sig +type ('a,'b) token +type svalue +val PRIM: 'a * 'a -> (svalue,'a) token +val SYMBOL: 'a * 'a -> (svalue,'a) token +val IMPORT: 'a * 'a -> (svalue,'a) token +val EXPORT: 'a * 'a -> (svalue,'a) token +val ADDRESS: 'a * 'a -> (svalue,'a) token +val CONST: 'a * 'a -> (svalue,'a) token +val COMMAND_LINE_CONST: 'a * 'a -> (svalue,'a) token +val BUILD_CONST: 'a * 'a -> (svalue,'a) token +val WITHTYPE: 'a * 'a -> (svalue,'a) token +val WITH: 'a * 'a -> (svalue,'a) token +val WILD: 'a * 'a -> (svalue,'a) token +val WHILE: 'a * 'a -> (svalue,'a) token +val WHERE: 'a * 'a -> (svalue,'a) token +val VAL: 'a * 'a -> (svalue,'a) token +val TYPE: 'a * 'a -> (svalue,'a) token +val THEN: 'a * 'a -> (svalue,'a) token +val STRUCTURE: 'a * 'a -> (svalue,'a) token +val STRUCT: 'a * 'a -> (svalue,'a) token +val SIGNATURE: 'a * 'a -> (svalue,'a) token +val SIG: 'a * 'a -> (svalue,'a) token +val SHARING: 'a * 'a -> (svalue,'a) token +val SEMICOLON: 'a * 'a -> (svalue,'a) token +val RPAREN: 'a * 'a -> (svalue,'a) token +val REC: 'a * 'a -> (svalue,'a) token +val RBRACKET: 'a * 'a -> (svalue,'a) token +val RBRACE: 'a * 'a -> (svalue,'a) token +val RAISE: 'a * 'a -> (svalue,'a) token +val OVERLOAD: 'a * 'a -> (svalue,'a) token +val OPEN: 'a * 'a -> (svalue,'a) token +val OP: 'a * 'a -> (svalue,'a) token +val OF: 'a * 'a -> (svalue,'a) token +val ORELSE: 'a * 'a -> (svalue,'a) token +val NONFIX: 'a * 'a -> (svalue,'a) token +val LPAREN: 'a * 'a -> (svalue,'a) token +val LOCAL: 'a * 'a -> (svalue,'a) token +val LET: 'a * 'a -> (svalue,'a) token +val LBRACKET: 'a * 'a -> (svalue,'a) token +val LBRACE: 'a * 'a -> (svalue,'a) token +val INFIXR: 'a * 'a -> (svalue,'a) token +val INFIX: 'a * 'a -> (svalue,'a) token +val INCLUDE: 'a * 'a -> (svalue,'a) token +val IN: 'a * 'a -> (svalue,'a) token +val IF: 'a * 'a -> (svalue,'a) token +val HASH: 'a * 'a -> (svalue,'a) token +val HANDLE: 'a * 'a -> (svalue,'a) token +val FUNCTOR: 'a * 'a -> (svalue,'a) token +val FUN: 'a * 'a -> (svalue,'a) token +val FN: 'a * 'a -> (svalue,'a) token +val DARROW: 'a * 'a -> (svalue,'a) token +val DO: 'a * 'a -> (svalue,'a) token +val EXCEPTION: 'a * 'a -> (svalue,'a) token +val EQTYPE: 'a * 'a -> (svalue,'a) token +val EQUALOP: 'a * 'a -> (svalue,'a) token +val EOF: 'a * 'a -> (svalue,'a) token +val END: 'a * 'a -> (svalue,'a) token +val ELSE: 'a * 'a -> (svalue,'a) token +val DOTDOTDOT: 'a * 'a -> (svalue,'a) token +val DATATYPE: 'a * 'a -> (svalue,'a) token +val COMMA: 'a * 'a -> (svalue,'a) token +val COLONGT: 'a * 'a -> (svalue,'a) token +val COLON: 'a * 'a -> (svalue,'a) token +val CASE: 'a * 'a -> (svalue,'a) token +val BAR: 'a * 'a -> (svalue,'a) token +val ASTERISK: 'a * 'a -> (svalue,'a) token +val AS: 'a * 'a -> (svalue,'a) token +val ARROW: 'a * 'a -> (svalue,'a) token +val ANDALSO: 'a * 'a -> (svalue,'a) token +val AND: 'a * 'a -> (svalue,'a) token +val ABSTYPE: 'a * 'a -> (svalue,'a) token +val WORD: ({ digits:string,radix:StringCvt.radix } ) * 'a * 'a -> (svalue,'a) token +val TYVAR: (string) * 'a * 'a -> (svalue,'a) token +val STRING: (IntInf.t vector) * 'a * 'a -> (svalue,'a) token +val REAL: (string) * 'a * 'a -> (svalue,'a) token +val LONGID: (string) * 'a * 'a -> (svalue,'a) token +val INT: ({ digits:string,negate:bool,radix:StringCvt.radix } ) * 'a * 'a -> (svalue,'a) token +val CHAR: (IntInf.t) * 'a * 'a -> (svalue,'a) token +end +signature ML_LRVALS= +sig +structure Tokens : ML_TOKENS +structure ParserData:PARSER_DATA +sharing type ParserData.Token.token = Tokens.token +sharing type ParserData.svalue = Tokens.svalue +end diff --git a/lang/mlton/files/ml.grm.sml b/lang/mlton/files/ml.grm.sml new file mode 100644 index 000000000000..86a9cd830154 --- /dev/null +++ b/lang/mlton/files/ml.grm.sml @@ -0,0 +1,5497 @@ + +functor MLLrValsFun (structure Token: TOKEN + structure Ast: AST) = +struct +structure ParserData= +struct +structure Header = +struct +(* Heavily modified from SML/NJ sources by sweeks@sweeks.com *) + +(* ml.grm + * + * Copyright 1989,1992 by AT&T Bell Laboratories + *) + +type int = Int.t + +fun reg (left, right) = Region.make {left = left, right = right} +fun error (reg, msg) = Control.error (reg, Layout.str msg, Layout.empty) + +open Ast +structure Field = Record.Field +structure Srecord = SortedRecord + +structure Type = + struct + open Type + + val tuple = Record o Srecord.tuple + + val unit = tuple (Vector.new0 ()) + + fun arrow (t1, t2) = Con (Longtycon.arrow, Vector.new2 (t1, t2)) + end + +structure DatBind = + struct + open DatBind + + fun make (dbs, withtypes, left, right) = + makeRegion' (T {datatypes = dbs, withtypes = withtypes}, + left, right) + end + +structure Pat = + struct + open Pat + + fun tuple ps = + if 1 = Vector.length ps + then node (Vector.sub (ps, 0)) + else Tuple ps + + val unit = tuple (Vector.new0 ()) + + val bogus = unit + + fun makeAs (p1: t, p2: t): node = + let + fun err () = + error (Pat.region p1, "must have variable to left in as pattern") + fun fixopVar (p : t) = + case node p of + FlatApp ps => + if 1 = Vector.length ps + then (case node (Vector.sub (ps, 0)) of + Var {fixop,name} => + (case Longvid.split name of + ([], vid) => + SOME (fixop, Vid.toVar vid) + | _ => + let + val () = err () + in + SOME (Fixop.None, Var.bogus) + end) + | _ => NONE) + else NONE + | _ => NONE + in + case fixopVar p1 of + SOME (fixop, var) => + Layered {fixop = fixop, var = var, + constraint = NONE, + pat = p2} + | NONE => + case node p1 of + Pat.Constraint (p, t) => + (case fixopVar p of + SOME (fixop, var) => + Layered {fixop = fixop, var = var, + constraint = SOME t, + pat = p2} + | _ => (err (); bogus)) + | _ => (err (); bogus) + end + end + +structure Exp = + struct + open Exp + + fun tuple es = + if 1 = Vector.length es + then node (Vector.sub (es, 0)) + else Record (Record.tuple es) + + val unit = tuple (Vector.new0 ()) + end + +structure Dec = + struct + open Dec + + fun sequence (d1: t, d2: t): t = + makeRegion (case (node d1, node d2) of + (SeqDec d1, SeqDec d2) => SeqDec (Vector.concat [d1, d2]) + | (SeqDec d1, _) => + SeqDec (Vector.concat [d1, Vector.new1 d2]) + | (_, SeqDec d2) => + SeqDec (Vector.concat [Vector.new1 d1, d2]) + | _ => SeqDec (Vector.new2 (d1, d2)), + Region.append (region d1, region d2)) + end + +structure Spec = + struct + open Spec + + (* Some of this mess is so that a sharing equation captures as + * many specs as possible in its scope. + *) + fun seq (s: t, s': t): t = + let + fun reg s'' = makeRegion (s'', Region.append (region s, region s')) + in + case (node s, node s') of + (Empty, _) => s' + | (_, Empty) => s + | (_, Seq (s1, s2)) => reg (Seq (seq (s, s1), s2)) + | (_, Sharing {spec, equations}) => + reg (Sharing {spec = seq (s, spec), equations = equations}) + | _ => reg (Seq (s, s')) + end + +(* val seq = Trace.trace2 ("Spec.seq", layout, layout, layout) seq *) + end + +fun consTopdec (d, dss) = + case dss of + [] => [[d]] + | ds :: dss => (d :: ds) :: dss + +type rule = Pat.t * Exp.t +type clause = {pats : Pat.t vector, + resultType : Type.t option, + body : Exp.t} +type clauses = clause vector +type eb = Con.t * EbRhs.t +type db = {tyvars: Tyvar.t vector, + tycon: Tycon.t, + cons: (Con.t * Type.t option) vector} + +type strdesc = Strid.t * Sigexp.t + +type wherespec = {tyvars: Tyvar.t vector, + longtycon: Longtycon.t, + ty: Type.t} + +type typdesc = {tyvars: Tyvar.t vector, + tycon: Tycon.t} + +type valdesc = Var.t * Type.t + +type exndesc = Con.t * Type.t option + +type strbind = {name: Strid.t, + def: Strexp.t, + constraint: SigConst.t} + +type sigbind = Sigid.t * Sigexp.t + +type funbind = {name : Fctid.t, + arg : FctArg.t, + result : SigConst.t, + body : Strexp.t} + +type vb = {pat: Pat.t, + exp: Exp.t} + +type rvb = {pat: Pat.t, + match: Match.t} + +fun ensureNonqualified (ss: Symbol.t list, r: Region.t): Symbol.t * Region.t = + case ss of + [s] => (s, r) + | _ => (error (r, "expected nonqualified id") + ; (Symbol.bogus, r)) + +fun cons1 (x, (l, r, y)) = (x :: l, r, y) + +fun augment (id, sigexp, (wherespecs, right, binds)) = + (id, Sigexp.wheree (sigexp, Vector.fromList wherespecs, + Region.extendRight (Sigexp.region sigexp, right))) + :: binds + +fun 'a augment1 ((strexp: Strexp.t, + makesigconst: Sigexp.t -> SigConst.t, + sigexp: Sigexp.t), + (wherespecs: wherespec list, + right: SourcePos.t, + z: 'a)): Strexp.t * 'a = + (Strexp.makeRegion + (Strexp.Constrained + (strexp, makesigconst (Sigexp.wheree + (sigexp, Vector.fromList wherespecs, + Region.extendRight (Sigexp.region sigexp, right)))), + Region.extendRight (Strexp.region strexp, right)), + z) + +type 'a whereAnd = wherespec list * SourcePos.t * 'a list + + +end +structure LrTable = Token.LrTable +structure Token = Token +local open LrTable in +val table=let val actionRows = +"\ +\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\006\000\113\000\007\000\060\000\013\000\058\000\ +\\039\000\112\000\040\000\111\000\043\000\110\000\047\000\109\000\ +\\053\000\108\000\066\000\107\000\000\000\ +\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\006\000\113\000\007\000\060\000\013\000\058\000\ +\\039\000\112\000\040\000\111\000\043\000\110\000\047\000\109\000\ +\\066\000\107\000\000\000\ +\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\007\000\060\000\013\000\058\000\015\000\057\000\ +\\024\000\055\000\029\000\053\000\033\000\050\000\034\000\049\000\ +\\039\000\046\000\040\000\045\000\041\000\044\000\043\000\042\000\ +\\047\000\040\000\050\000\037\000\052\000\151\000\065\000\031\000\ +\\069\000\030\000\070\000\029\000\071\000\028\000\072\000\027\000\ +\\073\000\026\000\074\000\025\000\075\000\024\000\076\000\023\000\000\000\ +\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\007\000\060\000\013\000\058\000\015\000\057\000\ +\\024\000\055\000\029\000\053\000\033\000\050\000\034\000\049\000\ +\\039\000\046\000\040\000\045\000\041\000\044\000\043\000\042\000\ +\\047\000\040\000\050\000\037\000\054\000\138\000\065\000\031\000\ +\\069\000\030\000\070\000\029\000\071\000\028\000\072\000\027\000\ +\\073\000\026\000\074\000\025\000\075\000\024\000\076\000\023\000\000\000\ +\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\007\000\060\000\013\000\058\000\015\000\057\000\ +\\024\000\055\000\029\000\053\000\033\000\050\000\034\000\049\000\ +\\039\000\046\000\040\000\045\000\041\000\044\000\043\000\042\000\ +\\047\000\040\000\050\000\037\000\065\000\031\000\069\000\030\000\ +\\070\000\029\000\071\000\028\000\072\000\027\000\073\000\026\000\ +\\074\000\025\000\075\000\024\000\076\000\023\000\000\000\ +\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\007\000\060\000\013\000\058\000\039\000\112\000\ +\\040\000\111\000\043\000\175\000\047\000\109\000\053\000\108\000\ +\\066\000\107\000\000\000\ +\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\007\000\060\000\013\000\058\000\039\000\112\000\ +\\040\000\111\000\043\000\175\000\047\000\109\000\053\000\228\000\ +\\066\000\107\000\000\000\ +\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\007\000\060\000\013\000\058\000\039\000\112\000\ +\\040\000\111\000\043\000\175\000\047\000\109\000\066\000\107\000\000\000\ +\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\007\000\060\000\013\000\076\000\000\000\ +\\001\000\002\000\064\000\003\000\063\000\013\000\076\000\000\000\ +\\001\000\002\000\064\000\003\000\063\000\013\000\076\000\020\000\241\000\000\000\ +\\001\000\002\000\064\000\003\000\063\000\013\000\076\000\020\000\241\000\ +\\051\000\240\000\000\000\ +\\001\000\002\000\064\000\003\000\063\000\013\000\076\000\051\000\157\000\000\000\ +\\001\000\002\000\064\000\003\000\063\000\013\000\076\000\051\000\042\001\000\000\ +\\001\000\003\000\122\003\008\000\121\003\009\000\121\003\010\000\121\003\ +\\011\000\121\003\012\000\121\003\013\000\122\003\014\000\121\003\ +\\016\000\121\003\017\000\121\003\018\000\121\003\019\000\121\003\ +\\021\000\121\003\022\000\121\003\023\000\121\003\024\000\121\003\ +\\025\000\121\003\026\000\121\003\027\000\121\003\028\000\121\003\ +\\030\000\121\003\031\000\121\003\032\000\121\003\035\000\121\003\ +\\036\000\121\003\037\000\121\003\038\000\121\003\042\000\121\003\ +\\044\000\121\003\045\000\121\003\046\000\121\003\048\000\121\003\ +\\049\000\121\003\051\000\121\003\052\000\121\003\054\000\121\003\ +\\055\000\121\003\056\000\121\003\058\000\121\003\060\000\121\003\ +\\061\000\121\003\062\000\121\003\063\000\121\003\064\000\121\003\ +\\067\000\121\003\068\000\121\003\000\000\ +\\001\000\003\000\063\000\000\000\ +\\001\000\003\000\063\000\006\000\113\000\039\000\206\000\043\000\205\000\000\000\ +\\001\000\003\000\063\000\013\000\058\000\000\000\ +\\001\000\003\000\063\000\013\000\058\000\024\000\055\000\000\000\ +\\001\000\003\000\063\000\013\000\058\000\041\000\163\001\059\000\162\001\000\000\ +\\001\000\003\000\063\000\013\000\058\000\047\000\117\001\000\000\ +\\001\000\003\000\063\000\013\000\058\000\062\000\191\001\000\000\ +\\001\000\003\000\063\000\013\000\076\000\000\000\ +\\001\000\003\000\063\000\013\000\076\000\019\000\210\001\047\000\181\000\000\000\ +\\001\000\003\000\063\000\013\000\076\000\024\000\075\000\000\000\ +\\001\000\003\000\063\000\013\000\076\000\047\000\181\000\000\000\ +\\001\000\003\000\063\000\013\000\076\000\057\000\077\001\000\000\ +\\001\000\003\000\063\000\013\000\076\000\062\000\243\001\000\000\ +\\001\000\003\000\063\000\013\000\035\001\000\000\ +\\001\000\005\000\084\000\000\000\ +\\001\000\005\000\084\000\013\000\086\000\000\000\ +\\001\000\005\000\084\000\013\000\088\000\000\000\ +\\001\000\006\000\113\000\000\000\ +\\001\000\008\000\123\002\009\000\231\001\016\000\126\002\017\000\126\002\ +\\019\000\123\002\022\000\123\002\023\000\123\002\026\000\123\002\ +\\030\000\123\002\031\000\123\002\035\000\123\002\037\000\123\002\ +\\038\000\123\002\042\000\123\002\044\000\123\002\048\000\123\002\ +\\049\000\123\002\054\000\123\002\055\000\123\002\058\000\123\002\ +\\060\000\123\002\062\000\123\002\063\000\123\002\064\000\235\001\000\000\ +\\001\000\008\000\123\002\009\000\053\002\016\000\141\002\017\000\141\002\ +\\019\000\123\002\022\000\123\002\023\000\123\002\026\000\123\002\ +\\030\000\123\002\031\000\123\002\035\000\123\002\037\000\123\002\ +\\038\000\123\002\042\000\123\002\044\000\123\002\048\000\123\002\ +\\049\000\123\002\054\000\123\002\055\000\123\002\058\000\123\002\ +\\060\000\123\002\062\000\123\002\063\000\123\002\064\000\235\001\000\000\ +\\001\000\008\000\123\002\009\000\053\002\016\000\144\002\017\000\144\002\ +\\019\000\123\002\022\000\123\002\023\000\123\002\026\000\123\002\ +\\030\000\123\002\031\000\123\002\035\000\123\002\037\000\123\002\ +\\038\000\123\002\042\000\123\002\044\000\123\002\048\000\123\002\ +\\049\000\123\002\054\000\123\002\055\000\123\002\058\000\123\002\ +\\060\000\123\002\062\000\123\002\063\000\123\002\064\000\235\001\000\000\ +\\001\000\008\000\131\002\009\000\131\002\016\000\128\002\017\000\128\002\ +\\019\000\131\002\022\000\131\002\023\000\131\002\026\000\131\002\ +\\030\000\131\002\031\000\131\002\035\000\131\002\037\000\131\002\ +\\038\000\131\002\042\000\131\002\044\000\131\002\048\000\131\002\ +\\049\000\131\002\054\000\131\002\055\000\131\002\058\000\131\002\ +\\060\000\131\002\062\000\131\002\063\000\131\002\000\000\ +\\001\000\008\000\202\002\009\000\077\002\016\000\126\002\017\000\126\002\ +\\019\000\202\002\023\000\202\002\026\000\202\002\030\000\202\002\ +\\031\000\202\002\037\000\202\002\038\000\202\002\042\000\202\002\ +\\044\000\202\002\048\000\202\002\049\000\202\002\055\000\202\002\ +\\058\000\202\002\060\000\202\002\062\000\202\002\063\000\202\002\ +\\064\000\080\002\000\000\ +\\001\000\008\000\202\002\009\000\092\002\016\000\141\002\017\000\141\002\ +\\019\000\202\002\023\000\202\002\026\000\202\002\030\000\202\002\ +\\031\000\202\002\037\000\202\002\038\000\202\002\042\000\202\002\ +\\044\000\202\002\048\000\202\002\049\000\202\002\055\000\202\002\ +\\058\000\202\002\060\000\202\002\062\000\202\002\063\000\202\002\ +\\064\000\080\002\000\000\ +\\001\000\008\000\202\002\009\000\092\002\016\000\144\002\017\000\144\002\ +\\019\000\202\002\023\000\202\002\026\000\202\002\030\000\202\002\ +\\031\000\202\002\037\000\202\002\038\000\202\002\042\000\202\002\ +\\044\000\202\002\048\000\202\002\049\000\202\002\055\000\202\002\ +\\058\000\202\002\060\000\202\002\062\000\202\002\063\000\202\002\ +\\064\000\080\002\000\000\ +\\001\000\010\000\081\000\016\000\080\000\018\000\255\000\032\000\079\000\ +\\045\000\078\000\055\000\254\000\000\000\ +\\001\000\010\000\081\000\016\000\080\000\021\000\176\001\032\000\079\000\ +\\045\000\078\000\000\000\ +\\001\000\010\000\081\000\016\000\080\000\022\000\174\001\032\000\079\000\ +\\045\000\078\000\055\000\254\000\000\000\ +\\001\000\010\000\081\000\016\000\080\000\027\000\220\000\032\000\079\000\ +\\045\000\078\000\000\000\ +\\001\000\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\ +\\046\000\031\001\000\000\ +\\001\000\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\ +\\055\000\077\000\000\000\ +\\001\000\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\ +\\061\000\012\001\000\000\ +\\001\000\011\000\036\001\012\000\247\001\000\000\ +\\001\000\011\000\036\001\018\000\131\001\054\000\130\001\000\000\ +\\001\000\011\000\036\001\024\000\143\001\000\000\ +\\001\000\011\000\036\001\055\000\135\001\000\000\ +\\001\000\011\000\036\001\055\000\137\001\000\000\ +\\001\000\011\000\036\001\055\000\141\001\000\000\ +\\001\000\011\000\036\001\055\000\142\001\000\000\ +\\001\000\011\000\036\001\055\000\144\001\000\000\ +\\001\000\011\000\036\001\055\000\217\001\000\000\ +\\001\000\011\000\036\001\055\000\218\001\000\000\ +\\001\000\011\000\036\001\055\000\219\001\000\000\ +\\001\000\011\000\036\001\055\000\220\001\000\000\ +\\001\000\012\000\157\003\016\000\157\003\018\000\157\003\024\000\164\003\ +\\051\000\157\003\000\000\ +\\001\000\012\000\224\000\016\000\223\000\024\000\222\000\000\000\ +\\001\000\012\000\224\000\016\000\223\000\024\000\059\001\000\000\ +\\001\000\012\000\224\000\016\000\223\000\028\000\020\001\000\000\ +\\001\000\016\000\208\000\000\000\ +\\001\000\016\000\211\000\000\000\ +\\001\000\016\000\216\000\000\000\ +\\001\000\016\000\217\000\000\000\ +\\001\000\016\000\218\000\000\000\ +\\001\000\016\000\219\000\000\000\ +\\001\000\016\000\044\001\000\000\ +\\001\000\016\000\048\001\000\000\ +\\001\000\016\000\049\001\000\000\ +\\001\000\016\000\050\001\000\000\ +\\001\000\016\000\080\001\000\000\ +\\001\000\016\000\134\001\000\000\ +\\001\000\016\000\177\001\000\000\ +\\001\000\016\000\237\001\017\000\236\001\000\000\ +\\001\000\016\000\237\001\017\000\236\001\022\000\070\002\000\000\ +\\001\000\016\000\237\001\017\000\236\001\054\000\054\002\000\000\ +\\001\000\016\000\252\001\000\000\ +\\001\000\016\000\000\002\000\000\ +\\001\000\022\000\172\001\000\000\ +\\001\000\022\000\173\001\000\000\ +\\001\000\022\000\211\001\000\000\ +\\001\000\022\000\244\001\000\000\ +\\001\000\022\000\248\001\000\000\ +\\001\000\022\000\025\002\000\000\ +\\001\000\023\000\000\000\000\000\ +\\001\000\024\000\247\000\000\000\ +\\001\000\024\000\009\001\000\000\ +\\001\000\024\000\070\001\000\000\ +\\001\000\024\000\071\001\000\000\ +\\001\000\024\000\072\001\000\000\ +\\001\000\024\000\110\001\000\000\ +\\001\000\024\000\119\001\000\000\ +\\001\000\024\000\123\001\000\000\ +\\001\000\024\000\001\002\000\000\ +\\001\000\024\000\037\002\000\000\ +\\001\000\024\000\044\002\000\000\ +\\001\000\024\000\073\002\000\000\ +\\001\000\029\000\147\001\000\000\ +\\001\000\035\000\000\001\000\000\ +\\001\000\035\000\003\001\000\000\ +\\001\000\035\000\088\001\000\000\ +\\001\000\035\000\026\002\000\000\ +\\001\000\043\000\013\001\000\000\ +\\001\000\051\000\010\001\000\000\ +\\001\000\051\000\068\001\000\000\ +\\001\000\051\000\132\001\000\000\ +\\001\000\052\000\007\001\000\000\ +\\001\000\052\000\066\001\000\000\ +\\001\000\054\000\252\000\000\000\ +\\001\000\054\000\253\000\000\000\ +\\001\000\054\000\061\001\000\000\ +\\001\000\054\000\063\001\000\000\ +\\001\000\054\000\129\001\000\000\ +\\001\000\054\000\179\001\000\000\ +\\001\000\054\000\055\002\000\000\ +\\001\000\055\000\013\002\000\000\ +\\001\000\062\000\243\001\000\000\ +\\001\000\067\000\033\001\000\000\ +\\098\002\000\000\ +\\099\002\000\000\ +\\100\002\000\000\ +\\101\002\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\007\000\060\000\008\000\059\000\013\000\058\000\ +\\015\000\057\000\019\000\056\000\024\000\055\000\026\000\054\000\ +\\029\000\053\000\030\000\052\000\031\000\051\000\033\000\050\000\ +\\034\000\049\000\037\000\048\000\038\000\047\000\039\000\046\000\ +\\040\000\045\000\041\000\044\000\042\000\043\000\043\000\042\000\ +\\044\000\041\000\047\000\040\000\048\000\039\000\049\000\038\000\ +\\050\000\037\000\055\000\036\000\058\000\035\000\060\000\034\000\ +\\062\000\033\000\063\000\032\000\065\000\031\000\069\000\030\000\ +\\070\000\029\000\071\000\028\000\072\000\027\000\073\000\026\000\ +\\074\000\025\000\075\000\024\000\076\000\023\000\000\000\ +\\101\002\008\000\059\000\019\000\056\000\026\000\054\000\030\000\052\000\ +\\031\000\051\000\037\000\048\000\038\000\047\000\042\000\043\000\ +\\044\000\041\000\048\000\039\000\049\000\038\000\055\000\036\000\ +\\058\000\035\000\060\000\034\000\062\000\033\000\063\000\032\000\000\000\ +\\102\002\000\000\ +\\103\002\000\000\ +\\104\002\000\000\ +\\105\002\000\000\ +\\106\002\000\000\ +\\107\002\000\000\ +\\108\002\000\000\ +\\109\002\003\000\063\000\008\000\059\000\013\000\058\000\019\000\056\000\ +\\026\000\054\000\030\000\052\000\037\000\048\000\038\000\047\000\ +\\041\000\163\001\042\000\043\000\044\000\041\000\048\000\039\000\ +\\049\000\038\000\055\000\142\000\059\000\162\001\060\000\034\000\ +\\062\000\033\000\063\000\032\000\000\000\ +\\109\002\008\000\059\000\019\000\056\000\026\000\054\000\030\000\052\000\ +\\037\000\048\000\038\000\047\000\042\000\043\000\044\000\041\000\ +\\048\000\039\000\049\000\038\000\055\000\142\000\060\000\034\000\ +\\062\000\033\000\063\000\032\000\000\000\ +\\110\002\000\000\ +\\111\002\000\000\ +\\112\002\000\000\ +\\113\002\000\000\ +\\114\002\000\000\ +\\115\002\000\000\ +\\116\002\000\000\ +\\117\002\000\000\ +\\118\002\000\000\ +\\119\002\000\000\ +\\120\002\000\000\ +\\121\002\000\000\ +\\122\002\000\000\ +\\123\002\009\000\231\001\000\000\ +\\124\002\000\000\ +\\125\002\000\000\ +\\126\002\064\000\166\001\000\000\ +\\127\002\000\000\ +\\128\002\000\000\ +\\129\002\000\000\ +\\130\002\000\000\ +\\132\002\043\000\239\001\000\000\ +\\133\002\000\000\ +\\134\002\000\000\ +\\135\002\000\000\ +\\136\002\000\000\ +\\137\002\000\000\ +\\138\002\064\000\166\001\000\000\ +\\139\002\000\000\ +\\140\002\000\000\ +\\141\002\009\000\029\002\064\000\166\001\000\000\ +\\142\002\000\000\ +\\143\002\000\000\ +\\144\002\009\000\029\002\064\000\166\001\000\000\ +\\145\002\000\000\ +\\146\002\000\000\ +\\147\002\000\000\ +\\148\002\000\000\ +\\149\002\000\000\ +\\149\002\003\000\063\000\013\000\076\000\000\000\ +\\150\002\000\000\ +\\151\002\009\000\170\001\064\000\169\001\000\000\ +\\151\002\009\000\033\002\064\000\169\001\000\000\ +\\152\002\000\000\ +\\153\002\000\000\ +\\154\002\000\000\ +\\155\002\000\000\ +\\156\002\011\000\036\001\000\000\ +\\157\002\016\000\246\000\017\000\245\000\000\000\ +\\158\002\000\000\ +\\159\002\000\000\ +\\160\002\003\000\063\000\013\000\076\000\019\000\107\001\025\000\106\001\ +\\026\000\105\001\036\000\104\001\055\000\103\001\056\000\102\001\ +\\060\000\101\001\062\000\100\001\063\000\099\001\000\000\ +\\160\002\019\000\107\001\025\000\106\001\026\000\105\001\036\000\104\001\ +\\055\000\103\001\056\000\102\001\060\000\101\001\062\000\100\001\ +\\063\000\099\001\000\000\ +\\161\002\000\000\ +\\162\002\000\000\ +\\163\002\000\000\ +\\164\002\000\000\ +\\165\002\000\000\ +\\166\002\000\000\ +\\167\002\000\000\ +\\168\002\000\000\ +\\169\002\000\000\ +\\170\002\000\000\ +\\171\002\000\000\ +\\172\002\000\000\ +\\173\002\000\000\ +\\174\002\000\000\ +\\175\002\000\000\ +\\176\002\024\000\001\002\000\000\ +\\177\002\000\000\ +\\178\002\024\000\044\002\000\000\ +\\179\002\000\000\ +\\180\002\000\000\ +\\181\002\009\000\066\002\064\000\065\002\000\000\ +\\181\002\009\000\089\002\064\000\065\002\000\000\ +\\182\002\000\000\ +\\183\002\000\000\ +\\184\002\000\000\ +\\185\002\000\000\ +\\186\002\009\000\255\001\000\000\ +\\187\002\000\000\ +\\188\002\000\000\ +\\188\002\024\000\071\001\000\000\ +\\189\002\009\000\253\001\000\000\ +\\190\002\000\000\ +\\191\002\011\000\036\001\000\000\ +\\192\002\009\000\006\002\000\000\ +\\193\002\000\000\ +\\194\002\000\000\ +\\195\002\046\000\008\002\000\000\ +\\196\002\011\000\036\001\000\000\ +\\197\002\000\000\ +\\198\002\000\000\ +\\199\002\000\000\ +\\200\002\000\000\ +\\201\002\000\000\ +\\202\002\009\000\077\002\000\000\ +\\203\002\000\000\ +\\204\002\000\000\ +\\205\002\000\000\ +\\206\002\000\000\ +\\207\002\000\000\ +\\208\002\008\000\059\000\019\000\056\000\026\000\054\000\030\000\052\000\ +\\037\000\048\000\038\000\047\000\042\000\148\000\044\000\041\000\ +\\048\000\039\000\049\000\038\000\055\000\147\000\062\000\033\000\ +\\063\000\032\000\000\000\ +\\209\002\000\000\ +\\210\002\000\000\ +\\211\002\000\000\ +\\212\002\000\000\ +\\213\002\000\000\ +\\214\002\000\000\ +\\215\002\000\000\ +\\216\002\000\000\ +\\217\002\000\000\ +\\218\002\000\000\ +\\219\002\000\000\ +\\220\002\000\000\ +\\221\002\000\000\ +\\222\002\000\000\ +\\223\002\000\000\ +\\224\002\000\000\ +\\225\002\000\000\ +\\226\002\000\000\ +\\227\002\000\000\ +\\228\002\009\000\146\001\010\000\081\000\016\000\080\000\032\000\079\000\ +\\045\000\078\000\000\000\ +\\229\002\000\000\ +\\230\002\000\000\ +\\231\002\000\000\ +\\232\002\009\000\015\002\000\000\ +\\233\002\000\000\ +\\234\002\016\000\018\001\000\000\ +\\235\002\011\000\036\001\000\000\ +\\236\002\009\000\015\001\000\000\ +\\237\002\000\000\ +\\238\002\000\000\ +\\239\002\014\000\016\001\000\000\ +\\240\002\000\000\ +\\241\002\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\ +\\242\002\000\000\ +\\243\002\000\000\ +\\244\002\009\000\229\001\011\000\036\001\000\000\ +\\245\002\000\000\ +\\246\002\000\000\ +\\247\002\006\000\113\000\043\000\118\000\000\000\ +\\248\002\000\000\ +\\249\002\000\000\ +\\250\002\018\000\062\001\000\000\ +\\251\002\000\000\ +\\252\002\014\000\011\002\000\000\ +\\253\002\000\000\ +\\254\002\046\000\010\002\000\000\ +\\255\002\011\000\036\001\000\000\ +\\000\003\000\000\ +\\001\003\000\000\ +\\002\003\009\000\025\001\000\000\ +\\003\003\000\000\ +\\004\003\000\000\ +\\005\003\000\000\ +\\006\003\024\000\024\001\046\000\023\001\000\000\ +\\007\003\011\000\036\001\000\000\ +\\008\003\000\000\ +\\009\003\000\000\ +\\010\003\002\000\129\000\000\000\ +\\011\003\000\000\ +\\012\003\002\000\129\000\000\000\ +\\013\003\000\000\ +\\014\003\000\000\ +\\015\003\002\000\129\000\000\000\ +\\016\003\000\000\ +\\017\003\000\000\ +\\018\003\000\000\ +\\019\003\000\000\ +\\020\003\000\000\ +\\021\003\000\000\ +\\022\003\000\000\ +\\023\003\000\000\ +\\024\003\000\000\ +\\025\003\000\000\ +\\026\003\000\000\ +\\027\003\000\000\ +\\028\003\000\000\ +\\029\003\000\000\ +\\030\003\009\000\030\001\000\000\ +\\031\003\000\000\ +\\032\003\000\000\ +\\033\003\068\000\029\001\000\000\ +\\034\003\000\000\ +\\035\003\009\000\060\002\000\000\ +\\036\003\000\000\ +\\037\003\000\000\ +\\038\003\014\000\019\001\000\000\ +\\039\003\000\000\ +\\040\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\ +\\041\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\ +\\042\003\000\000\ +\\043\003\018\000\011\001\000\000\ +\\044\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\ +\\055\000\254\000\000\000\ +\\045\003\000\000\ +\\046\003\000\000\ +\\046\003\054\000\251\000\000\000\ +\\047\003\000\000\ +\\048\003\010\000\081\000\016\000\080\000\000\000\ +\\049\003\016\000\080\000\000\000\ +\\050\003\011\000\036\001\000\000\ +\\051\003\000\000\ +\\052\003\000\000\ +\\053\003\000\000\ +\\054\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\ +\\055\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\ +\\056\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\ +\\057\003\000\000\ +\\058\003\000\000\ +\\059\003\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\007\000\060\000\013\000\058\000\024\000\055\000\ +\\033\000\050\000\039\000\046\000\040\000\045\000\041\000\044\000\ +\\043\000\042\000\047\000\040\000\069\000\030\000\070\000\029\000\ +\\071\000\028\000\072\000\027\000\073\000\026\000\074\000\025\000\ +\\075\000\024\000\076\000\023\000\000\000\ +\\060\003\000\000\ +\\061\003\000\000\ +\\062\003\000\000\ +\\063\003\000\000\ +\\064\003\000\000\ +\\065\003\000\000\ +\\066\003\000\000\ +\\067\003\000\000\ +\\068\003\000\000\ +\\069\003\000\000\ +\\070\003\000\000\ +\\071\003\000\000\ +\\072\003\000\000\ +\\073\003\000\000\ +\\074\003\000\000\ +\\075\003\000\000\ +\\076\003\000\000\ +\\077\003\000\000\ +\\078\003\000\000\ +\\079\003\000\000\ +\\080\003\000\000\ +\\081\003\000\000\ +\\082\003\000\000\ +\\083\003\000\000\ +\\084\003\003\000\063\000\013\000\076\000\000\000\ +\\085\003\000\000\ +\\086\003\003\000\063\000\013\000\076\000\000\000\ +\\087\003\000\000\ +\\088\003\000\000\ +\\089\003\010\000\081\000\016\000\080\000\018\000\255\000\032\000\079\000\ +\\045\000\078\000\000\000\ +\\090\003\010\000\081\000\016\000\080\000\018\000\008\001\032\000\079\000\ +\\045\000\078\000\000\000\ +\\091\003\000\000\ +\\092\003\000\000\ +\\093\003\012\000\224\000\016\000\223\000\000\000\ +\\094\003\011\000\036\001\000\000\ +\\095\003\000\000\ +\\096\003\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\007\000\060\000\013\000\058\000\039\000\112\000\ +\\040\000\111\000\043\000\175\000\047\000\109\000\066\000\107\000\000\000\ +\\097\003\000\000\ +\\098\003\000\000\ +\\099\003\000\000\ +\\100\003\000\000\ +\\101\003\000\000\ +\\102\003\000\000\ +\\103\003\000\000\ +\\104\003\000\000\ +\\105\003\000\000\ +\\106\003\000\000\ +\\107\003\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\006\000\113\000\007\000\060\000\013\000\058\000\ +\\039\000\112\000\040\000\111\000\043\000\175\000\047\000\109\000\ +\\066\000\107\000\000\000\ +\\107\003\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\ +\\005\000\061\000\007\000\060\000\013\000\058\000\039\000\112\000\ +\\040\000\111\000\043\000\175\000\047\000\109\000\066\000\107\000\000\000\ +\\108\003\000\000\ +\\109\003\012\000\224\000\016\000\223\000\018\000\065\001\000\000\ +\\110\003\000\000\ +\\111\003\000\000\ +\\112\003\018\000\069\001\000\000\ +\\113\003\000\000\ +\\114\003\012\000\224\000\016\000\223\000\000\000\ +\\115\003\000\000\ +\\116\003\012\000\151\001\000\000\ +\\117\003\012\000\224\000\016\000\223\000\000\000\ +\\118\003\000\000\ +\\119\003\000\000\ +\\120\003\011\000\036\001\000\000\ +\\122\003\000\000\ +\\123\003\000\000\ +\\124\003\000\000\ +\\125\003\000\000\ +\\126\003\000\000\ +\\127\003\000\000\ +\\128\003\000\000\ +\\129\003\000\000\ +\\130\003\011\000\036\001\000\000\ +\\131\003\000\000\ +\\132\003\018\000\133\001\000\000\ +\\133\003\000\000\ +\\134\003\003\000\063\000\013\000\035\001\000\000\ +\\135\003\011\000\036\001\018\000\131\001\000\000\ +\\136\003\000\000\ +\\137\003\000\000\ +\\138\003\000\000\ +\\139\003\000\000\ +\\140\003\000\000\ +\\141\003\000\000\ +\\142\003\000\000\ +\\143\003\000\000\ +\\144\003\000\000\ +\\145\003\000\000\ +\\146\003\000\000\ +\\147\003\000\000\ +\\148\003\000\000\ +\\149\003\000\000\ +\\150\003\000\000\ +\\151\003\000\000\ +\\152\003\000\000\ +\\153\003\000\000\ +\\154\003\000\000\ +\\155\003\000\000\ +\\156\003\000\000\ +\\158\003\003\000\063\000\013\000\076\000\024\000\075\000\000\000\ +\\159\003\000\000\ +\\160\003\000\000\ +\\161\003\000\000\ +\\162\003\000\000\ +\\163\003\000\000\ +\\164\003\000\000\ +\\165\003\000\000\ +\\166\003\000\000\ +\\167\003\000\000\ +\\168\003\003\000\063\000\013\000\076\000\000\000\ +\\169\003\000\000\ +\\170\003\000\000\ +\\171\003\000\000\ +\\172\003\000\000\ +\\173\003\000\000\ +\\174\003\000\000\ +\\175\003\000\000\ +\\176\003\000\000\ +\\177\003\003\000\063\000\013\000\058\000\000\000\ +\\178\003\000\000\ +\" +val actionRowNumbers = +"\124\000\171\001\123\000\128\000\ +\\125\000\137\000\129\000\089\001\ +\\181\001\202\001\184\001\170\001\ +\\024\000\121\000\075\001\045\000\ +\\140\000\169\001\092\001\081\001\ +\\089\001\029\000\030\000\031\000\ +\\029\000\029\000\029\000\029\000\ +\\029\000\004\000\000\000\020\001\ +\\022\000\022\000\124\000\004\000\ +\\044\001\017\000\024\000\043\001\ +\\003\000\134\000\237\000\002\000\ +\\012\000\041\001\039\001\004\000\ +\\009\000\022\000\001\000\007\000\ +\\025\000\185\001\020\001\004\000\ +\\182\001\020\001\047\001\173\001\ +\\172\001\183\001\046\001\174\001\ +\\126\000\088\001\090\001\252\000\ +\\187\001\176\001\177\001\186\001\ +\\179\001\180\001\178\001\124\000\ +\\004\000\007\000\016\000\004\000\ +\\087\001\063\000\175\001\116\001\ +\\064\000\114\001\114\001\114\001\ +\\065\000\066\000\067\000\068\000\ +\\043\000\243\000\254\000\005\000\ +\\021\001\122\001\060\000\129\001\ +\\203\001\131\001\125\001\128\001\ +\\126\001\132\001\006\000\024\000\ +\\137\001\138\001\011\000\192\001\ +\\019\001\015\000\015\001\247\000\ +\\032\000\183\000\138\000\195\001\ +\\088\000\130\000\196\001\127\000\ +\\086\001\024\000\045\001\048\001\ +\\251\000\206\001\205\001\091\001\ +\\076\001\111\000\112\000\040\000\ +\\096\001\132\000\101\000\134\000\ +\\134\000\102\000\241\000\240\000\ +\\237\000\237\000\237\000\109\000\ +\\120\001\101\001\194\001\193\001\ +\\089\000\106\000\072\001\095\001\ +\\042\001\040\001\046\000\093\001\ +\\199\001\131\000\105\000\007\000\ +\\245\000\009\001\011\001\012\001\ +\\007\001\066\001\067\001\062\000\ +\\082\001\138\001\035\001\190\001\ +\\250\000\031\001\029\001\022\000\ +\\015\000\051\001\058\001\062\001\ +\\059\001\049\001\248\000\052\001\ +\\044\000\015\000\120\000\188\001\ +\\122\000\078\001\077\001\153\001\ +\\149\001\014\000\028\000\080\001\ +\\150\001\159\001\200\001\016\000\ +\\013\000\079\001\016\000\069\000\ +\\116\001\016\000\114\001\070\000\ +\\071\000\072\000\016\000\016\000\ +\\016\000\016\000\004\000\244\000\ +\\004\000\016\000\007\000\127\001\ +\\000\001\061\000\006\000\130\001\ +\\113\000\023\001\114\000\140\001\ +\\110\000\007\001\107\000\143\001\ +\\059\000\090\000\135\001\144\001\ +\\091\000\191\001\092\000\026\000\ +\\026\000\026\000\073\000\189\001\ +\\207\001\097\001\098\001\099\001\ +\\004\000\004\000\134\000\136\000\ +\\135\000\004\000\238\000\239\000\ +\\103\000\100\001\004\000\004\000\ +\\094\001\009\000\004\000\186\000\ +\\246\000\007\000\007\000\093\000\ +\\016\000\007\000\004\000\034\001\ +\\033\001\016\000\020\000\025\000\ +\\030\001\094\000\056\001\020\001\ +\\020\001\007\000\095\000\237\000\ +\\158\001\016\000\016\000\115\000\ +\\048\000\108\000\162\001\074\000\ +\\155\001\050\000\016\000\117\001\ +\\051\000\115\001\016\000\016\000\ +\\016\000\052\000\053\000\049\000\ +\\054\000\084\001\001\001\124\001\ +\\123\001\100\000\003\001\022\001\ +\\032\000\133\001\139\001\007\000\ +\\134\001\147\001\136\001\010\000\ +\\007\000\016\000\019\000\173\000\ +\\172\000\162\000\185\000\187\000\ +\\184\000\176\000\016\000\074\001\ +\\073\001\118\001\119\001\081\000\ +\\082\000\042\000\237\000\121\001\ +\\070\001\071\001\041\000\075\000\ +\\236\000\190\000\187\000\200\000\ +\\116\000\024\000\020\001\022\000\ +\\021\000\187\000\026\000\022\000\ +\\020\001\020\001\010\001\013\001\ +\\004\000\008\001\068\001\069\001\ +\\036\001\204\001\037\001\017\000\ +\\032\001\023\000\063\001\060\001\ +\\083\001\025\000\083\000\152\001\ +\\164\001\163\001\151\001\015\000\ +\\157\001\016\000\154\001\009\000\ +\\016\000\111\001\055\000\113\001\ +\\056\000\057\000\058\000\104\001\ +\\107\001\008\000\105\001\255\000\ +\\005\000\007\000\024\001\140\001\ +\\146\001\007\000\142\001\145\001\ +\\017\001\150\000\036\000\148\000\ +\\033\000\076\000\141\000\156\000\ +\\134\000\134\000\164\000\163\000\ +\\119\000\084\000\171\000\119\000\ +\\022\000\047\000\139\000\103\001\ +\\102\001\085\000\004\000\026\000\ +\\189\000\183\000\079\000\191\000\ +\\218\000\015\000\192\000\214\000\ +\\193\000\080\000\197\000\202\000\ +\\096\000\015\000\188\000\174\000\ +\\198\000\196\000\221\000\224\000\ +\\015\000\194\000\053\001\057\001\ +\\050\001\195\000\054\001\014\001\ +\\038\001\027\001\061\001\025\001\ +\\015\000\249\000\156\001\166\001\ +\\165\001\161\001\160\001\112\001\ +\\109\001\110\001\108\001\168\001\ +\\118\000\167\001\002\001\005\001\ +\\141\001\148\001\016\001\020\001\ +\\143\000\022\000\152\000\144\000\ +\\142\000\119\000\026\000\026\000\ +\\158\000\133\000\086\000\104\000\ +\\165\000\020\001\175\000\177\000\ +\\178\000\018\000\242\000\085\001\ +\\235\000\097\000\016\000\024\000\ +\\217\000\020\001\026\000\017\000\ +\\201\000\098\000\199\000\197\001\ +\\022\000\223\000\016\000\216\000\ +\\016\000\025\000\055\001\106\001\ +\\004\001\006\000\018\001\149\000\ +\\034\000\155\000\154\000\153\000\ +\\151\000\078\000\117\000\157\000\ +\\019\000\166\000\167\000\119\000\ +\\015\000\179\000\180\000\027\000\ +\\253\000\064\001\201\001\019\000\ +\\220\000\219\000\215\000\208\000\ +\\204\000\203\000\015\000\198\001\ +\\222\000\225\000\028\001\026\001\ +\\006\001\145\000\146\000\027\000\ +\\160\000\161\000\077\000\168\000\ +\\099\000\177\000\018\000\231\000\ +\\037\000\226\000\207\000\119\000\ +\\022\000\206\000\205\000\035\000\ +\\159\000\170\000\169\000\016\000\ +\\181\000\065\001\228\000\022\000\ +\\229\000\227\000\119\000\209\000\ +\\210\000\147\000\182\000\232\000\ +\\038\000\211\000\212\000\027\000\ +\\230\000\233\000\027\000\209\000\ +\\039\000\213\000\234\000\087\000" +val gotoT = +"\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\033\000\016\000\045\000\015\000\049\000\014\000\050\000\013\000\ +\\054\000\012\000\064\000\011\000\066\000\010\000\067\000\009\000\ +\\068\000\008\000\076\000\007\000\089\000\095\002\117\000\006\000\ +\\118\000\005\000\134\000\004\000\135\000\003\000\136\000\002\000\ +\\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\033\000\016\000\054\000\012\000\117\000\006\000\118\000\005\000\ +\\134\000\004\000\135\000\003\000\136\000\064\000\000\000\ +\\000\000\ +\\000\000\ +\\001\000\020\000\007\000\066\000\008\000\065\000\016\000\018\000\ +\\017\000\017\000\064\000\011\000\066\000\010\000\067\000\009\000\ +\\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\061\000\072\000\062\000\071\000\063\000\070\000\068\000\069\000\ +\\161\000\068\000\163\000\067\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\001\000\020\000\007\000\066\000\008\000\080\000\016\000\018\000\ +\\017\000\017\000\064\000\011\000\066\000\010\000\067\000\009\000\ +\\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\130\000\081\000\000\000\ +\\130\000\083\000\000\000\ +\\130\000\085\000\000\000\ +\\130\000\087\000\000\000\ +\\130\000\088\000\000\000\ +\\130\000\089\000\000\000\ +\\130\000\090\000\000\000\ +\\130\000\091\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\092\000\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\098\000\086\000\097\000\151\000\096\000\ +\\154\000\095\000\155\000\094\000\157\000\093\000\168\000\001\000\000\000\ +\\146\000\115\000\147\000\114\000\151\000\096\000\153\000\113\000\ +\\154\000\112\000\000\000\ +\\061\000\119\000\063\000\070\000\068\000\069\000\112\000\118\000\ +\\129\000\117\000\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\099\000\121\000\ +\\107\000\120\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\033\000\016\000\045\000\015\000\049\000\014\000\050\000\123\000\ +\\054\000\012\000\064\000\011\000\066\000\010\000\067\000\009\000\ +\\068\000\008\000\076\000\007\000\117\000\006\000\118\000\005\000\ +\\134\000\004\000\135\000\003\000\136\000\002\000\168\000\001\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\124\000\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\036\000\126\000\088\000\125\000\000\000\ +\\066\000\130\000\068\000\008\000\069\000\129\000\071\000\128\000\000\000\ +\\061\000\072\000\062\000\071\000\063\000\070\000\068\000\069\000\ +\\161\000\131\000\000\000\ +\\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\135\000\046\000\134\000\048\000\133\000\049\000\132\000\ +\\064\000\011\000\066\000\010\000\067\000\009\000\068\000\008\000\ +\\076\000\007\000\168\000\001\000\000\000\ +\\033\000\016\000\054\000\012\000\117\000\139\000\118\000\005\000\ +\\119\000\138\000\120\000\137\000\000\000\ +\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\141\000\ +\\054\000\012\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\148\000\047\000\147\000\049\000\014\000\064\000\011\000\ +\\066\000\010\000\067\000\009\000\068\000\008\000\076\000\007\000\ +\\168\000\001\000\000\000\ +\\041\000\154\000\042\000\153\000\053\000\152\000\061\000\151\000\ +\\063\000\070\000\064\000\150\000\068\000\069\000\000\000\ +\\036\000\156\000\000\000\ +\\036\000\157\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\158\000\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\053\000\159\000\061\000\151\000\063\000\070\000\064\000\150\000\ +\\068\000\069\000\000\000\ +\\052\000\162\000\055\000\161\000\061\000\160\000\063\000\070\000\ +\\068\000\069\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\168\000\011\000\167\000\ +\\012\000\166\000\013\000\165\000\016\000\101\000\017\000\017\000\ +\\060\000\164\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\151\000\096\000\154\000\163\000\168\000\001\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\078\000\172\000\082\000\171\000\086\000\097\000\ +\\091\000\170\000\092\000\169\000\168\000\001\000\000\000\ +\\015\000\178\000\037\000\177\000\040\000\176\000\061\000\175\000\ +\\063\000\070\000\068\000\069\000\080\000\174\000\000\000\ +\\000\000\ +\\022\000\187\000\024\000\186\000\026\000\185\000\028\000\184\000\ +\\029\000\183\000\030\000\182\000\090\000\181\000\151\000\096\000\ +\\153\000\180\000\154\000\112\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\188\000\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\000\000\ +\\022\000\190\000\028\000\184\000\029\000\183\000\030\000\182\000\ +\\151\000\096\000\153\000\189\000\154\000\112\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\061\000\072\000\062\000\071\000\063\000\070\000\068\000\069\000\ +\\161\000\068\000\163\000\191\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\033\000\016\000\045\000\015\000\049\000\014\000\050\000\192\000\ +\\054\000\012\000\064\000\011\000\066\000\010\000\067\000\009\000\ +\\068\000\008\000\076\000\007\000\117\000\006\000\118\000\005\000\ +\\134\000\004\000\135\000\003\000\136\000\002\000\168\000\001\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\193\000\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\078\000\194\000\082\000\171\000\086\000\097\000\ +\\091\000\170\000\092\000\169\000\168\000\001\000\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\199\000\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\205\000\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\061\000\208\000\063\000\070\000\068\000\069\000\131\000\207\000\000\000\ +\\000\000\ +\\010\000\211\000\061\000\210\000\063\000\070\000\068\000\069\000\000\000\ +\\010\000\212\000\061\000\210\000\063\000\070\000\068\000\069\000\000\000\ +\\010\000\213\000\061\000\210\000\063\000\070\000\068\000\069\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\098\000\086\000\097\000\155\000\094\000\ +\\157\000\219\000\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\003\000\104\000\005\000\103\000\006\000\223\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\168\000\001\000\000\000\ +\\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\225\000\086\000\097\000\093\000\224\000\ +\\168\000\001\000\000\000\ +\\061\000\072\000\062\000\071\000\063\000\070\000\068\000\069\000\ +\\161\000\227\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\231\000\086\000\097\000\087\000\230\000\ +\\151\000\229\000\152\000\228\000\168\000\001\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\231\000\086\000\097\000\087\000\232\000\ +\\168\000\001\000\000\000\ +\\053\000\237\000\061\000\236\000\063\000\070\000\064\000\150\000\ +\\068\000\069\000\084\000\235\000\085\000\234\000\162\000\233\000\000\000\ +\\000\000\ +\\000\000\ +\\063\000\241\000\068\000\069\000\144\000\240\000\000\000\ +\\000\000\ +\\000\000\ +\\151\000\229\000\152\000\228\000\000\000\ +\\102\000\242\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\061\000\072\000\062\000\247\000\063\000\070\000\068\000\069\000\ +\\160\000\246\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\066\000\130\000\068\000\008\000\069\000\129\000\071\000\248\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\033\000\016\000\054\000\012\000\117\000\139\000\118\000\005\000\ +\\119\000\255\000\120\000\137\000\000\000\ +\\033\000\016\000\054\000\012\000\117\000\139\000\118\000\005\000\ +\\119\000\000\001\120\000\137\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\002\001\ +\\054\000\012\000\000\000\ +\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\003\001\ +\\054\000\012\000\000\000\ +\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\004\001\ +\\054\000\012\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\003\000\104\000\005\000\103\000\006\000\168\000\011\000\167\000\ +\\012\000\166\000\013\000\165\000\016\000\101\000\017\000\017\000\ +\\060\000\012\001\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\019\000\015\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\231\000\086\000\097\000\087\000\230\000\ +\\168\000\001\000\000\000\ +\\038\000\020\001\039\000\019\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\015\000\024\001\061\000\175\000\063\000\070\000\068\000\069\000\000\000\ +\\063\000\241\000\068\000\069\000\144\000\025\001\000\000\ +\\000\000\ +\\000\000\ +\\167\000\026\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\063\000\241\000\068\000\069\000\144\000\030\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\032\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\036\001\ +\\139\000\198\000\140\000\197\000\141\000\035\001\145\000\196\000\ +\\151\000\195\000\000\000\ +\\053\000\039\001\061\000\151\000\063\000\070\000\064\000\150\000\ +\\068\000\069\000\132\000\038\001\133\000\037\001\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\041\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\000\000\ +\\061\000\208\000\063\000\070\000\068\000\069\000\131\000\043\001\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\044\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\010\000\045\001\061\000\210\000\063\000\070\000\068\000\069\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\049\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\050\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\051\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\052\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\053\001\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\054\001\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\055\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\056\001\086\000\097\000\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\225\000\086\000\097\000\093\000\058\001\ +\\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\014\000\062\001\000\000\ +\\000\000\ +\\019\000\065\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\103\000\074\001\ +\\104\000\073\001\105\000\072\001\107\000\071\001\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\103\000\076\001\ +\\104\000\073\001\105\000\072\001\107\000\071\001\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\104\000\077\001\ +\\105\000\072\001\107\000\071\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\080\001\048\000\079\001\049\000\014\000\064\000\011\000\ +\\066\000\010\000\067\000\009\000\068\000\008\000\076\000\007\000\ +\\168\000\001\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\082\001\046\000\081\001\049\000\014\000\064\000\011\000\ +\\066\000\010\000\067\000\009\000\068\000\008\000\076\000\007\000\ +\\168\000\001\000\000\000\ +\\033\000\016\000\054\000\012\000\117\000\139\000\118\000\005\000\ +\\119\000\083\001\120\000\137\000\000\000\ +\\000\000\ +\\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\085\001\048\000\084\001\049\000\014\000\064\000\011\000\ +\\066\000\010\000\067\000\009\000\068\000\008\000\076\000\007\000\ +\\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\148\000\047\000\087\001\049\000\014\000\064\000\011\000\ +\\066\000\010\000\067\000\009\000\068\000\008\000\076\000\007\000\ +\\168\000\001\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\088\001\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\000\000\ +\\041\000\154\000\042\000\089\001\053\000\152\000\061\000\151\000\ +\\063\000\070\000\064\000\150\000\068\000\069\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\090\001\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\051\000\096\001\061\000\119\000\063\000\070\000\068\000\069\000\ +\\098\000\095\001\109\000\094\001\110\000\093\001\111\000\092\001\ +\\129\000\091\001\000\000\ +\\000\000\ +\\003\000\104\000\005\000\103\000\006\000\168\000\011\000\167\000\ +\\012\000\166\000\013\000\165\000\016\000\101\000\017\000\017\000\ +\\060\000\106\001\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\168\000\001\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\168\000\011\000\167\000\ +\\012\000\107\001\016\000\101\000\017\000\017\000\064\000\011\000\ +\\066\000\100\000\068\000\008\000\077\000\099\000\168\000\001\000\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\109\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\171\000\086\000\097\000\091\000\170\000\ +\\092\000\110\001\168\000\001\000\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\111\001\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\112\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\065\000\114\001\066\000\113\001\068\000\008\000\000\000\ +\\015\000\178\000\037\000\177\000\040\000\116\001\061\000\175\000\ +\\063\000\070\000\068\000\069\000\080\000\174\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\146\000\118\001\147\000\114\000\151\000\096\000\153\000\113\000\ +\\154\000\112\000\000\000\ +\\028\000\184\000\030\000\119\001\151\000\096\000\153\000\189\000\ +\\154\000\112\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\078\000\120\001\082\000\171\000\086\000\097\000\ +\\091\000\170\000\092\000\169\000\168\000\001\000\000\000\ +\\000\000\ +\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\122\001\ +\\054\000\012\000\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\125\001\139\000\124\001\ +\\140\000\123\001\151\000\195\000\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\126\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\134\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\136\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\137\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\138\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\156\000\143\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\151\000\229\000\152\000\146\001\000\000\ +\\000\000\ +\\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\147\001\086\000\097\000\168\000\001\000\000\000\ +\\000\000\ +\\079\000\148\001\000\000\ +\\000\000\ +\\053\000\237\000\061\000\236\000\063\000\070\000\064\000\150\000\ +\\068\000\069\000\084\000\235\000\085\000\150\001\162\000\233\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\151\001\086\000\097\000\168\000\001\000\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\152\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\066\000\159\001\068\000\008\000\113\000\158\001\124\000\157\001\ +\\125\000\156\001\126\000\155\001\127\000\154\001\128\000\153\001\000\000\ +\\000\000\ +\\000\000\ +\\165\000\163\001\166\000\162\001\000\000\ +\\000\000\ +\\098\000\095\001\109\000\094\001\110\000\093\001\111\000\165\001\000\000\ +\\000\000\ +\\100\000\166\001\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\169\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\173\001\ +\\054\000\012\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\098\000\095\001\109\000\094\001\110\000\093\001\111\000\176\001\000\000\ +\\000\000\ +\\000\000\ +\\061\000\072\000\062\000\247\000\063\000\070\000\068\000\069\000\ +\\158\000\180\001\159\000\179\001\160\000\178\001\000\000\ +\\146\000\184\001\147\000\114\000\149\000\183\001\150\000\182\001\ +\\151\000\096\000\153\000\181\001\154\000\112\000\000\000\ +\\061\000\119\000\063\000\070\000\068\000\069\000\121\000\186\001\ +\\129\000\185\001\000\000\ +\\066\000\130\000\068\000\008\000\069\000\188\001\070\000\187\001\000\000\ +\\098\000\095\001\109\000\094\001\110\000\093\001\111\000\190\001\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\103\000\192\001\ +\\104\000\073\001\105\000\072\001\107\000\191\001\000\000\ +\\015\000\195\001\043\000\194\001\044\000\193\001\061\000\175\000\ +\\063\000\070\000\068\000\069\000\000\000\ +\\149\000\183\001\150\000\197\001\151\000\096\000\153\000\196\001\ +\\154\000\112\000\000\000\ +\\023\000\202\001\025\000\201\001\027\000\200\001\028\000\184\000\ +\\029\000\199\001\030\000\182\000\090\000\198\001\151\000\096\000\ +\\153\000\180\000\154\000\112\000\000\000\ +\\000\000\ +\\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\203\001\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\065\000\204\001\066\000\113\001\068\000\008\000\000\000\ +\\000\000\ +\\015\000\178\000\018\000\207\001\020\000\206\001\061\000\175\000\ +\\063\000\070\000\068\000\069\000\080\000\205\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\015\000\178\000\018\000\207\001\020\000\206\001\061\000\175\000\ +\\063\000\070\000\068\000\069\000\080\000\205\001\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\032\001\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\210\001\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\212\001\ +\\139\000\198\000\140\000\197\000\141\000\211\001\145\000\196\000\ +\\151\000\195\000\000\000\ +\\000\000\ +\\053\000\039\001\061\000\151\000\063\000\070\000\064\000\150\000\ +\\068\000\069\000\132\000\038\001\133\000\213\001\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\214\001\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\016\000\221\001\017\000\017\000\021\000\220\001\061\000\219\001\ +\\063\000\070\000\064\000\011\000\068\000\069\000\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\098\000\086\000\097\000\155\000\222\001\ +\\168\000\001\000\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\078\000\223\001\082\000\171\000\086\000\097\000\ +\\091\000\170\000\092\000\169\000\168\000\001\000\000\000\ +\\000\000\ +\\014\000\224\001\000\000\ +\\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\225\001\086\000\097\000\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\148\000\226\001\000\000\ +\\000\000\ +\\000\000\ +\\116\000\228\001\000\000\ +\\114\000\232\001\116\000\231\001\165\000\230\001\166\000\162\001\000\000\ +\\000\000\ +\\000\000\ +\\009\000\236\001\000\000\ +\\033\000\016\000\054\000\012\000\117\000\139\000\118\000\005\000\ +\\119\000\238\001\120\000\137\000\000\000\ +\\033\000\016\000\054\000\012\000\117\000\139\000\118\000\005\000\ +\\119\000\239\001\120\000\137\000\000\000\ +\\000\000\ +\\000\000\ +\\164\000\240\001\000\000\ +\\000\000\ +\\000\000\ +\\164\000\243\001\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\099\000\244\001\ +\\107\000\120\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\ +\\045\000\247\001\049\000\014\000\064\000\011\000\066\000\010\000\ +\\067\000\009\000\068\000\008\000\076\000\007\000\168\000\001\000\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\103\000\248\001\ +\\104\000\073\001\105\000\072\001\107\000\071\001\000\000\ +\\000\000\ +\\102\000\249\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\063\000\241\000\068\000\069\000\144\000\252\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\001\002\073\000\000\002\000\000\ +\\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\107\000\003\002\ +\\108\000\002\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\143\000\005\002\000\000\ +\\063\000\241\000\068\000\069\000\144\000\007\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\010\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\094\000\012\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\147\000\014\002\151\000\096\000\153\000\113\000\154\000\112\000\000\000\ +\\000\000\ +\\061\000\119\000\063\000\070\000\068\000\069\000\112\000\015\002\ +\\129\000\117\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\164\000\016\002\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\104\000\017\002\ +\\105\000\072\001\107\000\071\001\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\104\000\018\002\ +\\105\000\072\001\107\000\071\001\000\000\ +\\000\000\ +\\033\000\016\000\054\000\012\000\066\000\159\001\068\000\008\000\ +\\117\000\139\000\118\000\005\000\119\000\022\002\120\000\137\000\ +\\124\000\021\002\125\000\020\002\127\000\019\002\128\000\153\001\000\000\ +\\000\000\ +\\000\000\ +\\002\000\026\002\166\000\025\002\000\000\ +\\151\000\096\000\153\000\028\002\154\000\112\000\000\000\ +\\000\000\ +\\100\000\030\002\101\000\029\002\000\000\ +\\000\000\ +\\066\000\010\000\067\000\034\002\068\000\008\000\074\000\033\002\ +\\075\000\032\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\036\002\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\061\000\072\000\062\000\247\000\063\000\070\000\068\000\069\000\ +\\158\000\180\001\159\000\037\002\160\000\178\001\000\000\ +\\000\000\ +\\149\000\183\001\150\000\038\002\151\000\096\000\153\000\196\001\ +\\154\000\112\000\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\104\000\039\002\ +\\105\000\072\001\107\000\071\001\000\000\ +\\066\000\130\000\068\000\008\000\069\000\041\002\070\000\040\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\107\000\003\002\ +\\108\000\043\002\000\000\ +\\015\000\195\001\043\000\194\001\044\000\044\002\061\000\175\000\ +\\063\000\070\000\068\000\069\000\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\045\002\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\046\002\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\015\000\178\000\018\000\207\001\020\000\047\002\061\000\175\000\ +\\063\000\070\000\068\000\069\000\080\000\205\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\ +\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\ +\\077\000\099\000\082\000\225\000\086\000\097\000\093\000\048\002\ +\\168\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\002\000\026\002\114\000\050\002\115\000\049\002\116\000\231\001\ +\\166\000\025\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\165\000\230\001\166\000\162\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\066\000\159\001\068\000\008\000\124\000\054\002\125\000\020\002\ +\\127\000\019\002\128\000\153\001\000\000\ +\\000\000\ +\\000\000\ +\\164\000\055\002\000\000\ +\\068\000\202\000\072\000\056\002\000\000\ +\\000\000\ +\\000\000\ +\\061\000\122\000\063\000\070\000\068\000\069\000\099\000\244\001\ +\\107\000\120\000\164\000\057\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\056\000\061\002\066\000\159\001\068\000\008\000\124\000\157\001\ +\\125\000\060\002\126\000\059\002\127\000\154\001\128\000\153\001\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\122\000\062\002\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\066\002\073\000\065\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\061\000\119\000\063\000\070\000\068\000\069\000\112\000\015\002\ +\\129\000\117\000\164\000\067\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\002\000\070\002\166\000\069\002\000\000\ +\\000\000\ +\\100\000\030\002\101\000\072\002\000\000\ +\\066\000\010\000\067\000\034\002\068\000\008\000\074\000\033\002\ +\\075\000\073\002\000\000\ +\\059\000\074\002\000\000\ +\\057\000\077\002\059\000\076\002\165\000\230\001\166\000\162\001\000\000\ +\\000\000\ +\\000\000\ +\\164\000\079\002\000\000\ +\\061\000\119\000\063\000\070\000\068\000\069\000\121\000\080\002\ +\\129\000\185\001\000\000\ +\\000\000\ +\\000\000\ +\\002\000\070\002\114\000\050\002\115\000\081\002\116\000\231\001\ +\\166\000\069\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\068\000\202\000\072\000\201\000\137\000\200\000\138\000\082\002\ +\\139\000\198\000\140\000\197\000\145\000\196\000\151\000\195\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\052\000\162\000\055\000\083\002\061\000\160\000\063\000\070\000\ +\\068\000\069\000\000\000\ +\\000\000\ +\\000\000\ +\\164\000\084\002\000\000\ +\\122\000\086\002\123\000\085\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\002\000\026\002\057\000\089\002\058\000\088\002\059\000\076\002\ +\\166\000\025\002\000\000\ +\\000\000\ +\\000\000\ +\\061\000\119\000\063\000\070\000\068\000\069\000\121\000\080\002\ +\\129\000\185\001\164\000\091\002\000\000\ +\\000\000\ +\\000\000\ +\\052\000\162\000\055\000\083\002\061\000\160\000\063\000\070\000\ +\\068\000\069\000\164\000\092\002\000\000\ +\\122\000\086\002\123\000\093\002\000\000\ +\\002\000\070\002\057\000\089\002\058\000\094\002\059\000\076\002\ +\\166\000\069\002\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\" +val numstates = 608 +val numrules = 337 +val s = ref "" and index = ref 0 +val string_to_int = fn () => +let val i = !index +in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256 +end +val string_to_list = fn s' => + let val len = String.size s' + fun f () = + if !index < len then string_to_int() :: f() + else nil + in index := 0; s := s'; f () + end +val string_to_pairlist = fn (conv_key,conv_entry) => + let fun f () = + case string_to_int() + of 0 => EMPTY + | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f()) + in f + end +val string_to_pairlist_default = fn (conv_key,conv_entry) => + let val conv_row = string_to_pairlist(conv_key,conv_entry) + in fn () => + let val default = conv_entry(string_to_int()) + val row = conv_row() + in (row,default) + end + end +val string_to_table = fn (convert_row,s') => + let val len = String.size s' + fun f ()= + if !index < len then convert_row() :: f() + else nil + in (s := s'; index := 0; f ()) + end +local + val memo = Array.array(numstates+numrules,ERROR) + val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1)) + fun f i = + if i=numstates then g i + else (Array.update(memo,i,SHIFT (STATE i)); f (i+1)) + in f 0 handle Subscript => () + end +in +val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2)) +end +val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT)) +val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows) +val actionRowNumbers = string_to_list actionRowNumbers +val actionT = let val actionRowLookUp= +let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end +in Array.fromList(map actionRowLookUp actionRowNumbers) +end +in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules, +numStates=numstates,initialState=STATE 0} +end +end +local open Header in +type pos = SourcePos.t +type arg = unit +structure MlyValue = +struct +datatype svalue = VOID | ntVOID of unit -> unit + | WORD of unit -> ({ digits:string,radix:StringCvt.radix } ) + | TYVAR of unit -> (string) | STRING of unit -> (IntInf.t vector) + | REAL of unit -> (string) | LONGID of unit -> (string) + | INT of unit -> ({ digits:string,negate:bool,radix:StringCvt.radix } ) + | CHAR of unit -> (IntInf.t) | word of unit -> (IntInf.t) + | withtypes of unit -> (TypBind.t) + | wherespecs' of unit -> (wherespec list) + | wherespecs of unit -> (wherespec vector) + | wherespec of unit -> (wherespec) | vids of unit -> (Vid.t list) + | vidNoEqual of unit -> (Vid.t) | vid of unit -> (Vid.t) + | var of unit -> (Var.t) | valdescs of unit -> (valdesc list) + | valdesc of unit -> (valdesc) + | valbindTop of unit -> (vb vector*rvb vector) + | valbindRest of unit -> (vb list*rvb list) + | valbind of unit -> (vb list*rvb list) + | tyvarseq of unit -> (Tyvar.t vector) + | tyvars of unit -> (Tyvar.t vector) + | tyvar_pc of unit -> (Tyvar.t list) | tyvar of unit -> (Tyvar.t) + | typdescs of unit -> (typdesc list) | typdesc of unit -> (typdesc) + | typBind'' of unit -> ({ def:Type.t,tycon:Tycon.t,tyvars:Tyvar.t vector } list) + | typBind' of unit -> ({ def:Type.t,tycon:Tycon.t,tyvars:Tyvar.t vector } list) + | typBind of unit -> (TypBind.t) | tynode of unit -> (Type.node) + | tycon of unit -> (Tycon.t) | tyOpt of unit -> (Type.t option) + | ty1 of unit -> (Type.t) | ty0_pc of unit -> (Type.t list) + | ty'node of unit -> (Type.node) | ty' of unit -> (Type.t) + | ty of unit -> (Type.t) | tuple_ty of unit -> (Type.t list) + | topdecs of unit -> (Topdec.t list list) + | topdecnode of unit -> (Topdec.node) + | topdec of unit -> (Topdec.t) + | tlabels of unit -> ( ( Field.t * Type.t ) list) + | tlabel of unit -> ( ( Field.t * Type.t ) ) + | symattributes of unit -> (PrimKind.SymbolAttribute.t list) + | string of unit -> (string) | strid of unit -> (Strid.t) + | strexpnode of unit -> (Strexp.node) + | strexp2node of unit -> (Strexp.node) + | strexp2 of unit -> (Strexp.t) + | strexp1 of unit -> (Strexp.t* ( Sigexp.t -> SigConst.t ) *Sigexp.t) + | strexp of unit -> (Strexp.t) + | strdescs'' of unit -> (strdesc whereAnd) + | strdescs' of unit -> (strdesc whereAnd) + | strdescs of unit -> (strdesc list) + | strdecsnode of unit -> (Strdec.node) + | strdecs of unit -> (Strdec.t) + | strdecnode of unit -> (Strdec.node) + | strdec of unit -> (Strdec.t) + | strbinds'2 of unit -> (strbind list) + | strbinds'1' of unit -> (strbind whereAnd) + | strbinds'1 of unit -> (strbind whereAnd) + | strbinds' of unit -> (Strexp.t*strbind list) + | strbinds of unit -> (strbind list) | specs of unit -> (Spec.t) + | specnode of unit -> (Spec.node) | spec of unit -> (Spec.t) + | sigids of unit -> (Sigid.t list) | sigid of unit -> (Sigid.t) + | sigexpnode of unit -> (Sigexp.node) + | sigexp'node of unit -> (Sigexp.node) + | sigexp' of unit -> (Sigexp.t) | sigexp of unit -> (Sigexp.t) + | sigconst of unit -> (SigConst.t) + | sigbinds'' of unit -> (sigbind whereAnd) + | sigbinds' of unit -> (sigbind whereAnd) + | sigbinds of unit -> (sigbind list) + | sharespec of unit -> (Equation.node) + | sdecsPlus of unit -> (Dec.t) | sdecs of unit -> (Dec.t) + | sdec of unit -> (Dec.t) | rvalbindRest of unit -> (rvb list) + | rvalbind of unit -> (rvb list) | rules of unit -> (rule list) + | rule of unit -> (rule) | repl of unit -> (DatatypeRhs.node) + | program of unit -> (Program.t) | priority of unit -> (Priority.t) + | pats of unit -> (Pat.t list) | patnode of unit -> (Pat.node) + | patitems of unit -> ( ( (Field.t * Pat.Item.t) list * bool ) ) + | patitem of unit -> ( ( Field.t * Pat.Item.t ) ) + | pat_2c of unit -> (Pat.t list) | pat of unit -> (Pat.t) + | ot_list of unit -> (Exp.t list) | opcon of unit -> (Con.t) + | opaspat of unit -> (Pat.t option) | match of unit -> (Match.t) + | longvidNoEqual of unit -> (Longvid.t) + | longvid of unit -> (Longvid.t) + | longvarands of unit -> (Longvar.t list) + | longvar of unit -> (Longvar.t) + | longtyconeqns of unit -> (Longtycon.t list) + | longtycon of unit -> (Longtycon.t) + | longstrids of unit -> (Longstrid.t list) + | longstrideqns of unit -> (Longstrid.t list) + | longstrid of unit -> (Longstrid.t) + | longidNoAsterisk of unit -> (Symbol.t list*Region.t) + | longidEqual of unit -> (Symbol.t list*Region.t) + | longid of unit -> (Symbol.t list*Region.t) + | longcon of unit -> (Longcon.t) | int of unit -> (IntInf.t) + | idNoAsterisk of unit -> (Symbol.t*Region.t) + | idEqual of unit -> (Symbol.t*Region.t) + | id of unit -> (Symbol.t*Region.t) + | funs of unit -> (clauses list) + | funbinds'2 of unit -> (funbind list) + | funbinds'1' of unit -> (funbind whereAnd) + | funbinds'1 of unit -> (funbind whereAnd) + | funbinds' of unit -> (Strexp.t*funbind list) + | funbinds of unit -> (funbind list) | fixity of unit -> (Fixity.t) + | field of unit -> (Field.t) | fctid of unit -> (Fctid.t) + | fctarg of unit -> (FctArg.node) + | expsAndTopdecs of unit -> (Topdec.t list list) + | expnode of unit -> (Exp.node) | exp_ps of unit -> (Exp.t list) + | exp_list of unit -> (Exp.t list) | exp_2c of unit -> (Exp.t list) + | exp of unit -> (Exp.t) | exndescs of unit -> (exndesc list) + | exndesc of unit -> (exndesc) + | elabels of unit -> ( ( Field.t * Exp.t ) list) + | elabel of unit -> ( ( Field.t * Exp.t ) ) + | ebs of unit -> (eb list) | ebrhsnode of unit -> (EbRhs.node) + | ebrhs of unit -> (EbRhs.t) | eb of unit -> (eb) + | digit of unit -> (int) | decsnode of unit -> (Dec.node) + | decs of unit -> (Dec.t) | decnolocal of unit -> (Dec.node) + | decnode of unit -> (Dec.node) | dec of unit -> (Dec.t) + | dbs' of unit -> (db list) | dbs of unit -> (db vector) + | db of unit -> (db) + | datatypeRhsnodeNoWithtype of unit -> (DatatypeRhs.node) + | datatypeRhsnode of unit -> (DatatypeRhs.node) + | datatypeRhsNoWithtype of unit -> (DatatypeRhs.t) + | datatypeRhs of unit -> (DatatypeRhs.t) + | datBindNoWithtype of unit -> (DatBind.t) + | datBind of unit -> (DatBind.t) | constOrBool of unit -> (Const.t) + | constrs of unit -> ( ( Con.t * Type.t option ) list) + | constraint of unit -> (Type.t option) + | constr of unit -> (Con.t*Type.t option) + | const' of unit -> (Const.node) | const of unit -> (Const.t) + | con of unit -> (Con.t) | commapats of unit -> (Pat.t list) + | clausesTop of unit -> (clauses) + | clauses of unit -> (clause list) | clause of unit -> (clause) + | ieattributes of unit -> (PrimKind.ImportExportAttribute.t list) + | arg_fct of unit -> (Strexp.t) | app_exp1 of unit -> (Exp.t list) + | app_exp of unit -> (Exp.t list) | apats of unit -> (Pat.t list) + | apatnode of unit -> (Pat.node) | apat' of unit -> (Pat.t) + | apat of unit -> (Pat.t) | andspecs of unit -> (wherespec list) + | aexp of unit -> (Exp.node) +end +type svalue = MlyValue.svalue +type result = Program.t +end +structure EC= +struct +open LrTable +infix 5 $$ +fun x $$ y = y::x +val is_keyword = +fn (T 7) => true | (T 8) => true | (T 11) => true | (T 14) => true | +(T 18) => true | (T 19) => true | (T 20) => true | (T 21) => true | +(T 24) => true | (T 25) => true | (T 26) => true | (T 27) => true | +(T 28) => true | (T 29) => true | (T 30) => true | (T 31) => true | +(T 33) => true | (T 34) => true | (T 35) => true | (T 36) => true | +(T 37) => true | (T 40) => true | (T 41) => true | (T 43) => true | +(T 45) => true | (T 46) => true | (T 47) => true | (T 48) => true | +(T 49) => true | (T 52) => true | (T 55) => true | (T 56) => true | +(T 57) => true | (T 58) => true | (T 59) => true | (T 60) => true | +(T 61) => true | (T 62) => true | (T 64) => true | (T 63) => true | +(T 66) => true | (T 67) => true | (T 44) => true | (T 9) => true | _ => false +val preferred_change : (term list * term list) list = +(nil +,nil + $$ (T 62)):: +(nil +,nil + $$ (T 60)):: +(nil +,nil + $$ (T 20)):: +(nil +,nil + $$ (T 42)):: +(nil +,nil + $$ (T 54)):: +(nil + $$ (T 27),nil + $$ (T 23)):: +(nil + $$ (T 23),nil + $$ (T 27)):: +(nil + $$ (T 8),nil + $$ (T 9)):: +(nil + $$ (T 15),nil + $$ (T 45)):: +(nil + $$ (T 54),nil + $$ (T 17)):: +(nil + $$ (T 17),nil + $$ (T 54)):: +(nil +,nil + $$ (T 21) $$ (T 2) $$ (T 34)):: +(nil +,nil + $$ (T 2) $$ (T 20)):: +nil +val noShift = +fn (T 22) => true | _ => false +val showTerminal = +fn (T 0) => "CHAR" + | (T 1) => "INT" + | (T 2) => "LONGID" + | (T 3) => "REAL" + | (T 4) => "STRING" + | (T 5) => "TYVAR" + | (T 6) => "WORD" + | (T 7) => "ABSTYPE" + | (T 8) => "AND" + | (T 9) => "ANDALSO" + | (T 10) => "ARROW" + | (T 11) => "AS" + | (T 12) => "ASTERISK" + | (T 13) => "BAR" + | (T 14) => "CASE" + | (T 15) => "COLON" + | (T 16) => "COLONGT" + | (T 17) => "COMMA" + | (T 18) => "DATATYPE" + | (T 19) => "DOTDOTDOT" + | (T 20) => "ELSE" + | (T 21) => "END" + | (T 22) => "EOF" + | (T 23) => "EQUALOP" + | (T 24) => "EQTYPE" + | (T 25) => "EXCEPTION" + | (T 26) => "DO" + | (T 27) => "DARROW" + | (T 28) => "FN" + | (T 29) => "FUN" + | (T 30) => "FUNCTOR" + | (T 31) => "HANDLE" + | (T 32) => "HASH" + | (T 33) => "IF" + | (T 34) => "IN" + | (T 35) => "INCLUDE" + | (T 36) => "INFIX" + | (T 37) => "INFIXR" + | (T 38) => "LBRACE" + | (T 39) => "LBRACKET" + | (T 40) => "LET" + | (T 41) => "LOCAL" + | (T 42) => "LPAREN" + | (T 43) => "NONFIX" + | (T 44) => "ORELSE" + | (T 45) => "OF" + | (T 46) => "OP" + | (T 47) => "OPEN" + | (T 48) => "OVERLOAD" + | (T 49) => "RAISE" + | (T 50) => "RBRACE" + | (T 51) => "RBRACKET" + | (T 52) => "REC" + | (T 53) => "RPAREN" + | (T 54) => "SEMICOLON" + | (T 55) => "SHARING" + | (T 56) => "SIG" + | (T 57) => "SIGNATURE" + | (T 58) => "STRUCT" + | (T 59) => "STRUCTURE" + | (T 60) => "THEN" + | (T 61) => "TYPE" + | (T 62) => "VAL" + | (T 63) => "WHERE" + | (T 64) => "WHILE" + | (T 65) => "WILD" + | (T 66) => "WITH" + | (T 67) => "WITHTYPE" + | (T 68) => "BUILD_CONST" + | (T 69) => "COMMAND_LINE_CONST" + | (T 70) => "CONST" + | (T 71) => "ADDRESS" + | (T 72) => "EXPORT" + | (T 73) => "IMPORT" + | (T 74) => "SYMBOL" + | (T 75) => "PRIM" + | _ => "bogus-term" +local open Header in +val errtermvalue= +fn (T 0) => MlyValue.CHAR(fn () => (IntInf.fromInt (Char.ord #"a"))) | +(T 1) => MlyValue.INT(fn () => ( +{digits = "0", negate = false, radix = StringCvt.DEC})) | +(T 2) => MlyValue.LONGID(fn () => ("bogus")) | +(T 3) => MlyValue.REAL(fn () => ("13.0")) | +(T 4) => MlyValue.STRING(fn () => (Vector.fromList [])) | +(T 5) => MlyValue.TYVAR(fn () => ("'a")) | +(T 6) => MlyValue.WORD(fn () => ({digits = "0", radix = StringCvt.DEC} +)) | +_ => MlyValue.VOID +end +val terms : term list = nil + $$ (T 75) $$ (T 74) $$ (T 73) $$ (T 72) $$ (T 71) $$ (T 70) $$ (T 69) + $$ (T 68) $$ (T 67) $$ (T 66) $$ (T 65) $$ (T 64) $$ (T 63) $$ (T 62) + $$ (T 61) $$ (T 60) $$ (T 59) $$ (T 58) $$ (T 57) $$ (T 56) $$ (T 55) + $$ (T 54) $$ (T 53) $$ (T 52) $$ (T 51) $$ (T 50) $$ (T 49) $$ (T 48) + $$ (T 47) $$ (T 46) $$ (T 45) $$ (T 44) $$ (T 43) $$ (T 42) $$ (T 41) + $$ (T 40) $$ (T 39) $$ (T 38) $$ (T 37) $$ (T 36) $$ (T 35) $$ (T 34) + $$ (T 33) $$ (T 32) $$ (T 31) $$ (T 30) $$ (T 29) $$ (T 28) $$ (T 27) + $$ (T 26) $$ (T 25) $$ (T 24) $$ (T 23) $$ (T 22) $$ (T 21) $$ (T 20) + $$ (T 19) $$ (T 18) $$ (T 17) $$ (T 16) $$ (T 15) $$ (T 14) $$ (T 13) + $$ (T 12) $$ (T 11) $$ (T 10) $$ (T 9) $$ (T 8) $$ (T 7)end +structure Actions = +struct +type int = Int.int +exception mlyAction of int +local open Header in +val actions = +fn (i392:int,defaultPos,stack, + (()):arg) => +case (i392,stack) +of ( 0, ( ( _, ( MlyValue.expsAndTopdecs expsAndTopdecs1, +expsAndTopdecs1left, expsAndTopdecs1right)) :: rest671)) => let val +result = MlyValue.program (fn _ => let val (expsAndTopdecs as +expsAndTopdecs1) = expsAndTopdecs1 () + in (Program.T expsAndTopdecs) +end) + in ( LrTable.NT 88, ( result, expsAndTopdecs1left, +expsAndTopdecs1right), rest671) +end +| ( 1, ( ( _, ( MlyValue.expsAndTopdecs expsAndTopdecs1, _, +expsAndTopdecs1right)) :: _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) + :: rest671)) => let val result = MlyValue.expsAndTopdecs (fn _ => + let val (exp as exp1) = exp1 () + val (expsAndTopdecs as expsAndTopdecs1) = expsAndTopdecs1 () + in ([Topdec.fromExp exp] :: expsAndTopdecs) +end) + in ( LrTable.NT 49, ( result, exp1left, expsAndTopdecs1right), +rest671) +end +| ( 2, ( ( _, ( MlyValue.topdecs topdecs1, topdecs1left, +topdecs1right)) :: rest671)) => let val result = +MlyValue.expsAndTopdecs (fn _ => let val (topdecs as topdecs1) = +topdecs1 () + in (topdecs) +end) + in ( LrTable.NT 49, ( result, topdecs1left, topdecs1right), rest671) + +end +| ( 3, ( rest671)) => let val result = MlyValue.topdecs (fn _ => ([] +)) + in ( LrTable.NT 135, ( result, defaultPos, defaultPos), rest671) +end +| ( 4, ( ( _, ( MlyValue.topdecs topdecs1, _, topdecs1right)) :: ( _, + ( MlyValue.topdec topdec1, topdec1left, _)) :: rest671)) => let val +result = MlyValue.topdecs (fn _ => let val (topdec as topdec1) = +topdec1 () + val (topdecs as topdecs1) = topdecs1 () + in (consTopdec (topdec, topdecs)) +end) + in ( LrTable.NT 135, ( result, topdec1left, topdecs1right), rest671) + +end +| ( 5, ( ( _, ( MlyValue.expsAndTopdecs expsAndTopdecs1, _, +expsAndTopdecs1right)) :: ( _, ( _, SEMICOLON1left, _)) :: rest671)) + => let val result = MlyValue.topdecs (fn _ => let val ( +expsAndTopdecs as expsAndTopdecs1) = expsAndTopdecs1 () + in ([] :: expsAndTopdecs) +end) + in ( LrTable.NT 135, ( result, SEMICOLON1left, expsAndTopdecs1right), + rest671) +end +| ( 6, ( ( _, ( MlyValue.topdecnode topdecnode1, (topdecnodeleft as +topdecnode1left), (topdecnoderight as topdecnode1right))) :: rest671)) + => let val result = MlyValue.topdec (fn _ => let val (topdecnode + as topdecnode1) = topdecnode1 () + in ( +Topdec.makeRegion' (topdecnode, + topdecnodeleft, + topdecnoderight) +) +end) + in ( LrTable.NT 133, ( result, topdecnode1left, topdecnode1right), +rest671) +end +| ( 7, ( ( _, ( MlyValue.strdec strdec1, strdec1left, strdec1right)) + :: rest671)) => let val result = MlyValue.topdecnode (fn _ => let + val (strdec as strdec1) = strdec1 () + in (Topdec.Strdec strdec) +end) + in ( LrTable.NT 134, ( result, strdec1left, strdec1right), rest671) + +end +| ( 8, ( ( _, ( MlyValue.sigbinds sigbinds1, _, sigbinds1right)) :: ( + _, ( _, SIGNATURE1left, _)) :: rest671)) => let val result = +MlyValue.topdecnode (fn _ => let val (sigbinds as sigbinds1) = +sigbinds1 () + in ( +let + val sigbinds = Vector.fromList sigbinds + val d = Topdec.Signature sigbinds + in + d + end +) +end) + in ( LrTable.NT 134, ( result, SIGNATURE1left, sigbinds1right), +rest671) +end +| ( 9, ( ( _, ( MlyValue.funbinds funbinds1, _, funbinds1right)) :: ( + _, ( _, FUNCTOR1left, _)) :: rest671)) => let val result = +MlyValue.topdecnode (fn _ => let val (funbinds as funbinds1) = +funbinds1 () + in (Topdec.Functor (Vector.fromList funbinds)) +end) + in ( LrTable.NT 134, ( result, FUNCTOR1left, funbinds1right), rest671 +) +end +| ( 10, ( ( _, ( MlyValue.strdecsnode strdecsnode1, (strdecsnodeleft + as strdecsnode1left), (strdecsnoderight as strdecsnode1right))) :: +rest671)) => let val result = MlyValue.strdecs (fn _ => let val ( +strdecsnode as strdecsnode1) = strdecsnode1 () + in ( +Strdec.makeRegion' + (strdecsnode, strdecsnodeleft, strdecsnoderight) +) +end) + in ( LrTable.NT 118, ( result, strdecsnode1left, strdecsnode1right), +rest671) +end +| ( 11, ( rest671)) => let val result = MlyValue.strdecsnode (fn _ + => (Strdec.Seq [])) + in ( LrTable.NT 119, ( result, defaultPos, defaultPos), rest671) +end +| ( 12, ( ( _, ( MlyValue.strdecs strdecs1, _, strdecs1right)) :: ( _ +, ( _, SEMICOLON1left, _)) :: rest671)) => let val result = +MlyValue.strdecsnode (fn _ => let val (strdecs as strdecs1) = +strdecs1 () + in (Strdec.Seq [strdecs]) +end) + in ( LrTable.NT 119, ( result, SEMICOLON1left, strdecs1right), +rest671) +end +| ( 13, ( ( _, ( MlyValue.strdecs strdecs1, _, strdecs1right)) :: ( _ +, ( MlyValue.strdec strdec1, strdec1left, _)) :: rest671)) => let val + result = MlyValue.strdecsnode (fn _ => let val (strdec as strdec1) = + strdec1 () + val (strdecs as strdecs1) = strdecs1 () + in (Strdec.Seq [strdec, strdecs]) +end) + in ( LrTable.NT 119, ( result, strdec1left, strdecs1right), rest671) + +end +| ( 14, ( ( _, ( MlyValue.strdecnode strdecnode1, (strdecnodeleft as +strdecnode1left), (strdecnoderight as strdecnode1right))) :: rest671)) + => let val result = MlyValue.strdec (fn _ => let val (strdecnode + as strdecnode1) = strdecnode1 () + in ( +Strdec.makeRegion' (strdecnode, + strdecnodeleft, strdecnoderight) +) +end) + in ( LrTable.NT 116, ( result, strdecnode1left, strdecnode1right), +rest671) +end +| ( 15, ( ( _, ( MlyValue.strbinds strbinds1, _, strbinds1right)) :: +( _, ( _, STRUCTURE1left, _)) :: rest671)) => let val result = +MlyValue.strdecnode (fn _ => let val (strbinds as strbinds1) = +strbinds1 () + in ( +let + val strbinds = Vector.fromList strbinds + val d = Strdec.Structure strbinds + + + + in + d + end +) +end) + in ( LrTable.NT 117, ( result, STRUCTURE1left, strbinds1right), +rest671) +end +| ( 16, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.strdecs +strdecs2, _, _)) :: _ :: ( _, ( MlyValue.strdecs strdecs1, _, _)) :: ( + _, ( _, LOCAL1left, _)) :: rest671)) => let val result = +MlyValue.strdecnode (fn _ => let val strdecs1 = strdecs1 () + val strdecs2 = strdecs2 () + in (Strdec.Local (strdecs1, strdecs2)) +end) + in ( LrTable.NT 117, ( result, LOCAL1left, END1right), rest671) +end +| ( 17, ( ( _, ( MlyValue.decnolocal decnolocal1, (decnolocalleft as +decnolocal1left), (decnolocalright as decnolocal1right))) :: rest671)) + => let val result = MlyValue.strdecnode (fn _ => let val ( +decnolocal as decnolocal1) = decnolocal1 () + in ( +Strdec.Core (Dec.makeRegion' (decnolocal, + decnolocalleft, decnolocalright)) +) +end) + in ( LrTable.NT 117, ( result, decnolocal1left, decnolocal1right), +rest671) +end +| ( 18, ( ( _, ( MlyValue.strbinds' strbinds'1, _, strbinds'1right)) + :: _ :: ( _, ( MlyValue.sigconst sigconst1, _, _)) :: ( _, ( +MlyValue.strid strid1, strid1left, _)) :: rest671)) => let val result + = MlyValue.strbinds (fn _ => let val (strid as strid1) = strid1 () + val (sigconst as sigconst1) = sigconst1 () + val (strbinds' as strbinds'1) = strbinds'1 () + in ( +let val (def,strbinds) = strbinds' + in {name = strid, def = def, constraint = sigconst} + :: strbinds + end +) +end) + in ( LrTable.NT 111, ( result, strid1left, strbinds'1right), rest671) + +end +| ( 19, ( ( _, ( MlyValue.strbinds'1 strbinds'11, _, strbinds'11right +)) :: ( _, ( MlyValue.strexp1 strexp11, strexp11left, _)) :: rest671)) + => let val result = MlyValue.strbinds' (fn _ => let val (strexp1 + as strexp11) = strexp11 () + val (strbinds'1 as strbinds'11) = strbinds'11 () + in (augment1 (strexp1, strbinds'1)) +end) + in ( LrTable.NT 112, ( result, strexp11left, strbinds'11right), +rest671) +end +| ( 20, ( ( _, ( MlyValue.strbinds'2 strbinds'21, _, strbinds'21right +)) :: ( _, ( MlyValue.strexp2 strexp21, strexp21left, _)) :: rest671)) + => let val result = MlyValue.strbinds' (fn _ => let val (strexp2 + as strexp21) = strexp21 () + val (strbinds'2 as strbinds'21) = strbinds'21 () + in ((strexp2,strbinds'2)) +end) + in ( LrTable.NT 112, ( result, strexp21left, strbinds'21right), +rest671) +end +| ( 21, ( ( _, ( MlyValue.strbinds'2 strbinds'21, (strbinds'2left as +strbinds'21left), strbinds'21right)) :: rest671)) => let val result = + MlyValue.strbinds'1 (fn _ => let val (strbinds'2 as strbinds'21) = +strbinds'21 () + in (([], strbinds'2left, strbinds'2)) +end) + in ( LrTable.NT 113, ( result, strbinds'21left, strbinds'21right), +rest671) +end +| ( 22, ( ( _, ( MlyValue.strbinds'1' strbinds'1'1, _, +strbinds'1'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: + ( _, ( _, WHERE1left, _)) :: rest671)) => let val result = +MlyValue.strbinds'1 (fn _ => let val (wherespec as wherespec1) = +wherespec1 () + val (strbinds'1' as strbinds'1'1) = strbinds'1'1 () + in (cons1 (wherespec,strbinds'1')) +end) + in ( LrTable.NT 113, ( result, WHERE1left, strbinds'1'1right), +rest671) +end +| ( 23, ( ( _, ( MlyValue.strbinds'1 strbinds'11, strbinds'11left, +strbinds'11right)) :: rest671)) => let val result = +MlyValue.strbinds'1' (fn _ => let val (strbinds'1 as strbinds'11) = +strbinds'11 () + in (strbinds'1) +end) + in ( LrTable.NT 114, ( result, strbinds'11left, strbinds'11right), +rest671) +end +| ( 24, ( ( _, ( MlyValue.strbinds'1' strbinds'1'1, _, +strbinds'1'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: + ( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.strbinds'1' (fn _ => let val (wherespec as wherespec1) = +wherespec1 () + val (strbinds'1' as strbinds'1'1) = strbinds'1'1 () + in (cons1 (wherespec,strbinds'1')) +end) + in ( LrTable.NT 114, ( result, AND1left, strbinds'1'1right), rest671) + +end +| ( 25, ( rest671)) => let val result = MlyValue.strbinds'2 (fn _ => + ([])) + in ( LrTable.NT 115, ( result, defaultPos, defaultPos), rest671) +end +| ( 26, ( ( _, ( MlyValue.strbinds strbinds1, _, strbinds1right)) :: +( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.strbinds'2 (fn _ => let val (strbinds as strbinds1) = +strbinds1 () + in (strbinds) +end) + in ( LrTable.NT 115, ( result, AND1left, strbinds1right), rest671) + +end +| ( 27, ( ( _, ( MlyValue.strexpnode strexpnode1, (strexpnodeleft as +strexpnode1left), (strexpnoderight as strexpnode1right))) :: rest671)) + => let val result = MlyValue.strexp (fn _ => let val (strexpnode + as strexpnode1) = strexpnode1 () + in ( +Strexp.makeRegion' (strexpnode, + strexpnodeleft, strexpnoderight) +) +end) + in ( LrTable.NT 123, ( result, strexpnode1left, strexpnode1right), +rest671) +end +| ( 28, ( ( _, ( MlyValue.strexp1 strexp11, strexp11left, +strexp11right)) :: rest671)) => let val result = MlyValue.strexpnode + (fn _ => let val (strexp1 as strexp11) = strexp11 () + in ( +let + val (strexp, sigconst, sigexp) = strexp1 + in + Strexp.Constrained (strexp, sigconst sigexp) + end +) +end) + in ( LrTable.NT 127, ( result, strexp11left, strexp11right), rest671) + +end +| ( 29, ( ( _, ( MlyValue.wherespecs wherespecs1, _, (wherespecsright + as wherespecs1right))) :: ( _, ( MlyValue.strexp1 strexp11, +strexp11left, _)) :: rest671)) => let val result = +MlyValue.strexpnode (fn _ => let val (strexp1 as strexp11) = strexp11 + () + val (wherespecs as wherespecs1) = wherespecs1 () + in ( +let + val (strexp,sigconst,sigexp) = strexp1 + in + Strexp.Constrained + (strexp, + sigconst (Sigexp.wheree + (sigexp, wherespecs, + Region.extendRight (Sigexp.region sigexp, + wherespecsright)))) + end +) +end) + in ( LrTable.NT 127, ( result, strexp11left, wherespecs1right), +rest671) +end +| ( 30, ( ( _, ( MlyValue.strexp2node strexp2node1, strexp2node1left, + strexp2node1right)) :: rest671)) => let val result = +MlyValue.strexpnode (fn _ => let val (strexp2node as strexp2node1) = +strexp2node1 () + in (strexp2node) +end) + in ( LrTable.NT 127, ( result, strexp2node1left, strexp2node1right), +rest671) +end +| ( 31, ( ( _, ( MlyValue.sigexp' sigexp'1, _, sigexp'1right)) :: _ + :: ( _, ( MlyValue.strexp strexp1, strexp1left, _)) :: rest671)) => + let val result = MlyValue.strexp1 (fn _ => let val (strexp as +strexp1) = strexp1 () + val (sigexp' as sigexp'1) = sigexp'1 () + in ((strexp,SigConst.Transparent,sigexp')) +end) + in ( LrTable.NT 124, ( result, strexp1left, sigexp'1right), rest671) + +end +| ( 32, ( ( _, ( MlyValue.sigexp' sigexp'1, _, sigexp'1right)) :: _ + :: ( _, ( MlyValue.strexp strexp1, strexp1left, _)) :: rest671)) => + let val result = MlyValue.strexp1 (fn _ => let val (strexp as +strexp1) = strexp1 () + val (sigexp' as sigexp'1) = sigexp'1 () + in ((strexp,SigConst.Opaque,sigexp')) +end) + in ( LrTable.NT 124, ( result, strexp1left, sigexp'1right), rest671) + +end +| ( 33, ( ( _, ( MlyValue.strexp2node strexp2node1, (strexp2nodeleft + as strexp2node1left), (strexp2noderight as strexp2node1right))) :: +rest671)) => let val result = MlyValue.strexp2 (fn _ => let val ( +strexp2node as strexp2node1) = strexp2node1 () + in ( +Strexp.makeRegion' + (strexp2node, strexp2nodeleft, strexp2noderight) +) +end) + in ( LrTable.NT 125, ( result, strexp2node1left, strexp2node1right), +rest671) +end +| ( 34, ( ( _, ( MlyValue.longid longid1, longid1left, longid1right)) + :: rest671)) => let val result = MlyValue.strexp2node (fn _ => let + val (longid as longid1) = longid1 () + in (Strexp.Var (Longstrid.fromSymbols longid)) +end) + in ( LrTable.NT 126, ( result, longid1left, longid1right), rest671) + +end +| ( 35, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.strdecs +strdecs1, _, _)) :: ( _, ( _, STRUCT1left, _)) :: rest671)) => let + val result = MlyValue.strexp2node (fn _ => let val (strdecs as +strdecs1) = strdecs1 () + in (Strexp.Struct strdecs) +end) + in ( LrTable.NT 126, ( result, STRUCT1left, END1right), rest671) +end +| ( 36, ( ( _, ( MlyValue.arg_fct arg_fct1, _, arg_fct1right)) :: ( _ +, ( MlyValue.longid longid1, longid1left, _)) :: rest671)) => let val + result = MlyValue.strexp2node (fn _ => let val (longid as longid1) = + longid1 () + val (arg_fct as arg_fct1) = arg_fct1 () + in ( +Strexp.App (Fctid.fromSymbol (ensureNonqualified longid), arg_fct)) + +end) + in ( LrTable.NT 126, ( result, longid1left, arg_fct1right), rest671) + +end +| ( 37, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.strexp strexp1, + _, _)) :: _ :: ( _, ( MlyValue.strdecs strdecs1, _, _)) :: ( _, ( _, +LET1left, _)) :: rest671)) => let val result = MlyValue.strexp2node + (fn _ => let val (strdecs as strdecs1) = strdecs1 () + val (strexp as strexp1) = strexp1 () + in (Strexp.Let (strdecs,strexp)) +end) + in ( LrTable.NT 126, ( result, LET1left, END1right), rest671) +end +| ( 38, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.strexp +strexp1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val + result = MlyValue.arg_fct (fn _ => let val (strexp as strexp1) = +strexp1 () + in (strexp) +end) + in ( LrTable.NT 8, ( result, LPAREN1left, RPAREN1right), rest671) +end +| ( 39, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.strdecs +strdecs1, strdecsleft, strdecsright)) :: ( _, ( _, LPAREN1left, _)) :: + rest671)) => let val result = MlyValue.arg_fct (fn _ => let val ( +strdecs as strdecs1) = strdecs1 () + in ( +Strexp.makeRegion' + (Strexp.Struct strdecs, + strdecsleft, strdecsright) +) +end) + in ( LrTable.NT 8, ( result, LPAREN1left, RPAREN1right), rest671) +end +| ( 40, ( ( _, ( MlyValue.sigexp' sigexp'1, sigexp'1left, +sigexp'1right)) :: rest671)) => let val result = MlyValue.sigexp (fn + _ => let val (sigexp' as sigexp'1) = sigexp'1 () + in (sigexp') +end) + in ( LrTable.NT 102, ( result, sigexp'1left, sigexp'1right), rest671) + +end +| ( 41, ( ( _, ( MlyValue.wherespecs wherespecs1, _, (wherespecsright + as wherespecs1right))) :: ( _, ( MlyValue.sigexp' sigexp'1, ( +sigexp'left as sigexp'1left), _)) :: rest671)) => let val result = +MlyValue.sigexp (fn _ => let val (sigexp' as sigexp'1) = sigexp'1 () + val (wherespecs as wherespecs1) = wherespecs1 () + in ( +Sigexp.wheree (sigexp', wherespecs, reg (sigexp'left, wherespecsright)) +) +end) + in ( LrTable.NT 102, ( result, sigexp'1left, wherespecs1right), +rest671) +end +| ( 42, ( ( _, ( MlyValue.wherespecs' wherespecs'1, wherespecs'1left, + wherespecs'1right)) :: rest671)) => let val result = +MlyValue.wherespecs (fn _ => let val (wherespecs' as wherespecs'1) = +wherespecs'1 () + in (Vector.fromList wherespecs') +end) + in ( LrTable.NT 164, ( result, wherespecs'1left, wherespecs'1right), +rest671) +end +| ( 43, ( ( _, ( MlyValue.wherespec wherespec1, _, wherespec1right)) + :: ( _, ( _, WHERE1left, _)) :: rest671)) => let val result = +MlyValue.wherespecs' (fn _ => let val (wherespec as wherespec1) = +wherespec1 () + in ([wherespec]) +end) + in ( LrTable.NT 165, ( result, WHERE1left, wherespec1right), rest671) + +end +| ( 44, ( ( _, ( MlyValue.wherespecs' wherespecs'1, _, +wherespecs'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: + ( _, ( _, WHERE1left, _)) :: rest671)) => let val result = +MlyValue.wherespecs' (fn _ => let val (wherespec as wherespec1) = +wherespec1 () + val (wherespecs' as wherespecs'1) = wherespecs'1 () + in (wherespec :: wherespecs') +end) + in ( LrTable.NT 165, ( result, WHERE1left, wherespecs'1right), +rest671) +end +| ( 45, ( ( _, ( MlyValue.andspecs andspecs1, _, andspecs1right)) :: +( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, WHERE1left, + _)) :: rest671)) => let val result = MlyValue.wherespecs' (fn _ => + let val (wherespec as wherespec1) = wherespec1 () + val (andspecs as andspecs1) = andspecs1 () + in (wherespec :: andspecs) +end) + in ( LrTable.NT 165, ( result, WHERE1left, andspecs1right), rest671) + +end +| ( 46, ( ( _, ( MlyValue.wherespec wherespec1, _, wherespec1right)) + :: ( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.andspecs (fn _ => let val (wherespec as wherespec1) = +wherespec1 () + in ([wherespec]) +end) + in ( LrTable.NT 1, ( result, AND1left, wherespec1right), rest671) +end +| ( 47, ( ( _, ( MlyValue.andspecs andspecs1, _, andspecs1right)) :: +( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, AND1left, _) +) :: rest671)) => let val result = MlyValue.andspecs (fn _ => let + val (wherespec as wherespec1) = wherespec1 () + val (andspecs as andspecs1) = andspecs1 () + in (wherespec :: andspecs) +end) + in ( LrTable.NT 1, ( result, AND1left, andspecs1right), rest671) +end +| ( 48, ( ( _, ( MlyValue.wherespecs' wherespecs'1, _, +wherespecs'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: + ( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.andspecs (fn _ => let val (wherespec as wherespec1) = +wherespec1 () + val (wherespecs' as wherespecs'1) = wherespecs'1 () + in (wherespec :: wherespecs') +end) + in ( LrTable.NT 1, ( result, AND1left, wherespecs'1right), rest671) + +end +| ( 49, ( ( _, ( MlyValue.sigbinds' sigbinds'1, _, sigbinds'1right)) + :: ( _, ( MlyValue.sigexp' sigexp'1, _, _)) :: _ :: ( _, ( +MlyValue.sigid sigid1, sigid1left, _)) :: rest671)) => let val result + = MlyValue.sigbinds (fn _ => let val (sigid as sigid1) = sigid1 () + val (sigexp' as sigexp'1) = sigexp'1 () + val (sigbinds' as sigbinds'1) = sigbinds'1 () + in (augment (sigid, sigexp', sigbinds')) +end) + in ( LrTable.NT 98, ( result, sigid1left, sigbinds'1right), rest671) + +end +| ( 50, ( ( _, ( MlyValue.sigexp'node sigexp'node1, (sigexp'nodeleft + as sigexp'node1left), (sigexp'noderight as sigexp'node1right))) :: +rest671)) => let val result = MlyValue.sigexp' (fn _ => let val ( +sigexp'node as sigexp'node1) = sigexp'node1 () + in ( +Sigexp.makeRegion' (sigexp'node, + sigexp'nodeleft, + sigexp'noderight) +) +end) + in ( LrTable.NT 103, ( result, sigexp'node1left, sigexp'node1right), +rest671) +end +| ( 51, ( ( _, ( MlyValue.sigid sigid1, sigid1left, sigid1right)) :: +rest671)) => let val result = MlyValue.sigexp'node (fn _ => let val + (sigid as sigid1) = sigid1 () + in (Sigexp.Var sigid) +end) + in ( LrTable.NT 104, ( result, sigid1left, sigid1right), rest671) +end +| ( 52, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.specs specs1, _ +, _)) :: ( _, ( _, SIG1left, _)) :: rest671)) => let val result = +MlyValue.sigexp'node (fn _ => let val (specs as specs1) = specs1 () + in (Sigexp.Spec specs) +end) + in ( LrTable.NT 104, ( result, SIG1left, END1right), rest671) +end +| ( 53, ( rest671)) => let val result = MlyValue.sigbinds' (fn _ => + (([], defaultPos, []))) + in ( LrTable.NT 99, ( result, defaultPos, defaultPos), rest671) +end +| ( 54, ( ( _, ( MlyValue.sigbinds sigbinds1, _, sigbinds1right)) :: +( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.sigbinds' (fn _ => let val (sigbinds as sigbinds1) = +sigbinds1 () + in (([], defaultPos, sigbinds)) +end) + in ( LrTable.NT 99, ( result, AND1left, sigbinds1right), rest671) +end +| ( 55, ( ( _, ( MlyValue.sigbinds'' sigbinds''1, _, sigbinds''1right +)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, +WHERE1left, _)) :: rest671)) => let val result = MlyValue.sigbinds' + (fn _ => let val (wherespec as wherespec1) = wherespec1 () + val (sigbinds'' as sigbinds''1) = sigbinds''1 () + in (cons1 (wherespec,sigbinds'')) +end) + in ( LrTable.NT 99, ( result, WHERE1left, sigbinds''1right), rest671) + +end +| ( 56, ( ( _, ( MlyValue.sigbinds' sigbinds'1, sigbinds'1left, +sigbinds'1right)) :: rest671)) => let val result = +MlyValue.sigbinds'' (fn _ => let val (sigbinds' as sigbinds'1) = +sigbinds'1 () + in (sigbinds') +end) + in ( LrTable.NT 100, ( result, sigbinds'1left, sigbinds'1right), +rest671) +end +| ( 57, ( ( _, ( MlyValue.sigbinds'' sigbinds''1, _, sigbinds''1right +)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, +AND1left, _)) :: rest671)) => let val result = MlyValue.sigbinds'' + (fn _ => let val (wherespec as wherespec1) = wherespec1 () + val (sigbinds'' as sigbinds''1) = sigbinds''1 () + in (cons1 (wherespec,sigbinds'')) +end) + in ( LrTable.NT 100, ( result, AND1left, sigbinds''1right), rest671) + +end +| ( 58, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( +MlyValue.longtycon longtycon1, _, _)) :: ( _, ( MlyValue.tyvars +tyvars1, _, _)) :: ( _, ( _, TYPE1left, _)) :: rest671)) => let val +result = MlyValue.wherespec (fn _ => let val (tyvars as tyvars1) = +tyvars1 () + val (longtycon as longtycon1) = longtycon1 () + val (ty as ty1) = ty1 () + in ( +{tyvars = tyvars, + longtycon = longtycon, + ty = ty} +) +end) + in ( LrTable.NT 163, ( result, TYPE1left, ty1right), rest671) +end +| ( 59, ( rest671)) => let val result = MlyValue.sigconst (fn _ => ( +SigConst.None)) + in ( LrTable.NT 101, ( result, defaultPos, defaultPos), rest671) +end +| ( 60, ( ( _, ( MlyValue.sigexp sigexp1, _, sigexp1right)) :: ( _, ( + _, COLON1left, _)) :: rest671)) => let val result = +MlyValue.sigconst (fn _ => let val (sigexp as sigexp1) = sigexp1 () + in (SigConst.Transparent sigexp) +end) + in ( LrTable.NT 101, ( result, COLON1left, sigexp1right), rest671) + +end +| ( 61, ( ( _, ( MlyValue.sigexp sigexp1, _, sigexp1right)) :: ( _, ( + _, COLONGT1left, _)) :: rest671)) => let val result = +MlyValue.sigconst (fn _ => let val (sigexp as sigexp1) = sigexp1 () + in (SigConst.Opaque sigexp) +end) + in ( LrTable.NT 101, ( result, COLONGT1left, sigexp1right), rest671) + +end +| ( 62, ( rest671)) => let val result = MlyValue.specs (fn _ => ( +Spec.makeRegion (Spec.Empty, Region.bogus))) + in ( LrTable.NT 110, ( result, defaultPos, defaultPos), rest671) +end +| ( 63, ( ( _, ( MlyValue.specs specs1, _, specs1right)) :: ( _, ( _, + SEMICOLON1left, _)) :: rest671)) => let val result = MlyValue.specs + (fn _ => let val (specs as specs1) = specs1 () + in (specs) +end) + in ( LrTable.NT 110, ( result, SEMICOLON1left, specs1right), rest671) + +end +| ( 64, ( ( _, ( MlyValue.specs specs1, _, specs1right)) :: ( _, ( +MlyValue.spec spec1, spec1left, _)) :: rest671)) => let val result = +MlyValue.specs (fn _ => let val (spec as spec1) = spec1 () + val (specs as specs1) = specs1 () + in (Spec.seq (spec, specs)) +end) + in ( LrTable.NT 110, ( result, spec1left, specs1right), rest671) +end +| ( 65, ( ( _, ( MlyValue.specnode specnode1, (specnodeleft as +specnode1left), (specnoderight as specnode1right))) :: rest671)) => + let val result = MlyValue.spec (fn _ => let val (specnode as +specnode1) = specnode1 () + in (Spec.makeRegion' (specnode, specnodeleft, specnoderight)) +end) + in ( LrTable.NT 108, ( result, specnode1left, specnode1right), +rest671) +end +| ( 66, ( ( _, ( MlyValue.valdescs valdescs1, _, valdescs1right)) :: +( _, ( _, VAL1left, _)) :: rest671)) => let val result = +MlyValue.specnode (fn _ => let val (valdescs as valdescs1) = +valdescs1 () + in (Spec.Val (Vector.fromList valdescs)) +end) + in ( LrTable.NT 109, ( result, VAL1left, valdescs1right), rest671) + +end +| ( 67, ( ( _, ( MlyValue.typdescs typdescs1, _, typdescs1right)) :: +( _, ( _, TYPE1left, _)) :: rest671)) => let val result = +MlyValue.specnode (fn _ => let val (typdescs as typdescs1) = +typdescs1 () + in (Spec.Type (Vector.fromList typdescs)) +end) + in ( LrTable.NT 109, ( result, TYPE1left, typdescs1right), rest671) + +end +| ( 68, ( ( _, ( MlyValue.typBind typBind1, _, typBind1right)) :: ( _ +, ( _, TYPE1left, _)) :: rest671)) => let val result = +MlyValue.specnode (fn _ => let val (typBind as typBind1) = typBind1 + () + in (Spec.TypeDefs typBind) +end) + in ( LrTable.NT 109, ( result, TYPE1left, typBind1right), rest671) + +end +| ( 69, ( ( _, ( MlyValue.typdescs typdescs1, _, typdescs1right)) :: +( _, ( _, EQTYPE1left, _)) :: rest671)) => let val result = +MlyValue.specnode (fn _ => let val (typdescs as typdescs1) = +typdescs1 () + in (Spec.Eqtype (Vector.fromList typdescs)) +end) + in ( LrTable.NT 109, ( result, EQTYPE1left, typdescs1right), rest671) + +end +| ( 70, ( ( _, ( MlyValue.datatypeRhsNoWithtype +datatypeRhsNoWithtype1, _, datatypeRhsNoWithtype1right)) :: ( _, ( _, +DATATYPE1left, _)) :: rest671)) => let val result = MlyValue.specnode + (fn _ => let val (datatypeRhsNoWithtype as datatypeRhsNoWithtype1) = + datatypeRhsNoWithtype1 () + in (Spec.Datatype datatypeRhsNoWithtype) +end) + in ( LrTable.NT 109, ( result, DATATYPE1left, +datatypeRhsNoWithtype1right), rest671) +end +| ( 71, ( ( _, ( MlyValue.exndescs exndescs1, _, exndescs1right)) :: +( _, ( _, EXCEPTION1left, _)) :: rest671)) => let val result = +MlyValue.specnode (fn _ => let val (exndescs as exndescs1) = +exndescs1 () + in (Spec.Exception (Vector.fromList exndescs)) +end) + in ( LrTable.NT 109, ( result, EXCEPTION1left, exndescs1right), +rest671) +end +| ( 72, ( ( _, ( MlyValue.strdescs strdescs1, _, strdescs1right)) :: +( _, ( _, STRUCTURE1left, _)) :: rest671)) => let val result = +MlyValue.specnode (fn _ => let val (strdescs as strdescs1) = +strdescs1 () + in (Spec.Structure (Vector.fromList strdescs)) +end) + in ( LrTable.NT 109, ( result, STRUCTURE1left, strdescs1right), +rest671) +end +| ( 73, ( ( _, ( MlyValue.sigexp sigexp1, _, sigexp1right)) :: ( _, ( + _, INCLUDE1left, _)) :: rest671)) => let val result = +MlyValue.specnode (fn _ => let val (sigexp as sigexp1) = sigexp1 () + in (Spec.IncludeSigexp sigexp) +end) + in ( LrTable.NT 109, ( result, INCLUDE1left, sigexp1right), rest671) + +end +| ( 74, ( ( _, ( MlyValue.sigids sigids1, _, sigids1right)) :: ( _, ( + MlyValue.sigid sigid1, _, _)) :: ( _, ( _, INCLUDE1left, _)) :: +rest671)) => let val result = MlyValue.specnode (fn _ => let val ( +sigid as sigid1) = sigid1 () + val (sigids as sigids1) = sigids1 () + in (Spec.IncludeSigids (Vector.fromList (sigid :: sigids)) ) +end) + in ( LrTable.NT 109, ( result, INCLUDE1left, sigids1right), rest671) + +end +| ( 75, ( ( _, ( MlyValue.sharespec sharespec1, (sharespecleft as +sharespec1left), (sharespecright as sharespec1right))) :: rest671)) => + let val result = MlyValue.specnode (fn _ => let val (sharespec as +sharespec1) = sharespec1 () + in ( +Spec.Sharing {spec = Spec.makeRegion' (Spec.Empty, + sharespecleft, + sharespecright), + equations = (Vector.new1 + (Equation.makeRegion' (sharespec, + sharespecleft, + sharespecright)))} +) +end) + in ( LrTable.NT 109, ( result, sharespec1left, sharespec1right), +rest671) +end +| ( 76, ( ( _, ( MlyValue.longtyconeqns longtyconeqns1, _, +longtyconeqns1right)) :: _ :: ( _, ( _, SHARING1left, _)) :: rest671)) + => let val result = MlyValue.sharespec (fn _ => let val ( +longtyconeqns as longtyconeqns1) = longtyconeqns1 () + in (Equation.Type longtyconeqns) +end) + in ( LrTable.NT 97, ( result, SHARING1left, longtyconeqns1right), +rest671) +end +| ( 77, ( ( _, ( MlyValue.longstrideqns longstrideqns1, _, +longstrideqns1right)) :: ( _, ( _, SHARING1left, _)) :: rest671)) => + let val result = MlyValue.sharespec (fn _ => let val (longstrideqns + as longstrideqns1) = longstrideqns1 () + in (Equation.Structure longstrideqns) +end) + in ( LrTable.NT 97, ( result, SHARING1left, longstrideqns1right), +rest671) +end +| ( 78, ( ( _, ( MlyValue.longstrid longstrid2, _, longstrid2right)) + :: _ :: ( _, ( MlyValue.longstrid longstrid1, longstrid1left, _)) :: +rest671)) => let val result = MlyValue.longstrideqns (fn _ => let + val longstrid1 = longstrid1 () + val longstrid2 = longstrid2 () + in ([longstrid1,longstrid2]) +end) + in ( LrTable.NT 69, ( result, longstrid1left, longstrid2right), +rest671) +end +| ( 79, ( ( _, ( MlyValue.longstrideqns longstrideqns1, _, +longstrideqns1right)) :: _ :: ( _, ( MlyValue.longstrid longstrid1, +longstrid1left, _)) :: rest671)) => let val result = +MlyValue.longstrideqns (fn _ => let val (longstrid as longstrid1) = +longstrid1 () + val (longstrideqns as longstrideqns1) = longstrideqns1 () + in (longstrid :: longstrideqns) +end) + in ( LrTable.NT 69, ( result, longstrid1left, longstrideqns1right), +rest671) +end +| ( 80, ( ( _, ( MlyValue.longtycon longtycon2, _, longtycon2right)) + :: _ :: ( _, ( MlyValue.longtycon longtycon1, longtycon1left, _)) :: +rest671)) => let val result = MlyValue.longtyconeqns (fn _ => let + val longtycon1 = longtycon1 () + val longtycon2 = longtycon2 () + in ([longtycon1,longtycon2]) +end) + in ( LrTable.NT 72, ( result, longtycon1left, longtycon2right), +rest671) +end +| ( 81, ( ( _, ( MlyValue.longtyconeqns longtyconeqns1, _, +longtyconeqns1right)) :: _ :: ( _, ( MlyValue.longtycon longtycon1, +longtycon1left, _)) :: rest671)) => let val result = +MlyValue.longtyconeqns (fn _ => let val (longtycon as longtycon1) = +longtycon1 () + val (longtyconeqns as longtyconeqns1) = longtyconeqns1 () + in (longtycon :: longtyconeqns) +end) + in ( LrTable.NT 72, ( result, longtycon1left, longtyconeqns1right), +rest671) +end +| ( 82, ( ( _, ( MlyValue.strdescs' strdescs'1, _, strdescs'1right)) + :: ( _, ( MlyValue.sigexp' sigexp'1, _, _)) :: _ :: ( _, ( +MlyValue.strid strid1, strid1left, _)) :: rest671)) => let val result + = MlyValue.strdescs (fn _ => let val (strid as strid1) = strid1 () + val (sigexp' as sigexp'1) = sigexp'1 () + val (strdescs' as strdescs'1) = strdescs'1 () + in (augment (strid, sigexp', strdescs')) +end) + in ( LrTable.NT 120, ( result, strid1left, strdescs'1right), rest671) + +end +| ( 83, ( rest671)) => let val result = MlyValue.strdescs' (fn _ => + (([], defaultPos, []))) + in ( LrTable.NT 121, ( result, defaultPos, defaultPos), rest671) +end +| ( 84, ( ( _, ( MlyValue.strdescs strdescs1, _, strdescs1right)) :: +( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.strdescs' (fn _ => let val (strdescs as strdescs1) = +strdescs1 () + in (([], defaultPos, strdescs)) +end) + in ( LrTable.NT 121, ( result, AND1left, strdescs1right), rest671) + +end +| ( 85, ( ( _, ( MlyValue.strdescs'' strdescs''1, _, strdescs''1right +)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, +WHERE1left, _)) :: rest671)) => let val result = MlyValue.strdescs' + (fn _ => let val (wherespec as wherespec1) = wherespec1 () + val (strdescs'' as strdescs''1) = strdescs''1 () + in (cons1 (wherespec, strdescs'')) +end) + in ( LrTable.NT 121, ( result, WHERE1left, strdescs''1right), rest671 +) +end +| ( 86, ( ( _, ( MlyValue.strdescs' strdescs'1, strdescs'1left, +strdescs'1right)) :: rest671)) => let val result = +MlyValue.strdescs'' (fn _ => let val (strdescs' as strdescs'1) = +strdescs'1 () + in (strdescs') +end) + in ( LrTable.NT 122, ( result, strdescs'1left, strdescs'1right), +rest671) +end +| ( 87, ( ( _, ( MlyValue.strdescs'' strdescs''1, _, strdescs''1right +)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, +AND1left, _)) :: rest671)) => let val result = MlyValue.strdescs'' + (fn _ => let val (wherespec as wherespec1) = wherespec1 () + val (strdescs'' as strdescs''1) = strdescs''1 () + in (cons1 (wherespec, strdescs'')) +end) + in ( LrTable.NT 122, ( result, AND1left, strdescs''1right), rest671) + +end +| ( 88, ( ( _, ( MlyValue.typdesc typdesc1, typdesc1left, +typdesc1right)) :: rest671)) => let val result = MlyValue.typdescs + (fn _ => let val (typdesc as typdesc1) = typdesc1 () + in ([typdesc]) +end) + in ( LrTable.NT 149, ( result, typdesc1left, typdesc1right), rest671) + +end +| ( 89, ( ( _, ( MlyValue.typdescs typdescs1, _, typdescs1right)) :: + _ :: ( _, ( MlyValue.typdesc typdesc1, typdesc1left, _)) :: rest671)) + => let val result = MlyValue.typdescs (fn _ => let val (typdesc as +typdesc1) = typdesc1 () + val (typdescs as typdescs1) = typdescs1 () + in (typdesc :: typdescs) +end) + in ( LrTable.NT 149, ( result, typdesc1left, typdescs1right), rest671 +) +end +| ( 90, ( ( _, ( MlyValue.tycon tycon1, _, tycon1right)) :: ( _, ( +MlyValue.tyvars tyvars1, tyvars1left, _)) :: rest671)) => let val +result = MlyValue.typdesc (fn _ => let val (tyvars as tyvars1) = +tyvars1 () + val (tycon as tycon1) = tycon1 () + in ({tyvars = tyvars, + tycon = tycon}) +end) + in ( LrTable.NT 148, ( result, tyvars1left, tycon1right), rest671) + +end +| ( 91, ( ( _, ( MlyValue.valdesc valdesc1, valdesc1left, +valdesc1right)) :: rest671)) => let val result = MlyValue.valdescs + (fn _ => let val (valdesc as valdesc1) = valdesc1 () + in ([valdesc]) +end) + in ( LrTable.NT 158, ( result, valdesc1left, valdesc1right), rest671) + +end +| ( 92, ( ( _, ( MlyValue.valdescs valdescs1, _, valdescs1right)) :: + _ :: ( _, ( MlyValue.valdesc valdesc1, valdesc1left, _)) :: rest671)) + => let val result = MlyValue.valdescs (fn _ => let val (valdesc as +valdesc1) = valdesc1 () + val (valdescs as valdescs1) = valdescs1 () + in (valdesc :: valdescs) +end) + in ( LrTable.NT 158, ( result, valdesc1left, valdescs1right), rest671 +) +end +| ( 93, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( +MlyValue.var var1, var1left, _)) :: rest671)) => let val result = +MlyValue.valdesc (fn _ => let val (var as var1) = var1 () + val (ty as ty1) = ty1 () + in ( +Con.ensureSpecify (Vid.toCon (Vid.fromVar var)) + ; (var, ty) +) +end) + in ( LrTable.NT 157, ( result, var1left, ty1right), rest671) +end +| ( 94, ( ( _, ( MlyValue.exndesc exndesc1, exndesc1left, +exndesc1right)) :: rest671)) => let val result = MlyValue.exndescs + (fn _ => let val (exndesc as exndesc1) = exndesc1 () + in ([exndesc]) +end) + in ( LrTable.NT 43, ( result, exndesc1left, exndesc1right), rest671) + +end +| ( 95, ( ( _, ( MlyValue.exndescs exndescs1, _, exndescs1right)) :: + _ :: ( _, ( MlyValue.exndesc exndesc1, exndesc1left, _)) :: rest671)) + => let val result = MlyValue.exndescs (fn _ => let val (exndesc as +exndesc1) = exndesc1 () + val (exndescs as exndescs1) = exndescs1 () + in (exndesc :: exndescs) +end) + in ( LrTable.NT 43, ( result, exndesc1left, exndescs1right), rest671) + +end +| ( 96, ( ( _, ( MlyValue.tyOpt tyOpt1, _, tyOpt1right)) :: ( _, ( +MlyValue.con con1, con1left, _)) :: rest671)) => let val result = +MlyValue.exndesc (fn _ => let val (con as con1) = con1 () + val (tyOpt as tyOpt1) = tyOpt1 () + in (Con.ensureSpecify con; (con, tyOpt)) +end) + in ( LrTable.NT 42, ( result, con1left, tyOpt1right), rest671) +end +| ( 97, ( rest671)) => let val result = MlyValue.tyOpt (fn _ => ( +NONE)) + in ( LrTable.NT 142, ( result, defaultPos, defaultPos), rest671) +end +| ( 98, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: ( _, ( _, OF1left, + _)) :: rest671)) => let val result = MlyValue.tyOpt (fn _ => let + val (ty as ty1) = ty1 () + in (SOME ty) +end) + in ( LrTable.NT 142, ( result, OF1left, ty1right), rest671) +end +| ( 99, ( ( _, ( MlyValue.funbinds' funbinds'1, _, funbinds'1right)) + :: _ :: ( _, ( MlyValue.sigconst sigconst1, _, _)) :: _ :: ( _, ( +MlyValue.fctarg fctarg1, fctargleft, fctargright)) :: _ :: ( _, ( +MlyValue.fctid fctid1, fctid1left, _)) :: rest671)) => let val result + = MlyValue.funbinds (fn _ => let val (fctid as fctid1) = fctid1 () + val (fctarg as fctarg1) = fctarg1 () + val (sigconst as sigconst1) = sigconst1 () + val (funbinds' as funbinds'1) = funbinds'1 () + in ( +let val (strexp,funbinds) = funbinds' + in {name = fctid, + arg = FctArg.makeRegion' (fctarg, fctargleft, fctargright), + result = sigconst, + body = strexp} + :: funbinds + end +) +end) + in ( LrTable.NT 54, ( result, fctid1left, funbinds'1right), rest671) + +end +| ( 100, ( ( _, ( MlyValue.funbinds'1 funbinds'11, _, +funbinds'11right)) :: ( _, ( MlyValue.strexp1 strexp11, strexp11left, + _)) :: rest671)) => let val result = MlyValue.funbinds' (fn _ => let + val (strexp1 as strexp11) = strexp11 () + val (funbinds'1 as funbinds'11) = funbinds'11 () + in (augment1 (strexp1, funbinds'1)) +end) + in ( LrTable.NT 55, ( result, strexp11left, funbinds'11right), +rest671) +end +| ( 101, ( ( _, ( MlyValue.funbinds'2 funbinds'21, _, +funbinds'21right)) :: ( _, ( MlyValue.strexp2 strexp21, strexp21left, + _)) :: rest671)) => let val result = MlyValue.funbinds' (fn _ => let + val (strexp2 as strexp21) = strexp21 () + val (funbinds'2 as funbinds'21) = funbinds'21 () + in ((strexp2, funbinds'2)) +end) + in ( LrTable.NT 55, ( result, strexp21left, funbinds'21right), +rest671) +end +| ( 102, ( ( _, ( MlyValue.funbinds'2 funbinds'21, (funbinds'2left + as funbinds'21left), funbinds'21right)) :: rest671)) => let val +result = MlyValue.funbinds'1 (fn _ => let val (funbinds'2 as +funbinds'21) = funbinds'21 () + in ([], funbinds'2left, funbinds'2) +end) + in ( LrTable.NT 56, ( result, funbinds'21left, funbinds'21right), +rest671) +end +| ( 103, ( ( _, ( MlyValue.funbinds'1' funbinds'1'1, _, +funbinds'1'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: + ( _, ( _, WHERE1left, _)) :: rest671)) => let val result = +MlyValue.funbinds'1 (fn _ => let val (wherespec as wherespec1) = +wherespec1 () + val (funbinds'1' as funbinds'1'1) = funbinds'1'1 () + in (cons1 (wherespec,funbinds'1')) +end) + in ( LrTable.NT 56, ( result, WHERE1left, funbinds'1'1right), rest671 +) +end +| ( 104, ( rest671)) => let val result = MlyValue.funbinds'2 (fn _ + => ([])) + in ( LrTable.NT 58, ( result, defaultPos, defaultPos), rest671) +end +| ( 105, ( ( _, ( MlyValue.funbinds funbinds1, _, funbinds1right)) :: + ( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.funbinds'2 (fn _ => let val (funbinds as funbinds1) = +funbinds1 () + in (funbinds) +end) + in ( LrTable.NT 58, ( result, AND1left, funbinds1right), rest671) +end +| ( 106, ( ( _, ( MlyValue.funbinds'1 funbinds'11, funbinds'11left, +funbinds'11right)) :: rest671)) => let val result = +MlyValue.funbinds'1' (fn _ => let val (funbinds'1 as funbinds'11) = +funbinds'11 () + in (funbinds'1) +end) + in ( LrTable.NT 57, ( result, funbinds'11left, funbinds'11right), +rest671) +end +| ( 107, ( ( _, ( MlyValue.funbinds'1' funbinds'1'1, _, +funbinds'1'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: + ( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.funbinds'1' (fn _ => let val (wherespec as wherespec1) = +wherespec1 () + val (funbinds'1' as funbinds'1'1) = funbinds'1'1 () + in (cons1 (wherespec,funbinds'1')) +end) + in ( LrTable.NT 57, ( result, AND1left, funbinds'1'1right), rest671) + +end +| ( 108, ( ( _, ( MlyValue.sigexp sigexp1, _, sigexp1right)) :: _ :: +( _, ( MlyValue.strid strid1, strid1left, _)) :: rest671)) => let val + result = MlyValue.fctarg (fn _ => let val (strid as strid1) = strid1 + () + val (sigexp as sigexp1) = sigexp1 () + in (FctArg.Structure (strid, sigexp)) +end) + in ( LrTable.NT 50, ( result, strid1left, sigexp1right), rest671) +end +| ( 109, ( ( _, ( MlyValue.specs specs1, specs1left, specs1right)) :: + rest671)) => let val result = MlyValue.fctarg (fn _ => let val ( +specs as specs1) = specs1 () + in (FctArg.Spec specs) +end) + in ( LrTable.NT 50, ( result, specs1left, specs1right), rest671) +end +| ( 110, ( rest671)) => let val result = MlyValue.decs (fn _ => ( +Dec.makeRegion' (Dec.SeqDec (Vector.new0 ()), + defaultPos, defaultPos) +)) + in ( LrTable.NT 33, ( result, defaultPos, defaultPos), rest671) +end +| ( 111, ( ( _, ( MlyValue.decs decs1, _, decs1right)) :: ( _, ( +MlyValue.dec dec1, dec1left, _)) :: rest671)) => let val result = +MlyValue.decs (fn _ => let val (dec as dec1) = dec1 () + val (decs as decs1) = decs1 () + in (Dec.sequence (dec,decs)) +end) + in ( LrTable.NT 33, ( result, dec1left, decs1right), rest671) +end +| ( 112, ( ( _, ( MlyValue.decs decs1, _, decs1right)) :: ( _, ( _, +SEMICOLON1left, _)) :: rest671)) => let val result = MlyValue.decs + (fn _ => let val (decs as decs1) = decs1 () + in (decs) +end) + in ( LrTable.NT 33, ( result, SEMICOLON1left, decs1right), rest671) + +end +| ( 113, ( ( _, ( MlyValue.decnode decnode1, (decnodeleft as +decnode1left), (decnoderight as decnode1right))) :: rest671)) => let + val result = MlyValue.dec (fn _ => let val (decnode as decnode1) = +decnode1 () + in (Dec.makeRegion' (decnode, decnodeleft, decnoderight)) +end) + in ( LrTable.NT 30, ( result, decnode1left, decnode1right), rest671) + +end +| ( 114, ( ( _, ( MlyValue.decnolocal decnolocal1, decnolocal1left, +decnolocal1right)) :: rest671)) => let val result = MlyValue.decnode + (fn _ => let val (decnolocal as decnolocal1) = decnolocal1 () + in (decnolocal) +end) + in ( LrTable.NT 31, ( result, decnolocal1left, decnolocal1right), +rest671) +end +| ( 115, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.decs decs2, _, + _)) :: _ :: ( _, ( MlyValue.decs decs1, _, _)) :: ( _, ( _, +LOCAL1left, _)) :: rest671)) => let val result = MlyValue.decnode (fn + _ => let val decs1 = decs1 () + val decs2 = decs2 () + in (Dec.Local (decs1,decs2)) +end) + in ( LrTable.NT 31, ( result, LOCAL1left, END1right), rest671) +end +| ( 116, ( ( _, ( MlyValue.valbindTop valbindTop1, _, +valbindTop1right)) :: ( _, ( _, VAL1left, _)) :: rest671)) => let val + result = MlyValue.decnolocal (fn _ => let val (valbindTop as +valbindTop1) = valbindTop1 () + in ( +Dec.Val {tyvars = Vector.new0 (), + vbs = #1 valbindTop, + rvbs = #2 valbindTop} +) +end) + in ( LrTable.NT 32, ( result, VAL1left, valbindTop1right), rest671) + +end +| ( 117, ( ( _, ( MlyValue.valbindTop valbindTop1, _, +valbindTop1right)) :: ( _, ( MlyValue.tyvarseq tyvarseq1, _, _)) :: ( + _, ( _, VAL1left, _)) :: rest671)) => let val result = +MlyValue.decnolocal (fn _ => let val (tyvarseq as tyvarseq1) = +tyvarseq1 () + val (valbindTop as valbindTop1) = valbindTop1 () + in ( +Dec.Val {tyvars = tyvarseq, + vbs = #1 valbindTop, + rvbs = #2 valbindTop} +) +end) + in ( LrTable.NT 32, ( result, VAL1left, valbindTop1right), rest671) + +end +| ( 118, ( ( _, ( MlyValue.funs funs1, _, funs1right)) :: ( _, ( _, +FUN1left, _)) :: rest671)) => let val result = MlyValue.decnolocal + (fn _ => let val (funs as funs1) = funs1 () + in (Dec.Fun (Vector.new0 (), Vector.fromList funs)) +end) + in ( LrTable.NT 32, ( result, FUN1left, funs1right), rest671) +end +| ( 119, ( ( _, ( MlyValue.funs funs1, _, funs1right)) :: ( _, ( +MlyValue.tyvarseq tyvarseq1, _, _)) :: ( _, ( _, FUN1left, _)) :: +rest671)) => let val result = MlyValue.decnolocal (fn _ => let val ( +tyvarseq as tyvarseq1) = tyvarseq1 () + val (funs as funs1) = funs1 () + in (Dec.Fun (tyvarseq, Vector.fromList funs)) +end) + in ( LrTable.NT 32, ( result, FUN1left, funs1right), rest671) +end +| ( 120, ( ( _, ( MlyValue.typBind typBind1, _, typBind1right)) :: ( + _, ( _, TYPE1left, _)) :: rest671)) => let val result = +MlyValue.decnolocal (fn _ => let val (typBind as typBind1) = typBind1 + () + in (Dec.Type typBind) +end) + in ( LrTable.NT 32, ( result, TYPE1left, typBind1right), rest671) +end +| ( 121, ( ( _, ( MlyValue.datatypeRhs datatypeRhs1, _, +datatypeRhs1right)) :: ( _, ( _, DATATYPE1left, _)) :: rest671)) => + let val result = MlyValue.decnolocal (fn _ => let val (datatypeRhs + as datatypeRhs1) = datatypeRhs1 () + in (Dec.Datatype datatypeRhs) +end) + in ( LrTable.NT 32, ( result, DATATYPE1left, datatypeRhs1right), +rest671) +end +| ( 122, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.decs decs1, _, + _)) :: _ :: ( _, ( MlyValue.datBind datBind1, _, _)) :: ( _, ( _, +ABSTYPE1left, _)) :: rest671)) => let val result = +MlyValue.decnolocal (fn _ => let val (datBind as datBind1) = datBind1 + () + val (decs as decs1) = decs1 () + in ( +Dec.Abstype {datBind = datBind, + body = decs} +) +end) + in ( LrTable.NT 32, ( result, ABSTYPE1left, END1right), rest671) +end +| ( 123, ( ( _, ( MlyValue.ebs ebs1, _, ebs1right)) :: ( _, ( _, +EXCEPTION1left, _)) :: rest671)) => let val result = +MlyValue.decnolocal (fn _ => let val (ebs as ebs1) = ebs1 () + in (Dec.Exception (Vector.fromList ebs)) +end) + in ( LrTable.NT 32, ( result, EXCEPTION1left, ebs1right), rest671) + +end +| ( 124, ( ( _, ( MlyValue.longstrids longstrids1, _, +longstrids1right)) :: ( _, ( _, OPEN1left, _)) :: rest671)) => let + val result = MlyValue.decnolocal (fn _ => let val (longstrids as +longstrids1) = longstrids1 () + in (Dec.Open (Vector.fromList longstrids)) +end) + in ( LrTable.NT 32, ( result, OPEN1left, longstrids1right), rest671) + +end +| ( 125, ( ( _, ( MlyValue.vids vids1, _, vids1right)) :: ( _, ( +MlyValue.fixity fixity1, fixity1left, _)) :: rest671)) => let val +result = MlyValue.decnolocal (fn _ => let val (fixity as fixity1) = +fixity1 () + val (vids as vids1) = vids1 () + in ( +Dec.Fix {fixity = fixity, + ops = Vector.fromList vids} +) +end) + in ( LrTable.NT 32, ( result, fixity1left, vids1right), rest671) +end +| ( 126, ( ( _, ( MlyValue.longvarands longvarands1, _, +longvarands1right)) :: _ :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _ +, ( MlyValue.var var1, _, _)) :: ( _, ( MlyValue.priority priority1, _ +, _)) :: ( _, ( _, OVERLOAD1left, _)) :: rest671)) => let val result + = MlyValue.decnolocal (fn _ => let val (priority as priority1) = +priority1 () + val (var as var1) = var1 () + val (ty as ty1) = ty1 () + val (longvarands as longvarands1) = longvarands1 () + in ( +Dec.Overload (priority, + var, + Vector.new0 (), + ty, + Vector.fromList longvarands) +) +end) + in ( LrTable.NT 32, ( result, OVERLOAD1left, longvarands1right), +rest671) +end +| ( 127, ( ( _, ( MlyValue.valbind valbind1, valbind1left, +valbind1right)) :: rest671)) => let val result = MlyValue.valbindTop + (fn _ => let val (valbind as valbind1) = valbind1 () + in ( +let + val (vbs, rvbs) = valbind + in + (Vector.fromList vbs, + Vector.fromList rvbs) + end +) +end) + in ( LrTable.NT 156, ( result, valbind1left, valbind1right), rest671) + +end +| ( 128, ( ( _, ( MlyValue.valbindRest valbindRest1, _, +valbindRest1right)) :: ( _, ( MlyValue.exp exp1, _, _)) :: _ :: ( _, ( + MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val result = +MlyValue.valbind (fn _ => let val (pat as pat1) = pat1 () + val (exp as exp1) = exp1 () + val (valbindRest as valbindRest1) = valbindRest1 () + in ( +let + val (vbs, rvbs) = valbindRest + in + ({pat = pat, exp = exp} :: vbs, + rvbs) + end +) +end) + in ( LrTable.NT 154, ( result, pat1left, valbindRest1right), rest671) + +end +| ( 129, ( ( _, ( MlyValue.rvalbind rvalbind1, _, rvalbind1right)) :: + ( _, ( _, REC1left, _)) :: rest671)) => let val result = +MlyValue.valbind (fn _ => let val (rvalbind as rvalbind1) = rvalbind1 + () + in (([], rvalbind)) +end) + in ( LrTable.NT 154, ( result, REC1left, rvalbind1right), rest671) + +end +| ( 130, ( rest671)) => let val result = MlyValue.valbindRest (fn _ + => (([], []))) + in ( LrTable.NT 155, ( result, defaultPos, defaultPos), rest671) +end +| ( 131, ( ( _, ( MlyValue.valbind valbind1, _, valbind1right)) :: ( + _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.valbindRest (fn _ => let val (valbind as valbind1) = +valbind1 () + in (valbind) +end) + in ( LrTable.NT 155, ( result, AND1left, valbind1right), rest671) +end +| ( 132, ( ( _, ( MlyValue.rvalbind rvalbind1, _, rvalbind1right)) :: + ( _, ( _, REC1left, _)) :: rest671)) => let val result = +MlyValue.rvalbind (fn _ => let val (rvalbind as rvalbind1) = +rvalbind1 () + in (rvalbind) +end) + in ( LrTable.NT 92, ( result, REC1left, rvalbind1right), rest671) +end +| ( 133, ( ( _, ( MlyValue.rvalbindRest rvalbindRest1, _, +rvalbindRest1right)) :: ( _, ( MlyValue.match match1, _, _)) :: _ :: _ + :: ( _, ( MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val +result = MlyValue.rvalbind (fn _ => let val (pat as pat1) = pat1 () + val (match as match1) = match1 () + val (rvalbindRest as rvalbindRest1) = rvalbindRest1 () + in ({pat = pat, match = match} :: rvalbindRest) +end) + in ( LrTable.NT 92, ( result, pat1left, rvalbindRest1right), rest671) + +end +| ( 134, ( rest671)) => let val result = MlyValue.rvalbindRest (fn _ + => ([])) + in ( LrTable.NT 93, ( result, defaultPos, defaultPos), rest671) +end +| ( 135, ( ( _, ( MlyValue.rvalbind rvalbind1, _, rvalbind1right)) :: + ( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.rvalbindRest (fn _ => let val (rvalbind as rvalbind1) = +rvalbind1 () + in (rvalbind) +end) + in ( LrTable.NT 93, ( result, AND1left, rvalbind1right), rest671) +end +| ( 136, ( rest671)) => let val result = MlyValue.constraint (fn _ + => (NONE)) + in ( LrTable.NT 18, ( result, defaultPos, defaultPos), rest671) +end +| ( 137, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: ( _, ( _, +COLON1left, _)) :: rest671)) => let val result = MlyValue.constraint + (fn _ => let val (ty as ty1) = ty1 () + in (SOME ty) +end) + in ( LrTable.NT 18, ( result, COLON1left, ty1right), rest671) +end +| ( 138, ( ( _, ( MlyValue.clausesTop clausesTop1, clausesTop1left, +clausesTop1right)) :: rest671)) => let val result = MlyValue.funs (fn + _ => let val (clausesTop as clausesTop1) = clausesTop1 () + in ([clausesTop]) +end) + in ( LrTable.NT 59, ( result, clausesTop1left, clausesTop1right), +rest671) +end +| ( 139, ( ( _, ( MlyValue.funs funs1, _, funs1right)) :: _ :: ( _, ( + MlyValue.clausesTop clausesTop1, clausesTop1left, _)) :: rest671)) => + let val result = MlyValue.funs (fn _ => let val (clausesTop as +clausesTop1) = clausesTop1 () + val (funs as funs1) = funs1 () + in (clausesTop :: funs) +end) + in ( LrTable.NT 59, ( result, clausesTop1left, funs1right), rest671) + +end +| ( 140, ( ( _, ( MlyValue.clauses clauses1, clauses1left, +clauses1right)) :: rest671)) => let val result = MlyValue.clausesTop + (fn _ => let val (clauses as clauses1) = clauses1 () + in (Vector.fromList clauses) +end) + in ( LrTable.NT 12, ( result, clauses1left, clauses1right), rest671) + +end +| ( 141, ( ( _, ( MlyValue.clause clause1, clause1left, clause1right) +) :: rest671)) => let val result = MlyValue.clauses (fn _ => let val + (clause as clause1) = clause1 () + in ([clause]) +end) + in ( LrTable.NT 11, ( result, clause1left, clause1right), rest671) + +end +| ( 142, ( ( _, ( MlyValue.clauses clauses1, _, clauses1right)) :: _ + :: ( _, ( MlyValue.clause clause1, clause1left, _)) :: rest671)) => + let val result = MlyValue.clauses (fn _ => let val (clause as +clause1) = clause1 () + val (clauses as clauses1) = clauses1 () + in (clause :: clauses) +end) + in ( LrTable.NT 11, ( result, clause1left, clauses1right), rest671) + +end +| ( 143, ( ( _, ( MlyValue.exp exp1, _, exp1right)) :: _ :: ( _, ( +MlyValue.constraint constraint1, _, _)) :: ( _, ( MlyValue.apats +apats1, apats1left, _)) :: rest671)) => let val result = +MlyValue.clause (fn _ => let val (apats as apats1) = apats1 () + val (constraint as constraint1) = constraint1 () + val (exp as exp1) = exp1 () + in ( +{pats = Vector.fromList apats, + resultType = constraint, + body = exp} +) +end) + in ( LrTable.NT 10, ( result, apats1left, exp1right), rest671) +end +| ( 144, ( ( _, ( MlyValue.typBind' typBind'1, (typBind'left as +typBind'1left), (typBind'right as typBind'1right))) :: rest671)) => + let val result = MlyValue.typBind (fn _ => let val (typBind' as +typBind'1) = typBind'1 () + in ( +let + val typBind = Vector.fromList typBind' + val b = + TypBind.makeRegion' + (TypBind.T typBind, typBind'left, typBind'right) + in + b + end +) +end) + in ( LrTable.NT 145, ( result, typBind'1left, typBind'1right), +rest671) +end +| ( 145, ( ( _, ( MlyValue.typBind'' typBind''1, _, typBind''1right)) + :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.tycon +tycon1, _, _)) :: ( _, ( MlyValue.tyvars tyvars1, tyvars1left, _)) :: +rest671)) => let val result = MlyValue.typBind' (fn _ => let val ( +tyvars as tyvars1) = tyvars1 () + val (tycon as tycon1) = tycon1 () + val (ty as ty1) = ty1 () + val (typBind'' as typBind''1) = typBind''1 () + in ({def = ty, tycon = tycon, tyvars = tyvars} :: typBind'') +end) + in ( LrTable.NT 146, ( result, tyvars1left, typBind''1right), rest671 +) +end +| ( 146, ( rest671)) => let val result = MlyValue.typBind'' (fn _ => + ([])) + in ( LrTable.NT 147, ( result, defaultPos, defaultPos), rest671) +end +| ( 147, ( ( _, ( MlyValue.typBind' typBind'1, _, typBind'1right)) :: + ( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.typBind'' (fn _ => let val (typBind' as typBind'1) = +typBind'1 () + in (typBind') +end) + in ( LrTable.NT 147, ( result, AND1left, typBind'1right), rest671) + +end +| ( 148, ( ( _, ( MlyValue.tyvarseq tyvarseq1, tyvarseq1left, +tyvarseq1right)) :: rest671)) => let val result = MlyValue.tyvars (fn + _ => let val (tyvarseq as tyvarseq1) = tyvarseq1 () + in (tyvarseq) +end) + in ( LrTable.NT 152, ( result, tyvarseq1left, tyvarseq1right), +rest671) +end +| ( 149, ( rest671)) => let val result = MlyValue.tyvars (fn _ => ( +Vector.new0 ())) + in ( LrTable.NT 152, ( result, defaultPos, defaultPos), rest671) +end +| ( 150, ( ( _, ( MlyValue.tyvar tyvar1, tyvar1left, tyvar1right)) :: + rest671)) => let val result = MlyValue.tyvarseq (fn _ => let val ( +tyvar as tyvar1) = tyvar1 () + in (Vector.new1 tyvar) +end) + in ( LrTable.NT 153, ( result, tyvar1left, tyvar1right), rest671) +end +| ( 151, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.tyvar_pc +tyvar_pc1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let + val result = MlyValue.tyvarseq (fn _ => let val (tyvar_pc as +tyvar_pc1) = tyvar_pc1 () + in ( +let + val v = Vector.fromList tyvar_pc + val () = + reportDuplicates + (v, {equals = Tyvar.sameName, + layout = Tyvar.layout, + name = "type variable", + region = Tyvar.region, + term = fn () => Layout.tuple (Vector.toListMap + (v, Tyvar.layout))}) + in + v + end +) +end) + in ( LrTable.NT 153, ( result, LPAREN1left, RPAREN1right), rest671) + +end +| ( 152, ( ( _, ( MlyValue.tyvar tyvar1, tyvar1left, tyvar1right)) :: + rest671)) => let val result = MlyValue.tyvar_pc (fn _ => let val ( +tyvar as tyvar1) = tyvar1 () + in ([tyvar]) +end) + in ( LrTable.NT 151, ( result, tyvar1left, tyvar1right), rest671) +end +| ( 153, ( ( _, ( MlyValue.tyvar_pc tyvar_pc1, _, tyvar_pc1right)) :: + _ :: ( _, ( MlyValue.tyvar tyvar1, tyvar1left, _)) :: rest671)) => + let val result = MlyValue.tyvar_pc (fn _ => let val (tyvar as +tyvar1) = tyvar1 () + val (tyvar_pc as tyvar_pc1) = tyvar_pc1 () + in (tyvar :: tyvar_pc) +end) + in ( LrTable.NT 151, ( result, tyvar1left, tyvar_pc1right), rest671) + +end +| ( 154, ( ( _, ( MlyValue.constr constr1, constr1left, constr1right) +) :: rest671)) => let val result = MlyValue.constrs (fn _ => let val + (constr as constr1) = constr1 () + in ([constr]) +end) + in ( LrTable.NT 19, ( result, constr1left, constr1right), rest671) + +end +| ( 155, ( ( _, ( MlyValue.constrs constrs1, _, constrs1right)) :: _ + :: ( _, ( MlyValue.constr constr1, constr1left, _)) :: rest671)) => + let val result = MlyValue.constrs (fn _ => let val (constr as +constr1) = constr1 () + val (constrs as constrs1) = constrs1 () + in (constr :: constrs) +end) + in ( LrTable.NT 19, ( result, constr1left, constrs1right), rest671) + +end +| ( 156, ( ( _, ( MlyValue.opcon opcon1, opcon1left, opcon1right)) :: + rest671)) => let val result = MlyValue.constr (fn _ => let val ( +opcon as opcon1) = opcon1 () + in (opcon, NONE) +end) + in ( LrTable.NT 17, ( result, opcon1left, opcon1right), rest671) +end +| ( 157, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( +MlyValue.opcon opcon1, opcon1left, _)) :: rest671)) => let val result + = MlyValue.constr (fn _ => let val (opcon as opcon1) = opcon1 () + val (ty as ty1) = ty1 () + in (opcon, SOME ty) +end) + in ( LrTable.NT 17, ( result, opcon1left, ty1right), rest671) +end +| ( 158, ( ( _, ( MlyValue.con con1, con1left, con1right)) :: rest671 +)) => let val result = MlyValue.opcon (fn _ => let val (con as con1) + = con1 () + in (con) +end) + in ( LrTable.NT 79, ( result, con1left, con1right), rest671) +end +| ( 159, ( ( _, ( MlyValue.con con1, _, con1right)) :: ( _, ( _, +OP1left, _)) :: rest671)) => let val result = MlyValue.opcon (fn _ => + let val (con as con1) = con1 () + in (con) +end) + in ( LrTable.NT 79, ( result, OP1left, con1right), rest671) +end +| ( 160, ( ( _, ( MlyValue.eb eb1, eb1left, eb1right)) :: rest671)) + => let val result = MlyValue.ebs (fn _ => let val (eb as eb1) = eb1 + () + in ([eb]) +end) + in ( LrTable.NT 39, ( result, eb1left, eb1right), rest671) +end +| ( 161, ( ( _, ( MlyValue.ebs ebs1, _, ebs1right)) :: _ :: ( _, ( +MlyValue.eb eb1, eb1left, _)) :: rest671)) => let val result = +MlyValue.ebs (fn _ => let val (eb as eb1) = eb1 () + val (ebs as ebs1) = ebs1 () + in (eb::ebs) +end) + in ( LrTable.NT 39, ( result, eb1left, ebs1right), rest671) +end +| ( 162, ( ( _, ( MlyValue.ebrhs ebrhs1, _, ebrhs1right)) :: ( _, ( +MlyValue.opcon opcon1, opcon1left, _)) :: rest671)) => let val result + = MlyValue.eb (fn _ => let val (opcon as opcon1) = opcon1 () + val (ebrhs as ebrhs1) = ebrhs1 () + in (Con.ensureRedefine opcon; (opcon, ebrhs)) +end) + in ( LrTable.NT 36, ( result, opcon1left, ebrhs1right), rest671) +end +| ( 163, ( ( _, ( MlyValue.ebrhsnode ebrhsnode1, (ebrhsnodeleft as +ebrhsnode1left), (ebrhsnoderight as ebrhsnode1right))) :: rest671)) => + let val result = MlyValue.ebrhs (fn _ => let val (ebrhsnode as +ebrhsnode1) = ebrhsnode1 () + in ( +EbRhs.makeRegion' (ebrhsnode, + ebrhsnodeleft, ebrhsnoderight) +) +end) + in ( LrTable.NT 37, ( result, ebrhsnode1left, ebrhsnode1right), +rest671) +end +| ( 164, ( rest671)) => let val result = MlyValue.ebrhsnode (fn _ => + (EbRhs.Gen NONE)) + in ( LrTable.NT 38, ( result, defaultPos, defaultPos), rest671) +end +| ( 165, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: ( _, ( _, OF1left +, _)) :: rest671)) => let val result = MlyValue.ebrhsnode (fn _ => + let val (ty as ty1) = ty1 () + in (EbRhs.Gen (SOME ty)) +end) + in ( LrTable.NT 38, ( result, OF1left, ty1right), rest671) +end +| ( 166, ( ( _, ( MlyValue.longcon longcon1, _, longcon1right)) :: ( + _, ( _, EQUALOP1left, _)) :: rest671)) => let val result = +MlyValue.ebrhsnode (fn _ => let val (longcon as longcon1) = longcon1 + () + in (EbRhs.Def longcon) +end) + in ( LrTable.NT 38, ( result, EQUALOP1left, longcon1right), rest671) + +end +| ( 167, ( ( _, ( MlyValue.longcon longcon1, _, longcon1right)) :: _ + :: ( _, ( _, EQUALOP1left, _)) :: rest671)) => let val result = +MlyValue.ebrhsnode (fn _ => let val (longcon as longcon1) = longcon1 + () + in (EbRhs.Def longcon) +end) + in ( LrTable.NT 38, ( result, EQUALOP1left, longcon1right), rest671) + +end +| ( 168, ( ( _, ( _, INFIX1left, INFIX1right)) :: rest671)) => let + val result = MlyValue.fixity (fn _ => (Fixity.Infix NONE)) + in ( LrTable.NT 53, ( result, INFIX1left, INFIX1right), rest671) +end +| ( 169, ( ( _, ( MlyValue.digit digit1, _, digit1right)) :: ( _, ( _ +, INFIX1left, _)) :: rest671)) => let val result = MlyValue.fixity + (fn _ => let val (digit as digit1) = digit1 () + in (Fixity.Infix (SOME digit)) +end) + in ( LrTable.NT 53, ( result, INFIX1left, digit1right), rest671) +end +| ( 170, ( ( _, ( _, INFIXR1left, INFIXR1right)) :: rest671)) => let + val result = MlyValue.fixity (fn _ => (Fixity.Infixr NONE)) + in ( LrTable.NT 53, ( result, INFIXR1left, INFIXR1right), rest671) + +end +| ( 171, ( ( _, ( MlyValue.digit digit1, _, digit1right)) :: ( _, ( _ +, INFIXR1left, _)) :: rest671)) => let val result = MlyValue.fixity + (fn _ => let val (digit as digit1) = digit1 () + in (Fixity.Infixr (SOME digit)) +end) + in ( LrTable.NT 53, ( result, INFIXR1left, digit1right), rest671) +end +| ( 172, ( ( _, ( _, NONFIX1left, NONFIX1right)) :: rest671)) => let + val result = MlyValue.fixity (fn _ => (Fixity.Nonfix)) + in ( LrTable.NT 53, ( result, NONFIX1left, NONFIX1right), rest671) + +end +| ( 173, ( rest671)) => let val result = MlyValue.priority (fn _ => + (Priority.T NONE)) + in ( LrTable.NT 87, ( result, defaultPos, defaultPos), rest671) +end +| ( 174, ( ( _, ( MlyValue.digit digit1, digit1left, digit1right)) :: + rest671)) => let val result = MlyValue.priority (fn _ => let val ( +digit as digit1) = digit1 () + in (Priority.T (SOME digit)) +end) + in ( LrTable.NT 87, ( result, digit1left, digit1right), rest671) +end +| ( 175, ( ( _, ( MlyValue.INT INT1, INT1left, INT1right)) :: rest671 +)) => let val result = MlyValue.int (fn _ => let val (INT as INT1) = + INT1 () + in ( +let + val {digits, negate, radix} = INT + in + case StringCvt.scanString (fn r => IntInf.scan (radix, r)) digits of + NONE => Error.bug "parser saw invalid int" + | SOME i => if negate then ~ i else i + end +) +end) + in ( LrTable.NT 63, ( result, INT1left, INT1right), rest671) +end +| ( 176, ( ( _, ( MlyValue.WORD WORD1, WORD1left, WORD1right)) :: +rest671)) => let val result = MlyValue.word (fn _ => let val (WORD + as WORD1) = WORD1 () + in ( +let + val {digits, radix} = WORD + in + case StringCvt.scanString (fn r => IntInf.scan (radix, r)) digits of + NONE => Error.bug "parser saw invalid word" + | SOME i => i + end +) +end) + in ( LrTable.NT 167, ( result, WORD1left, WORD1right), rest671) +end +| ( 177, ( ( _, ( MlyValue.INT INT1, (INTleft as INT1left), (INTright + as INT1right))) :: rest671)) => let val result = MlyValue.digit (fn + _ => let val (INT as INT1) = INT1 () + in ( +let + val {digits, negate, radix} = INT + in + if 1 = String.size digits andalso not negate andalso radix = StringCvt.DEC + then valOf (Int.fromString digits) + else let + open Layout + val _ = + Control.error (reg (INTleft, INTright), + str "invalid digit in infix declaration", + empty) + in + 0 + end + end +) +end) + in ( LrTable.NT 35, ( result, INT1left, INT1right), rest671) +end +| ( 178, ( ( _, ( MlyValue.datatypeRhsnode datatypeRhsnode1, ( +datatypeRhsnodeleft as datatypeRhsnode1left), (datatypeRhsnoderight + as datatypeRhsnode1right))) :: rest671)) => let val result = +MlyValue.datatypeRhs (fn _ => let val (datatypeRhsnode as +datatypeRhsnode1) = datatypeRhsnode1 () + in ( +DatatypeRhs.makeRegion' (datatypeRhsnode, + datatypeRhsnodeleft, datatypeRhsnoderight) +) +end) + in ( LrTable.NT 23, ( result, datatypeRhsnode1left, +datatypeRhsnode1right), rest671) +end +| ( 179, ( ( _, ( MlyValue.datatypeRhsnodeNoWithtype +datatypeRhsnodeNoWithtype1, (datatypeRhsnodeNoWithtypeleft as +datatypeRhsnodeNoWithtype1left), (datatypeRhsnodeNoWithtyperight as +datatypeRhsnodeNoWithtype1right))) :: rest671)) => let val result = +MlyValue.datatypeRhsNoWithtype (fn _ => let val ( +datatypeRhsnodeNoWithtype as datatypeRhsnodeNoWithtype1) = +datatypeRhsnodeNoWithtype1 () + in ( +DatatypeRhs.makeRegion' (datatypeRhsnodeNoWithtype, + datatypeRhsnodeNoWithtypeleft, + datatypeRhsnodeNoWithtyperight) +) +end) + in ( LrTable.NT 24, ( result, datatypeRhsnodeNoWithtype1left, +datatypeRhsnodeNoWithtype1right), rest671) +end +| ( 180, ( ( _, ( MlyValue.repl repl1, repl1left, repl1right)) :: +rest671)) => let val result = MlyValue.datatypeRhsnode (fn _ => let + val (repl as repl1) = repl1 () + in (repl) +end) + in ( LrTable.NT 25, ( result, repl1left, repl1right), rest671) +end +| ( 181, ( ( _, ( MlyValue.datBind datBind1, datBind1left, +datBind1right)) :: rest671)) => let val result = +MlyValue.datatypeRhsnode (fn _ => let val (datBind as datBind1) = +datBind1 () + in (DatatypeRhs.DatBind datBind) +end) + in ( LrTable.NT 25, ( result, datBind1left, datBind1right), rest671) + +end +| ( 182, ( ( _, ( MlyValue.repl repl1, repl1left, repl1right)) :: +rest671)) => let val result = MlyValue.datatypeRhsnodeNoWithtype (fn + _ => let val (repl as repl1) = repl1 () + in (repl) +end) + in ( LrTable.NT 26, ( result, repl1left, repl1right), rest671) +end +| ( 183, ( ( _, ( MlyValue.datBindNoWithtype datBindNoWithtype1, +datBindNoWithtype1left, datBindNoWithtype1right)) :: rest671)) => let + val result = MlyValue.datatypeRhsnodeNoWithtype (fn _ => let val ( +datBindNoWithtype as datBindNoWithtype1) = datBindNoWithtype1 () + in (DatatypeRhs.DatBind datBindNoWithtype) +end) + in ( LrTable.NT 26, ( result, datBindNoWithtype1left, +datBindNoWithtype1right), rest671) +end +| ( 184, ( ( _, ( MlyValue.longtycon longtycon1, _, longtycon1right)) + :: _ :: _ :: ( _, ( MlyValue.tycon tycon1, _, _)) :: ( _, ( +MlyValue.tyvars tyvars1, (tyvarsleft as tyvars1left), tyvarsright)) :: + rest671)) => let val result = MlyValue.repl (fn _ => let val ( +tyvars as tyvars1) = tyvars1 () + val (tycon as tycon1) = tycon1 () + val (longtycon as longtycon1) = longtycon1 () + in ( +if Vector.isEmpty tyvars + then () + else error (reg (tyvarsleft, tyvarsright), + "nonempty tyvars in datatype repl") + ; DatatypeRhs.Repl {lhs = tycon, rhs = longtycon} +) +end) + in ( LrTable.NT 89, ( result, tyvars1left, longtycon1right), rest671) + +end +| ( 185, ( ( _, ( MlyValue.withtypes withtypes1, _, (withtypesright + as withtypes1right))) :: ( _, ( MlyValue.dbs dbs1, (dbsleft as +dbs1left), _)) :: rest671)) => let val result = MlyValue.datBind (fn + _ => let val (dbs as dbs1) = dbs1 () + val (withtypes as withtypes1) = withtypes1 () + in (DatBind.make (dbs, withtypes, dbsleft, withtypesright)) +end) + in ( LrTable.NT 21, ( result, dbs1left, withtypes1right), rest671) + +end +| ( 186, ( ( _, ( MlyValue.dbs dbs1, (dbsleft as dbs1left), (dbsright + as dbs1right))) :: rest671)) => let val result = +MlyValue.datBindNoWithtype (fn _ => let val (dbs as dbs1) = dbs1 () + in (DatBind.make (dbs, TypBind.empty, dbsleft, dbsright)) +end) + in ( LrTable.NT 22, ( result, dbs1left, dbs1right), rest671) +end +| ( 187, ( ( _, ( MlyValue.dbs' dbs'1, dbs'1left, dbs'1right)) :: +rest671)) => let val result = MlyValue.dbs (fn _ => let val (dbs' + as dbs'1) = dbs'1 () + in (Vector.fromList dbs') +end) + in ( LrTable.NT 28, ( result, dbs'1left, dbs'1right), rest671) +end +| ( 188, ( ( _, ( MlyValue.db db1, db1left, db1right)) :: rest671)) + => let val result = MlyValue.dbs' (fn _ => let val (db as db1) = +db1 () + in ([db]) +end) + in ( LrTable.NT 29, ( result, db1left, db1right), rest671) +end +| ( 189, ( ( _, ( MlyValue.dbs' dbs'1, _, dbs'1right)) :: _ :: ( _, ( + MlyValue.db db1, db1left, _)) :: rest671)) => let val result = +MlyValue.dbs' (fn _ => let val (db as db1) = db1 () + val (dbs' as dbs'1) = dbs'1 () + in (db :: dbs') +end) + in ( LrTable.NT 29, ( result, db1left, dbs'1right), rest671) +end +| ( 190, ( ( _, ( MlyValue.constrs constrs1, _, constrs1right)) :: _ + :: ( _, ( MlyValue.tycon tycon1, _, _)) :: ( _, ( MlyValue.tyvars +tyvars1, tyvars1left, _)) :: rest671)) => let val result = +MlyValue.db (fn _ => let val (tyvars as tyvars1) = tyvars1 () + val (tycon as tycon1) = tycon1 () + val (constrs as constrs1) = constrs1 () + in ( +{cons = Vector.fromList constrs, + tycon = tycon, + tyvars = tyvars} +) +end) + in ( LrTable.NT 27, ( result, tyvars1left, constrs1right), rest671) + +end +| ( 191, ( rest671)) => let val result = MlyValue.withtypes (fn _ => + (TypBind.empty)) + in ( LrTable.NT 166, ( result, defaultPos, defaultPos), rest671) +end +| ( 192, ( ( _, ( MlyValue.typBind typBind1, _, typBind1right)) :: ( + _, ( _, WITHTYPE1left, _)) :: rest671)) => let val result = +MlyValue.withtypes (fn _ => let val (typBind as typBind1) = typBind1 + () + in (typBind) +end) + in ( LrTable.NT 166, ( result, WITHTYPE1left, typBind1right), rest671 +) +end +| ( 193, ( ( _, ( MlyValue.longvar longvar1, longvar1left, +longvar1right)) :: rest671)) => let val result = MlyValue.longvarands + (fn _ => let val (longvar as longvar1) = longvar1 () + in ([longvar]) +end) + in ( LrTable.NT 74, ( result, longvar1left, longvar1right), rest671) + +end +| ( 194, ( ( _, ( MlyValue.longvarands longvarands1, _, +longvarands1right)) :: _ :: ( _, ( MlyValue.longvar longvar1, +longvar1left, _)) :: rest671)) => let val result = +MlyValue.longvarands (fn _ => let val (longvar as longvar1) = +longvar1 () + val (longvarands as longvarands1) = longvarands1 () + in (longvar :: longvarands) +end) + in ( LrTable.NT 74, ( result, longvar1left, longvarands1right), +rest671) +end +| ( 195, ( ( _, ( MlyValue.rules rules1, (rulesleft as rules1left), ( +rulesright as rules1right))) :: rest671)) => let val result = +MlyValue.match (fn _ => let val (rules as rules1) = rules1 () + in ( +Match.makeRegion' (Match.T (Vector.fromList rules), + rulesleft, rulesright) +) +end) + in ( LrTable.NT 77, ( result, rules1left, rules1right), rest671) +end +| ( 196, ( ( _, ( MlyValue.rule rule1, rule1left, rule1right)) :: +rest671)) => let val result = MlyValue.rules (fn _ => let val (rule + as rule1) = rule1 () + in ([rule]) +end) + in ( LrTable.NT 91, ( result, rule1left, rule1right), rest671) +end +| ( 197, ( ( _, ( MlyValue.rules rules1, _, rules1right)) :: _ :: ( _ +, ( MlyValue.rule rule1, rule1left, _)) :: rest671)) => let val +result = MlyValue.rules (fn _ => let val (rule as rule1) = rule1 () + val (rules as rules1) = rules1 () + in (rule :: rules) +end) + in ( LrTable.NT 91, ( result, rule1left, rules1right), rest671) +end +| ( 198, ( ( _, ( MlyValue.exp exp1, _, exp1right)) :: _ :: ( _, ( +MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val result = +MlyValue.rule (fn _ => let val (pat as pat1) = pat1 () + val (exp as exp1) = exp1 () + in ((pat,exp)) +end) + in ( LrTable.NT 90, ( result, pat1left, exp1right), rest671) +end +| ( 199, ( ( _, ( MlyValue.exp exp1, _, exp1right)) :: _ :: ( _, ( +MlyValue.field field1, field1left, _)) :: rest671)) => let val result + = MlyValue.elabel (fn _ => let val (field as field1) = field1 () + val (exp as exp1) = exp1 () + in (field,exp) +end) + in ( LrTable.NT 40, ( result, field1left, exp1right), rest671) +end +| ( 200, ( ( _, ( MlyValue.elabels elabels1, _, elabels1right)) :: _ + :: ( _, ( MlyValue.elabel elabel1, elabel1left, _)) :: rest671)) => + let val result = MlyValue.elabels (fn _ => let val (elabel as +elabel1) = elabel1 () + val (elabels as elabels1) = elabels1 () + in (elabel :: elabels) +end) + in ( LrTable.NT 41, ( result, elabel1left, elabels1right), rest671) + +end +| ( 201, ( ( _, ( MlyValue.elabel elabel1, elabel1left, elabel1right) +) :: rest671)) => let val result = MlyValue.elabels (fn _ => let val + (elabel as elabel1) = elabel1 () + in ([elabel]) +end) + in ( LrTable.NT 41, ( result, elabel1left, elabel1right), rest671) + +end +| ( 202, ( ( _, ( MlyValue.exp exp2, _, exp2right)) :: _ :: ( _, ( +MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val result = +MlyValue.exp_ps (fn _ => let val exp1 = exp1 () + val exp2 = exp2 () + in ([exp1, exp2]) +end) + in ( LrTable.NT 47, ( result, exp1left, exp2right), rest671) +end +| ( 203, ( ( _, ( MlyValue.exp_ps exp_ps1, _, exp_ps1right)) :: _ :: +( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val +result = MlyValue.exp_ps (fn _ => let val (exp as exp1) = exp1 () + val (exp_ps as exp_ps1) = exp_ps1 () + in (exp :: exp_ps) +end) + in ( LrTable.NT 47, ( result, exp1left, exp_ps1right), rest671) +end +| ( 204, ( ( _, ( MlyValue.expnode expnode1, (expnodeleft as +expnode1left), (expnoderight as expnode1right))) :: rest671)) => let + val result = MlyValue.exp (fn _ => let val (expnode as expnode1) = +expnode1 () + in (Exp.makeRegion' (expnode, expnodeleft, expnoderight)) +end) + in ( LrTable.NT 44, ( result, expnode1left, expnode1right), rest671) + +end +| ( 205, ( ( _, ( MlyValue.match match1, _, match1right)) :: _ :: ( _ +, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val result = + MlyValue.expnode (fn _ => let val (exp as exp1) = exp1 () + val (match as match1) = match1 () + in (Exp.Handle (exp, match)) +end) + in ( LrTable.NT 48, ( result, exp1left, match1right), rest671) +end +| ( 206, ( ( _, ( MlyValue.exp exp2, _, exp2right)) :: _ :: ( _, ( +MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val result = +MlyValue.expnode (fn _ => let val exp1 = exp1 () + val exp2 = exp2 () + in (Exp.Orelse (exp1, exp2)) +end) + in ( LrTable.NT 48, ( result, exp1left, exp2right), rest671) +end +| ( 207, ( ( _, ( MlyValue.exp exp2, _, exp2right)) :: _ :: ( _, ( +MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val result = +MlyValue.expnode (fn _ => let val exp1 = exp1 () + val exp2 = exp2 () + in (Exp.Andalso (exp1, exp2)) +end) + in ( LrTable.NT 48, ( result, exp1left, exp2right), rest671) +end +| ( 208, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( +MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val result = +MlyValue.expnode (fn _ => let val (exp as exp1) = exp1 () + val (ty as ty1) = ty1 () + in (Exp.Constraint (exp, ty)) +end) + in ( LrTable.NT 48, ( result, exp1left, ty1right), rest671) +end +| ( 209, ( ( _, ( MlyValue.app_exp app_exp1, app_exp1left, +app_exp1right)) :: rest671)) => let val result = MlyValue.expnode (fn + _ => let val (app_exp as app_exp1) = app_exp1 () + in (Exp.FlatApp (Vector.fromList app_exp)) +end) + in ( LrTable.NT 48, ( result, app_exp1left, app_exp1right), rest671) + +end +| ( 210, ( ( _, ( MlyValue.match match1, _, match1right)) :: ( _, ( _ +, FN1left, _)) :: rest671)) => let val result = MlyValue.expnode (fn + _ => let val (match as match1) = match1 () + in (Exp.Fn match) +end) + in ( LrTable.NT 48, ( result, FN1left, match1right), rest671) +end +| ( 211, ( ( _, ( MlyValue.match match1, _, match1right)) :: _ :: ( _ +, ( MlyValue.exp exp1, _, _)) :: ( _, ( _, CASE1left, _)) :: rest671)) + => let val result = MlyValue.expnode (fn _ => let val (exp as exp1) + = exp1 () + val (match as match1) = match1 () + in (Exp.Case (exp, match)) +end) + in ( LrTable.NT 48, ( result, CASE1left, match1right), rest671) +end +| ( 212, ( ( _, ( MlyValue.exp exp2, _, exp2right)) :: _ :: ( _, ( +MlyValue.exp exp1, _, _)) :: ( _, ( _, WHILE1left, _)) :: rest671)) => + let val result = MlyValue.expnode (fn _ => let val exp1 = exp1 () + val exp2 = exp2 () + in (Exp.While {test = exp1, expr = exp2}) +end) + in ( LrTable.NT 48, ( result, WHILE1left, exp2right), rest671) +end +| ( 213, ( ( _, ( MlyValue.exp exp3, _, exp3right)) :: _ :: ( _, ( +MlyValue.exp exp2, _, _)) :: _ :: ( _, ( MlyValue.exp exp1, _, _)) :: +( _, ( _, IF1left, _)) :: rest671)) => let val result = +MlyValue.expnode (fn _ => let val exp1 = exp1 () + val exp2 = exp2 () + val exp3 = exp3 () + in (Exp.If (exp1, exp2, exp3)) +end) + in ( LrTable.NT 48, ( result, IF1left, exp3right), rest671) +end +| ( 214, ( ( _, ( MlyValue.exp exp1, _, exp1right)) :: ( _, ( _, +RAISE1left, _)) :: rest671)) => let val result = MlyValue.expnode (fn + _ => let val (exp as exp1) = exp1 () + in (Exp.Raise exp) +end) + in ( LrTable.NT 48, ( result, RAISE1left, exp1right), rest671) +end +| ( 215, ( ( _, ( MlyValue.app_exp1 app_exp11, _, app_exp11right)) :: + ( _, ( MlyValue.aexp aexp1, (aexpleft as aexp1left), aexpright)) :: +rest671)) => let val result = MlyValue.app_exp (fn _ => let val ( +aexp as aexp1) = aexp1 () + val (app_exp1 as app_exp11) = app_exp11 () + in ( +Exp.makeRegion' (aexp, aexpleft, aexpright) + :: app_exp1 +) +end) + in ( LrTable.NT 6, ( result, aexp1left, app_exp11right), rest671) +end +| ( 216, ( ( _, ( MlyValue.app_exp1 app_exp11, _, app_exp11right)) :: + ( _, ( MlyValue.longvid longvid1, (longvidleft as longvid1left), +longvidright)) :: rest671)) => let val result = MlyValue.app_exp (fn + _ => let val (longvid as longvid1) = longvid1 () + val (app_exp1 as app_exp11) = app_exp11 () + in ( +Exp.makeRegion' (Exp.Var {name = longvid, + fixop = Fixop.None}, + longvidleft, longvidright) + :: app_exp1 +) +end) + in ( LrTable.NT 6, ( result, longvid1left, app_exp11right), rest671) + +end +| ( 217, ( rest671)) => let val result = MlyValue.app_exp1 (fn _ => + ([])) + in ( LrTable.NT 7, ( result, defaultPos, defaultPos), rest671) +end +| ( 218, ( ( _, ( MlyValue.app_exp app_exp1, app_exp1left, +app_exp1right)) :: rest671)) => let val result = MlyValue.app_exp1 + (fn _ => let val (app_exp as app_exp1) = app_exp1 () + in (app_exp) +end) + in ( LrTable.NT 7, ( result, app_exp1left, app_exp1right), rest671) + +end +| ( 219, ( ( _, ( MlyValue.vid vid1, _, vid1right)) :: ( _, ( _, +OP1left, _)) :: rest671)) => let val result = MlyValue.aexp (fn _ => + let val (vid as vid1) = vid1 () + in ( +Exp.Var {name = Longvid.short vid, + fixop = Fixop.Op} +) +end) + in ( LrTable.NT 0, ( result, OP1left, vid1right), rest671) +end +| ( 220, ( ( _, ( MlyValue.const const1, const1left, const1right)) :: + rest671)) => let val result = MlyValue.aexp (fn _ => let val (const + as const1) = const1 () + in (Exp.Const const) +end) + in ( LrTable.NT 0, ( result, const1left, const1right), rest671) +end +| ( 221, ( ( _, ( MlyValue.field field1, _, field1right)) :: ( _, ( _ +, HASH1left, _)) :: rest671)) => let val result = MlyValue.aexp (fn _ + => let val (field as field1) = field1 () + in (Exp.Selector field) +end) + in ( LrTable.NT 0, ( result, HASH1left, field1right), rest671) +end +| ( 222, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.elabels +elabels1, _, _)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let + val result = MlyValue.aexp (fn _ => let val (elabels as elabels1) = + elabels1 () + in (Exp.Record (Record.fromVector (Vector.fromList elabels))) +end) + in ( LrTable.NT 0, ( result, LBRACE1left, RBRACE1right), rest671) +end +| ( 223, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( _, LBRACE1left, _)) + :: rest671)) => let val result = MlyValue.aexp (fn _ => (Exp.unit)) + in ( LrTable.NT 0, ( result, LBRACE1left, RBRACE1right), rest671) +end +| ( 224, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( _, LPAREN1left, _)) + :: rest671)) => let val result = MlyValue.aexp (fn _ => (Exp.unit)) + in ( LrTable.NT 0, ( result, LPAREN1left, RPAREN1right), rest671) +end +| ( 225, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.expnode +expnode1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let + val result = MlyValue.aexp (fn _ => let val (expnode as expnode1) = + expnode1 () + in (expnode) +end) + in ( LrTable.NT 0, ( result, LPAREN1left, RPAREN1right), rest671) +end +| ( 226, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.exp_ps +exp_ps1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val + result = MlyValue.aexp (fn _ => let val (exp_ps as exp_ps1) = +exp_ps1 () + in (Exp.Seq (Vector.fromList exp_ps)) +end) + in ( LrTable.NT 0, ( result, LPAREN1left, RPAREN1right), rest671) +end +| ( 227, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.exp_2c +exp_2c1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val + result = MlyValue.aexp (fn _ => let val (exp_2c as exp_2c1) = +exp_2c1 () + in (Exp.tuple (Vector.fromList exp_2c)) +end) + in ( LrTable.NT 0, ( result, LPAREN1left, RPAREN1right), rest671) +end +| ( 228, ( ( _, ( _, _, RBRACKET1right)) :: ( _, ( MlyValue.exp_list +exp_list1, _, _)) :: ( _, ( _, LBRACKET1left, _)) :: rest671)) => let + val result = MlyValue.aexp (fn _ => let val (exp_list as exp_list1) + = exp_list1 () + in (Exp.List (Vector.fromList exp_list)) +end) + in ( LrTable.NT 0, ( result, LBRACKET1left, RBRACKET1right), rest671) + +end +| ( 229, ( ( _, ( _, _, RBRACKET1right)) :: ( _, ( _, LBRACKET1left, + _)) :: rest671)) => let val result = MlyValue.aexp (fn _ => ( +Exp.List (Vector.new0 ()))) + in ( LrTable.NT 0, ( result, LBRACKET1left, RBRACKET1right), rest671) + +end +| ( 230, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.exp exp1, _, _ +)) :: _ :: ( _, ( MlyValue.decs decs1, _, _)) :: ( _, ( _, LET1left, _ +)) :: rest671)) => let val result = MlyValue.aexp (fn _ => let val ( +decs as decs1) = decs1 () + val (exp as exp1) = exp1 () + in (Exp.Let (decs, exp)) +end) + in ( LrTable.NT 0, ( result, LET1left, END1right), rest671) +end +| ( 231, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.exp_ps exp_ps1 +, exp_psleft, exp_psright)) :: _ :: ( _, ( MlyValue.decs decs1, _, _)) + :: ( _, ( _, LET1left, _)) :: rest671)) => let val result = +MlyValue.aexp (fn _ => let val (decs as decs1) = decs1 () + val (exp_ps as exp_ps1) = exp_ps1 () + in ( +Exp.Let (decs, Exp.makeRegion' (Exp.Seq (Vector.fromList exp_ps), + exp_psleft, + exp_psright)) +) +end) + in ( LrTable.NT 0, ( result, LET1left, END1right), rest671) +end +| ( 232, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, + _, _)) :: _ :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, +ADDRESS1left, _)) :: rest671)) => let val result = MlyValue.aexp (fn + _ => let val (string as string1) = string1 () + val (ty as ty1) = ty1 () + in ( +Exp.Prim (PrimKind.Address {name = string, + ty = ty}) +) +end) + in ( LrTable.NT 0, ( result, ADDRESS1left, SEMICOLON1right), rest671) + +end +| ( 233, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, + _, _)) :: _ :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, +BUILD_CONST1left, _)) :: rest671)) => let val result = MlyValue.aexp + (fn _ => let val (string as string1) = string1 () + val (ty as ty1) = ty1 () + in (Exp.Prim (PrimKind.BuildConst {name = string, ty = ty})) +end) + in ( LrTable.NT 0, ( result, BUILD_CONST1left, SEMICOLON1right), +rest671) +end +| ( 234, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( +MlyValue.constOrBool constOrBool1, _, _)) :: _ :: ( _, ( MlyValue.ty +ty1, _, _)) :: _ :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _ +, COMMAND_LINE_CONST1left, _)) :: rest671)) => let val result = +MlyValue.aexp (fn _ => let val (string as string1) = string1 () + val (ty as ty1) = ty1 () + val (constOrBool as constOrBool1) = constOrBool1 () + in ( +Exp.Prim (PrimKind.CommandLineConst {name = string, + ty = ty, + value = constOrBool}) +) +end) + in ( LrTable.NT 0, ( result, COMMAND_LINE_CONST1left, SEMICOLON1right +), rest671) +end +| ( 235, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, + _, _)) :: _ :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, +CONST1left, _)) :: rest671)) => let val result = MlyValue.aexp (fn _ + => let val (string as string1) = string1 () + val (ty as ty1) = ty1 () + in (Exp.Prim (PrimKind.Const {name = string, ty = ty})) +end) + in ( LrTable.NT 0, ( result, CONST1left, SEMICOLON1right), rest671) + +end +| ( 236, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, + _, _)) :: _ :: ( _, ( MlyValue.ieattributes ieattributes1, _, _)) :: +( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, EXPORT1left, _)) + :: rest671)) => let val result = MlyValue.aexp (fn _ => let val ( +string as string1) = string1 () + val (ieattributes as ieattributes1) = ieattributes1 () + val (ty as ty1) = ty1 () + in ( +Exp.Prim (PrimKind.Export {attributes = ieattributes, + name = string, + ty = ty}) +) +end) + in ( LrTable.NT 0, ( result, EXPORT1left, SEMICOLON1right), rest671) + +end +| ( 237, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, + _, _)) :: _ :: ( _, ( MlyValue.ieattributes ieattributes1, _, _)) :: +( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, IMPORT1left, _)) + :: rest671)) => let val result = MlyValue.aexp (fn _ => let val ( +string as string1) = string1 () + val (ieattributes as ieattributes1) = ieattributes1 () + val (ty as ty1) = ty1 () + in ( +Exp.Prim (PrimKind.Import {attributes = ieattributes, + name = string, + ty = ty}) +) +end) + in ( LrTable.NT 0, ( result, IMPORT1left, SEMICOLON1right), rest671) + +end +| ( 238, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, + _, _)) :: _ :: ( _, ( MlyValue.ieattributes ieattributes1, _, _)) :: + _ :: ( _, ( _, IMPORT1left, _)) :: rest671)) => let val result = +MlyValue.aexp (fn _ => let val (ieattributes as ieattributes1) = +ieattributes1 () + val (ty as ty1) = ty1 () + in ( +Exp.Prim (PrimKind.IImport {attributes = ieattributes, + ty = ty}) +) +end) + in ( LrTable.NT 0, ( result, IMPORT1left, SEMICOLON1right), rest671) + +end +| ( 239, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, + _, _)) :: _ :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, +PRIM1left, _)) :: rest671)) => let val result = MlyValue.aexp (fn _ + => let val (string as string1) = string1 () + val (ty as ty1) = ty1 () + in ( +Exp.Prim (PrimKind.Prim {name = string, + ty = ty}) +) +end) + in ( LrTable.NT 0, ( result, PRIM1left, SEMICOLON1right), rest671) + +end +| ( 240, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, + _, _)) :: _ :: ( _, ( MlyValue.symattributes symattributes1, _, _)) + :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, SYMBOL1left, _ +)) :: rest671)) => let val result = MlyValue.aexp (fn _ => let val ( +string as string1) = string1 () + val (symattributes as symattributes1) = symattributes1 () + val (ty as ty1) = ty1 () + in ( +Exp.Prim (PrimKind.Symbol {attributes = symattributes, + name = string, + ty = ty}) +) +end) + in ( LrTable.NT 0, ( result, SYMBOL1left, SEMICOLON1right), rest671) + +end +| ( 241, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, + _, _)) :: _ :: _ :: ( _, ( _, SYMBOL1left, _)) :: rest671)) => let + val result = MlyValue.aexp (fn _ => let val (ty as ty1) = ty1 () + in (Exp.Prim (PrimKind.ISymbol {ty = ty})) +end) + in ( LrTable.NT 0, ( result, SYMBOL1left, SEMICOLON1right), rest671) + +end +| ( 242, ( rest671)) => let val result = MlyValue.ieattributes (fn _ + => ([])) + in ( LrTable.NT 9, ( result, defaultPos, defaultPos), rest671) +end +| ( 243, ( ( _, ( MlyValue.ieattributes ieattributes1, _, +ieattributes1right)) :: ( _, ( MlyValue.id id1, (idleft as id1left), +idright)) :: rest671)) => let val result = MlyValue.ieattributes (fn + _ => let val (id as id1) = id1 () + val (ieattributes as ieattributes1) = ieattributes1 () + in ( +let + val id = Symbol.toString (#1 id) + in + case id of + "cdecl" => PrimKind.ImportExportAttribute.Cdecl :: ieattributes + | "stdcall" => PrimKind.ImportExportAttribute.Stdcall :: ieattributes + | _ => (error (reg (idleft, idright), concat ["invalid attribute", id]) + ; ieattributes) + end +) +end) + in ( LrTable.NT 9, ( result, id1left, ieattributes1right), rest671) + +end +| ( 244, ( rest671)) => let val result = MlyValue.symattributes (fn + _ => ([])) + in ( LrTable.NT 130, ( result, defaultPos, defaultPos), rest671) +end +| ( 245, ( ( _, ( MlyValue.symattributes symattributes1, _, +symattributes1right)) :: ( _, ( MlyValue.id id1, (idleft as id1left), +idright)) :: rest671)) => let val result = MlyValue.symattributes (fn + _ => let val (id as id1) = id1 () + val (symattributes as symattributes1) = symattributes1 () + in ( +let + val id = Symbol.toString (#1 id) + in + case id of + "alloc" => PrimKind.SymbolAttribute.Alloc :: symattributes + | _ => (error (reg (idleft, idright), concat ["invalid attribute", id]) + ; symattributes) + end +) +end) + in ( LrTable.NT 130, ( result, id1left, symattributes1right), rest671 +) +end +| ( 246, ( ( _, ( MlyValue.exp_2c exp_2c1, _, exp_2c1right)) :: _ :: +( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val +result = MlyValue.exp_2c (fn _ => let val (exp as exp1) = exp1 () + val (exp_2c as exp_2c1) = exp_2c1 () + in (exp :: exp_2c) +end) + in ( LrTable.NT 45, ( result, exp1left, exp_2c1right), rest671) +end +| ( 247, ( ( _, ( MlyValue.exp exp2, _, exp2right)) :: _ :: ( _, ( +MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val result = +MlyValue.exp_2c (fn _ => let val exp1 = exp1 () + val exp2 = exp2 () + in ([exp1, exp2]) +end) + in ( LrTable.NT 45, ( result, exp1left, exp2right), rest671) +end +| ( 248, ( ( _, ( MlyValue.exp exp1, exp1left, exp1right)) :: rest671 +)) => let val result = MlyValue.exp_list (fn _ => let val (exp as +exp1) = exp1 () + in ([exp]) +end) + in ( LrTable.NT 46, ( result, exp1left, exp1right), rest671) +end +| ( 249, ( ( _, ( MlyValue.exp_list exp_list1, _, exp_list1right)) :: + _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val + result = MlyValue.exp_list (fn _ => let val (exp as exp1) = exp1 () + val (exp_list as exp_list1) = exp_list1 () + in (exp :: exp_list) +end) + in ( LrTable.NT 46, ( result, exp1left, exp_list1right), rest671) +end +| ( 250, ( ( _, ( MlyValue.patnode patnode1, (patnodeleft as +patnode1left), (patnoderight as patnode1right))) :: rest671)) => let + val result = MlyValue.pat (fn _ => let val (patnode as patnode1) = +patnode1 () + in (Pat.makeRegion' (patnode, patnodeleft, patnoderight)) +end) + in ( LrTable.NT 81, ( result, patnode1left, patnode1right), rest671) + +end +| ( 251, ( ( _, ( MlyValue.pat pat2, _, pat2right)) :: _ :: ( _, ( +MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val result = +MlyValue.patnode (fn _ => let val pat1 = pat1 () + val pat2 = pat2 () + in (Pat.makeAs (pat1, pat2)) +end) + in ( LrTable.NT 85, ( result, pat1left, pat2right), rest671) +end +| ( 252, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( +MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val result = +MlyValue.patnode (fn _ => let val (pat as pat1) = pat1 () + val (ty as ty1) = ty1 () + in (Pat.Constraint (pat, ty)) +end) + in ( LrTable.NT 85, ( result, pat1left, ty1right), rest671) +end +| ( 253, ( ( _, ( MlyValue.apats apats1, apats1left, apats1right)) :: + rest671)) => let val result = MlyValue.patnode (fn _ => let val ( +apats as apats1) = apats1 () + in (Pat.FlatApp (Vector.fromList apats)) +end) + in ( LrTable.NT 85, ( result, apats1left, apats1right), rest671) +end +| ( 254, ( ( _, ( MlyValue.apat apat1, apat1left, apat1right)) :: +rest671)) => let val result = MlyValue.apats (fn _ => let val (apat + as apat1) = apat1 () + in ([apat]) +end) + in ( LrTable.NT 5, ( result, apat1left, apat1right), rest671) +end +| ( 255, ( ( _, ( MlyValue.apats apats1, _, apats1right)) :: ( _, ( +MlyValue.apat apat1, apat1left, _)) :: rest671)) => let val result = +MlyValue.apats (fn _ => let val (apat as apat1) = apat1 () + val (apats as apats1) = apats1 () + in (apat :: apats) +end) + in ( LrTable.NT 5, ( result, apat1left, apats1right), rest671) +end +| ( 256, ( ( _, ( MlyValue.apatnode apatnode1, (apatnodeleft as +apatnode1left), (apatnoderight as apatnode1right))) :: rest671)) => + let val result = MlyValue.apat (fn _ => let val (apatnode as +apatnode1) = apatnode1 () + in (Pat.makeRegion' (apatnode, apatnodeleft, apatnoderight)) +end) + in ( LrTable.NT 2, ( result, apatnode1left, apatnode1right), rest671) + +end +| ( 257, ( ( _, ( MlyValue.longvidNoEqual longvidNoEqual1, +longvidNoEqual1left, longvidNoEqual1right)) :: rest671)) => let val +result = MlyValue.apatnode (fn _ => let val (longvidNoEqual as +longvidNoEqual1) = longvidNoEqual1 () + in ( +Pat.Var {name = longvidNoEqual, + fixop = Fixop.None} +) +end) + in ( LrTable.NT 4, ( result, longvidNoEqual1left, +longvidNoEqual1right), rest671) +end +| ( 258, ( ( _, ( MlyValue.vid vid1, _, vid1right)) :: ( _, ( _, +OP1left, _)) :: rest671)) => let val result = MlyValue.apatnode (fn _ + => let val (vid as vid1) = vid1 () + in ( +Pat.Var {name = Longvid.short vid, + fixop = Fixop.Op} +) +end) + in ( LrTable.NT 4, ( result, OP1left, vid1right), rest671) +end +| ( 259, ( ( _, ( MlyValue.const const1, const1left, const1right)) :: + rest671)) => let val result = MlyValue.apatnode (fn _ => let val ( +const as const1) = const1 () + in ( +let + val _ = + case Const.node const of + Const.Real r => + let + open Layout + in + Control.error + (Const.region const, + seq [str "real constants are not allowed in patterns: ", + Const.layout const], + empty) + end + | _ => () + in + Pat.Const const + end +) +end) + in ( LrTable.NT 4, ( result, const1left, const1right), rest671) +end +| ( 260, ( ( _, ( _, WILD1left, WILD1right)) :: rest671)) => let val + result = MlyValue.apatnode (fn _ => (Pat.Wild)) + in ( LrTable.NT 4, ( result, WILD1left, WILD1right), rest671) +end +| ( 261, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.pats pats1, + _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val result + = MlyValue.apatnode (fn _ => let val (pats as pats1) = pats1 () + in (Pat.tuple (Vector.fromList pats)) +end) + in ( LrTable.NT 4, ( result, LPAREN1left, RPAREN1right), rest671) +end +| ( 262, ( ( _, ( _, _, RBRACKET1right)) :: ( _, ( MlyValue.pats +pats1, _, _)) :: ( _, ( _, LBRACKET1left, _)) :: rest671)) => let val + result = MlyValue.apatnode (fn _ => let val (pats as pats1) = pats1 + () + in (Pat.List (Vector.fromList pats)) +end) + in ( LrTable.NT 4, ( result, LBRACKET1left, RBRACKET1right), rest671) + +end +| ( 263, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( _, LBRACE1left, _)) + :: rest671)) => let val result = MlyValue.apatnode (fn _ => ( +Pat.unit)) + in ( LrTable.NT 4, ( result, LBRACE1left, RBRACE1right), rest671) +end +| ( 264, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.patitems +patitems1, _, _)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let + val result = MlyValue.apatnode (fn _ => let val (patitems as +patitems1) = patitems1 () + in ( +let + val (items, flexible) = patitems + in + Pat.Record {flexible = flexible, + items = Vector.fromList items} + end +) +end) + in ( LrTable.NT 4, ( result, LBRACE1left, RBRACE1right), rest671) +end +| ( 265, ( rest671)) => let val result = MlyValue.pats (fn _ => ([]) +) + in ( LrTable.NT 86, ( result, defaultPos, defaultPos), rest671) +end +| ( 266, ( ( _, ( MlyValue.commapats commapats1, _, commapats1right)) + :: ( _, ( MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val +result = MlyValue.pats (fn _ => let val (pat as pat1) = pat1 () + val (commapats as commapats1) = commapats1 () + in (pat :: commapats) +end) + in ( LrTable.NT 86, ( result, pat1left, commapats1right), rest671) + +end +| ( 267, ( rest671)) => let val result = MlyValue.commapats (fn _ => + ([])) + in ( LrTable.NT 13, ( result, defaultPos, defaultPos), rest671) +end +| ( 268, ( ( _, ( MlyValue.commapats commapats1, _, commapats1right)) + :: ( _, ( MlyValue.pat pat1, _, _)) :: ( _, ( _, COMMA1left, _)) :: +rest671)) => let val result = MlyValue.commapats (fn _ => let val ( +pat as pat1) = pat1 () + val (commapats as commapats1) = commapats1 () + in (pat :: commapats) +end) + in ( LrTable.NT 13, ( result, COMMA1left, commapats1right), rest671) + +end +| ( 269, ( ( _, ( MlyValue.patitems patitems1, _, patitems1right)) :: + _ :: ( _, ( MlyValue.patitem patitem1, patitem1left, _)) :: rest671)) + => let val result = MlyValue.patitems (fn _ => let val (patitem as +patitem1) = patitem1 () + val (patitems as patitems1) = patitems1 () + in ( +let val (items, f) = patitems + in (patitem :: items, f) + end +) +end) + in ( LrTable.NT 84, ( result, patitem1left, patitems1right), rest671) + +end +| ( 270, ( ( _, ( MlyValue.patitem patitem1, patitem1left, +patitem1right)) :: rest671)) => let val result = MlyValue.patitems + (fn _ => let val (patitem as patitem1) = patitem1 () + in ([patitem], false) +end) + in ( LrTable.NT 84, ( result, patitem1left, patitem1right), rest671) + +end +| ( 271, ( ( _, ( _, DOTDOTDOT1left, DOTDOTDOT1right)) :: rest671)) + => let val result = MlyValue.patitems (fn _ => ([], true)) + in ( LrTable.NT 84, ( result, DOTDOTDOT1left, DOTDOTDOT1right), +rest671) +end +| ( 272, ( ( _, ( MlyValue.pat pat1, _, pat1right)) :: _ :: ( _, ( +MlyValue.field field1, field1left, _)) :: rest671)) => let val result + = MlyValue.patitem (fn _ => let val (field as field1) = field1 () + val (pat as pat1) = pat1 () + in ((field, Pat.Item.Field pat)) +end) + in ( LrTable.NT 83, ( result, field1left, pat1right), rest671) +end +| ( 273, ( ( _, ( MlyValue.opaspat opaspat1, _, opaspat1right)) :: ( + _, ( MlyValue.constraint constraint1, _, _)) :: ( _, ( +MlyValue.vidNoEqual vidNoEqual1, vidNoEqual1left, _)) :: rest671)) => + let val result = MlyValue.patitem (fn _ => let val (vidNoEqual as +vidNoEqual1) = vidNoEqual1 () + val (constraint as constraint1) = constraint1 () + val (opaspat as opaspat1) = opaspat1 () + in ( +Field.Symbol (Vid.toSymbol vidNoEqual), + Pat.Item.Vid (vidNoEqual, constraint, opaspat) +) +end) + in ( LrTable.NT 83, ( result, vidNoEqual1left, opaspat1right), +rest671) +end +| ( 274, ( rest671)) => let val result = MlyValue.opaspat (fn _ => ( +NONE)) + in ( LrTable.NT 78, ( result, defaultPos, defaultPos), rest671) +end +| ( 275, ( ( _, ( MlyValue.pat pat1, _, pat1right)) :: ( _, ( _, +AS1left, _)) :: rest671)) => let val result = MlyValue.opaspat (fn _ + => let val (pat as pat1) = pat1 () + in (SOME pat) +end) + in ( LrTable.NT 78, ( result, AS1left, pat1right), rest671) +end +| ( 276, ( ( _, ( MlyValue.tynode tynode1, (tynodeleft as tynode1left +), (tynoderight as tynode1right))) :: rest671)) => let val result = +MlyValue.ty (fn _ => let val (tynode as tynode1) = tynode1 () + in (Type.makeRegion' (tynode, tynodeleft, tynoderight)) +end) + in ( LrTable.NT 137, ( result, tynode1left, tynode1right), rest671) + +end +| ( 277, ( ( _, ( MlyValue.tuple_ty tuple_ty1, tuple_ty1left, +tuple_ty1right)) :: rest671)) => let val result = MlyValue.tynode (fn + _ => let val (tuple_ty as tuple_ty1) = tuple_ty1 () + in (Type.tuple (Vector.fromList tuple_ty)) +end) + in ( LrTable.NT 144, ( result, tuple_ty1left, tuple_ty1right), +rest671) +end +| ( 278, ( ( _, ( MlyValue.ty ty2, _, ty2right)) :: _ :: ( _, ( +MlyValue.ty ty1, ty1left, _)) :: rest671)) => let val result = +MlyValue.tynode (fn _ => let val ty1 = ty1 () + val ty2 = ty2 () + in (Type.arrow (ty1, ty2)) +end) + in ( LrTable.NT 144, ( result, ty1left, ty2right), rest671) +end +| ( 279, ( ( _, ( MlyValue.ty'node ty'node1, ty'node1left, +ty'node1right)) :: rest671)) => let val result = MlyValue.tynode (fn + _ => let val (ty'node as ty'node1) = ty'node1 () + in (ty'node) +end) + in ( LrTable.NT 144, ( result, ty'node1left, ty'node1right), rest671) + +end +| ( 280, ( ( _, ( MlyValue.ty'node ty'node1, (ty'nodeleft as +ty'node1left), (ty'noderight as ty'node1right))) :: rest671)) => let + val result = MlyValue.ty' (fn _ => let val (ty'node as ty'node1) = +ty'node1 () + in (Type.makeRegion' (ty'node, ty'nodeleft, ty'noderight)) +end) + in ( LrTable.NT 138, ( result, ty'node1left, ty'node1right), rest671) + +end +| ( 281, ( ( _, ( MlyValue.tyvar tyvar1, tyvar1left, tyvar1right)) :: + rest671)) => let val result = MlyValue.ty'node (fn _ => let val ( +tyvar as tyvar1) = tyvar1 () + in (Type.Var tyvar) +end) + in ( LrTable.NT 139, ( result, tyvar1left, tyvar1right), rest671) +end +| ( 282, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.tlabels +tlabels1, _, _)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let + val result = MlyValue.ty'node (fn _ => let val (tlabels as tlabels1 +) = tlabels1 () + in (Type.Record (Srecord.fromVector (Vector.fromList tlabels))) +end) + in ( LrTable.NT 139, ( result, LBRACE1left, RBRACE1right), rest671) + +end +| ( 283, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( _, LBRACE1left, _)) + :: rest671)) => let val result = MlyValue.ty'node (fn _ => ( +Type.unit)) + in ( LrTable.NT 139, ( result, LBRACE1left, RBRACE1right), rest671) + +end +| ( 284, ( ( _, ( MlyValue.longtycon longtycon1, _, longtycon1right)) + :: _ :: ( _, ( MlyValue.ty0_pc ty0_pc1, _, _)) :: ( _, ( _, +LPAREN1left, _)) :: rest671)) => let val result = MlyValue.ty'node + (fn _ => let val (ty0_pc as ty0_pc1) = ty0_pc1 () + val (longtycon as longtycon1) = longtycon1 () + in ( +Type.Con (longtycon, + Vector.fromList ty0_pc) +) +end) + in ( LrTable.NT 139, ( result, LPAREN1left, longtycon1right), rest671 +) +end +| ( 285, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.ty ty1, _, + _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val result = +MlyValue.ty'node (fn _ => let val (ty as ty1) = ty1 () + in (Type.node ty) +end) + in ( LrTable.NT 139, ( result, LPAREN1left, RPAREN1right), rest671) + +end +| ( 286, ( ( _, ( MlyValue.longtycon longtycon1, _, longtycon1right)) + :: ( _, ( MlyValue.ty' ty'1, ty'1left, _)) :: rest671)) => let val +result = MlyValue.ty'node (fn _ => let val (ty' as ty'1) = ty'1 () + val (longtycon as longtycon1) = longtycon1 () + in ( +Type.Con (longtycon, + Vector.new1 ty') +) +end) + in ( LrTable.NT 139, ( result, ty'1left, longtycon1right), rest671) + +end +| ( 287, ( ( _, ( MlyValue.longtycon longtycon1, longtycon1left, +longtycon1right)) :: rest671)) => let val result = MlyValue.ty'node + (fn _ => let val (longtycon as longtycon1) = longtycon1 () + in ( +Type.Con (longtycon, + Vector.new0 ()) +) +end) + in ( LrTable.NT 139, ( result, longtycon1left, longtycon1right), +rest671) +end +| ( 288, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( +MlyValue.field field1, field1left, _)) :: rest671)) => let val result + = MlyValue.tlabel (fn _ => let val (field as field1) = field1 () + val (ty as ty1) = ty1 () + in (field, ty) +end) + in ( LrTable.NT 131, ( result, field1left, ty1right), rest671) +end +| ( 289, ( ( _, ( MlyValue.tlabels tlabels1, _, tlabels1right)) :: _ + :: ( _, ( MlyValue.tlabel tlabel1, tlabel1left, _)) :: rest671)) => + let val result = MlyValue.tlabels (fn _ => let val (tlabel as +tlabel1) = tlabel1 () + val (tlabels as tlabels1) = tlabels1 () + in (tlabel :: tlabels) +end) + in ( LrTable.NT 132, ( result, tlabel1left, tlabels1right), rest671) + +end +| ( 290, ( ( _, ( MlyValue.tlabel tlabel1, tlabel1left, tlabel1right) +) :: rest671)) => let val result = MlyValue.tlabels (fn _ => let val + (tlabel as tlabel1) = tlabel1 () + in ([tlabel]) +end) + in ( LrTable.NT 132, ( result, tlabel1left, tlabel1right), rest671) + +end +| ( 291, ( ( _, ( MlyValue.tuple_ty tuple_ty1, _, tuple_ty1right)) :: + _ :: ( _, ( MlyValue.ty' ty'1, ty'1left, _)) :: rest671)) => let val + result = MlyValue.tuple_ty (fn _ => let val (ty' as ty'1) = ty'1 () + val (tuple_ty as tuple_ty1) = tuple_ty1 () + in (ty' :: tuple_ty) +end) + in ( LrTable.NT 136, ( result, ty'1left, tuple_ty1right), rest671) + +end +| ( 292, ( ( _, ( MlyValue.ty' ty'2, _, ty'2right)) :: _ :: ( _, ( +MlyValue.ty' ty'1, ty'1left, _)) :: rest671)) => let val result = +MlyValue.tuple_ty (fn _ => let val ty'1 = ty'1 () + val ty'2 = ty'2 () + in ([ty'1, ty'2]) +end) + in ( LrTable.NT 136, ( result, ty'1left, ty'2right), rest671) +end +| ( 293, ( ( _, ( MlyValue.ty ty2, _, ty2right)) :: _ :: ( _, ( +MlyValue.ty ty1, ty1left, _)) :: rest671)) => let val result = +MlyValue.ty0_pc (fn _ => let val ty1 = ty1 () + val ty2 = ty2 () + in ([ty1, ty2]) +end) + in ( LrTable.NT 140, ( result, ty1left, ty2right), rest671) +end +| ( 294, ( ( _, ( MlyValue.ty0_pc ty0_pc1, _, ty0_pc1right)) :: _ :: +( _, ( MlyValue.ty ty1, ty1left, _)) :: rest671)) => let val result = + MlyValue.ty0_pc (fn _ => let val (ty as ty1) = ty1 () + val (ty0_pc as ty0_pc1) = ty0_pc1 () + in (ty :: ty0_pc) +end) + in ( LrTable.NT 140, ( result, ty1left, ty0_pc1right), rest671) +end +| ( 295, ( ( _, ( MlyValue.const const1, const1left, const1right)) :: + rest671)) => let val result = MlyValue.constOrBool (fn _ => let val + (const as const1) = const1 () + in (const) +end) + in ( LrTable.NT 20, ( result, const1left, const1right), rest671) +end +| ( 296, ( ( _, ( MlyValue.id id1, (idleft as id1left), (idright as +id1right))) :: rest671)) => let val result = MlyValue.constOrBool (fn + _ => let val (id as id1) = id1 () + in ( +let + fun ok b = Const.makeRegion (Const.Bool b, reg (idleft, idright)) + in + case Symbol.toString (#1 id) of + "false" => ok false + | "true" => ok true + | s => (error (#2 id, concat ["unknown boolean constant: ", s]) + ; ok false) + end +) +end) + in ( LrTable.NT 20, ( result, id1left, id1right), rest671) +end +| ( 297, ( ( _, ( MlyValue.const' const'1, (const'left as const'1left +), (const'right as const'1right))) :: rest671)) => let val result = +MlyValue.const (fn _ => let val (const' as const'1) = const'1 () + in ( +Const.makeRegion + (const', reg (const'left, const'right)) +) +end) + in ( LrTable.NT 15, ( result, const'1left, const'1right), rest671) + +end +| ( 298, ( ( _, ( MlyValue.int int1, int1left, int1right)) :: rest671 +)) => let val result = MlyValue.const' (fn _ => let val (int as int1 +) = int1 () + in (Const.Int int) +end) + in ( LrTable.NT 16, ( result, int1left, int1right), rest671) +end +| ( 299, ( ( _, ( MlyValue.word word1, word1left, word1right)) :: +rest671)) => let val result = MlyValue.const' (fn _ => let val (word + as word1) = word1 () + in (Const.Word word) +end) + in ( LrTable.NT 16, ( result, word1left, word1right), rest671) +end +| ( 300, ( ( _, ( MlyValue.REAL REAL1, REAL1left, REAL1right)) :: +rest671)) => let val result = MlyValue.const' (fn _ => let val (REAL + as REAL1) = REAL1 () + in (Const.Real REAL) +end) + in ( LrTable.NT 16, ( result, REAL1left, REAL1right), rest671) +end +| ( 301, ( ( _, ( MlyValue.STRING STRING1, STRING1left, STRING1right) +) :: rest671)) => let val result = MlyValue.const' (fn _ => let val + (STRING as STRING1) = STRING1 () + in (Const.String STRING) +end) + in ( LrTable.NT 16, ( result, STRING1left, STRING1right), rest671) + +end +| ( 302, ( ( _, ( MlyValue.CHAR CHAR1, CHAR1left, CHAR1right)) :: +rest671)) => let val result = MlyValue.const' (fn _ => let val (CHAR + as CHAR1) = CHAR1 () + in (Const.Char CHAR) +end) + in ( LrTable.NT 16, ( result, CHAR1left, CHAR1right), rest671) +end +| ( 303, ( ( _, ( MlyValue.STRING STRING1, STRING1left, STRING1right) +) :: rest671)) => let val result = MlyValue.string (fn _ => let val + (STRING as STRING1) = STRING1 () + in ( +CharVector.tabulate + (Vector.length STRING, fn i => + Char.fromInt (Int.fromIntInf (Vector.sub (STRING, i)))) +) +end) + in ( LrTable.NT 129, ( result, STRING1left, STRING1right), rest671) + +end +| ( 304, ( ( _, ( MlyValue.longidNoAsterisk longidNoAsterisk1, +longidNoAsterisk1left, longidNoAsterisk1right)) :: rest671)) => let + val result = MlyValue.idNoAsterisk (fn _ => let val ( +longidNoAsterisk as longidNoAsterisk1) = longidNoAsterisk1 () + in (ensureNonqualified longidNoAsterisk) +end) + in ( LrTable.NT 62, ( result, longidNoAsterisk1left, +longidNoAsterisk1right), rest671) +end +| ( 305, ( ( _, ( MlyValue.idNoAsterisk idNoAsterisk1, +idNoAsterisk1left, idNoAsterisk1right)) :: rest671)) => let val +result = MlyValue.id (fn _ => let val (idNoAsterisk as idNoAsterisk1) + = idNoAsterisk1 () + in (idNoAsterisk) +end) + in ( LrTable.NT 60, ( result, idNoAsterisk1left, idNoAsterisk1right), + rest671) +end +| ( 306, ( ( _, ( _, (ASTERISKleft as ASTERISK1left), (ASTERISKright + as ASTERISK1right))) :: rest671)) => let val result = MlyValue.id + (fn _ => ((Symbol.asterisk, reg (ASTERISKleft, ASTERISKright)))) + in ( LrTable.NT 60, ( result, ASTERISK1left, ASTERISK1right), rest671 +) +end +| ( 307, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) + => let val result = MlyValue.idEqual (fn _ => let val (id as id1) = + id1 () + in (id) +end) + in ( LrTable.NT 61, ( result, id1left, id1right), rest671) +end +| ( 308, ( ( _, ( _, (EQUALOPleft as EQUALOP1left), (EQUALOPright as +EQUALOP1right))) :: rest671)) => let val result = MlyValue.idEqual + (fn _ => ((Symbol.equal, reg (EQUALOPleft, EQUALOPright)))) + in ( LrTable.NT 61, ( result, EQUALOP1left, EQUALOP1right), rest671) + +end +| ( 309, ( ( _, ( MlyValue.longidNoAsterisk longidNoAsterisk1, +longidNoAsterisk1left, longidNoAsterisk1right)) :: rest671)) => let + val result = MlyValue.longid (fn _ => let val (longidNoAsterisk as +longidNoAsterisk1) = longidNoAsterisk1 () + in (longidNoAsterisk) +end) + in ( LrTable.NT 65, ( result, longidNoAsterisk1left, +longidNoAsterisk1right), rest671) +end +| ( 310, ( ( _, ( _, (ASTERISKleft as ASTERISK1left), (ASTERISKright + as ASTERISK1right))) :: rest671)) => let val result = +MlyValue.longid (fn _ => ( +([Symbol.asterisk], reg (ASTERISKleft, ASTERISKright)))) + in ( LrTable.NT 65, ( result, ASTERISK1left, ASTERISK1right), rest671 +) +end +| ( 311, ( ( _, ( MlyValue.LONGID LONGID1, (LONGIDleft as LONGID1left +), (LONGIDright as LONGID1right))) :: rest671)) => let val result = +MlyValue.longidNoAsterisk (fn _ => let val (LONGID as LONGID1) = +LONGID1 () + in ( +let + val syms = List.map (String.split (LONGID, #"."), Symbol.fromString) + in + (syms, reg (LONGIDleft, LONGIDright)) + end +) +end) + in ( LrTable.NT 67, ( result, LONGID1left, LONGID1right), rest671) + +end +| ( 312, ( ( _, ( MlyValue.longid longid1, longid1left, longid1right) +) :: rest671)) => let val result = MlyValue.longidEqual (fn _ => let + val (longid as longid1) = longid1 () + in (longid) +end) + in ( LrTable.NT 66, ( result, longid1left, longid1right), rest671) + +end +| ( 313, ( ( _, ( _, (EQUALOPleft as EQUALOP1left), (EQUALOPright as +EQUALOP1right))) :: rest671)) => let val result = +MlyValue.longidEqual (fn _ => ( +([Symbol.equal], reg (EQUALOPleft, EQUALOPright)))) + in ( LrTable.NT 66, ( result, EQUALOP1left, EQUALOP1right), rest671) + +end +| ( 314, ( ( _, ( MlyValue.idEqual idEqual1, idEqual1left, +idEqual1right)) :: rest671)) => let val result = MlyValue.vid (fn _ + => let val (idEqual as idEqual1) = idEqual1 () + in (Vid.fromSymbol idEqual) +end) + in ( LrTable.NT 160, ( result, idEqual1left, idEqual1right), rest671) + +end +| ( 315, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) + => let val result = MlyValue.vidNoEqual (fn _ => let val (id as id1 +) = id1 () + in (Vid.fromSymbol id) +end) + in ( LrTable.NT 161, ( result, id1left, id1right), rest671) +end +| ( 316, ( ( _, ( MlyValue.vid vid1, vid1left, vid1right)) :: rest671 +)) => let val result = MlyValue.vids (fn _ => let val (vid as vid1) + = vid1 () + in ([vid]) +end) + in ( LrTable.NT 162, ( result, vid1left, vid1right), rest671) +end +| ( 317, ( ( _, ( MlyValue.vids vids1, _, vids1right)) :: ( _, ( +MlyValue.vid vid1, vid1left, _)) :: rest671)) => let val result = +MlyValue.vids (fn _ => let val (vid as vid1) = vid1 () + val (vids as vids1) = vids1 () + in (vid::vids) +end) + in ( LrTable.NT 162, ( result, vid1left, vids1right), rest671) +end +| ( 318, ( ( _, ( MlyValue.idEqual idEqual1, idEqual1left, +idEqual1right)) :: rest671)) => let val result = MlyValue.var (fn _ + => let val (idEqual as idEqual1) = idEqual1 () + in (Var.fromSymbol idEqual) +end) + in ( LrTable.NT 159, ( result, idEqual1left, idEqual1right), rest671) + +end +| ( 319, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) + => let val result = MlyValue.con (fn _ => let val (id as id1) = id1 + () + in (Con.fromSymbol id) +end) + in ( LrTable.NT 14, ( result, id1left, id1right), rest671) +end +| ( 320, ( ( _, ( MlyValue.idNoAsterisk idNoAsterisk1, +idNoAsterisk1left, idNoAsterisk1right)) :: rest671)) => let val +result = MlyValue.tycon (fn _ => let val (idNoAsterisk as +idNoAsterisk1) = idNoAsterisk1 () + in (Tycon.fromSymbol idNoAsterisk) +end) + in ( LrTable.NT 143, ( result, idNoAsterisk1left, idNoAsterisk1right) +, rest671) +end +| ( 321, ( ( _, ( MlyValue.TYVAR TYVAR1, (TYVARleft as TYVAR1left), ( +TYVARright as TYVAR1right))) :: rest671)) => let val result = +MlyValue.tyvar (fn _ => let val (TYVAR as TYVAR1) = TYVAR1 () + in ( +Tyvar.newString (TYVAR, {left = TYVARleft, + right = TYVARright}) +) +end) + in ( LrTable.NT 150, ( result, TYVAR1left, TYVAR1right), rest671) +end +| ( 322, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) + => let val result = MlyValue.field (fn _ => let val (id as id1) = +id1 () + in (Field.Symbol (#1 id)) +end) + in ( LrTable.NT 52, ( result, id1left, id1right), rest671) +end +| ( 323, ( ( _, ( MlyValue.int int1, (intleft as int1left), (intright + as int1right))) :: rest671)) => let val result = MlyValue.field (fn + _ => let val (int as int1) = int1 () + in ( +let + val int = + IntInf.toInt int + handle Exn.Overflow => + (error (reg (intleft, intright), + "field too huge") + ; 0) + in + Field.Int + (if int <= 0 + then (error (reg (intleft, intright), + "nonpositive field") + ; ~1) + else + int - 1) + end +) +end) + in ( LrTable.NT 52, ( result, int1left, int1right), rest671) +end +| ( 324, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) + => let val result = MlyValue.strid (fn _ => let val (id as id1) = +id1 () + in (Strid.fromSymbol id) +end) + in ( LrTable.NT 128, ( result, id1left, id1right), rest671) +end +| ( 325, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) + => let val result = MlyValue.sigid (fn _ => let val (id as id1) = +id1 () + in (Sigid.fromSymbol id) +end) + in ( LrTable.NT 106, ( result, id1left, id1right), rest671) +end +| ( 326, ( ( _, ( MlyValue.sigid sigid1, sigid1left, sigid1right)) :: + rest671)) => let val result = MlyValue.sigids (fn _ => let val ( +sigid as sigid1) = sigid1 () + in ([sigid]) +end) + in ( LrTable.NT 107, ( result, sigid1left, sigid1right), rest671) +end +| ( 327, ( ( _, ( MlyValue.sigids sigids1, _, sigids1right)) :: ( _, +( MlyValue.sigid sigid1, sigid1left, _)) :: rest671)) => let val +result = MlyValue.sigids (fn _ => let val (sigid as sigid1) = sigid1 + () + val (sigids as sigids1) = sigids1 () + in (sigid :: sigids) +end) + in ( LrTable.NT 107, ( result, sigid1left, sigids1right), rest671) + +end +| ( 328, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) + => let val result = MlyValue.fctid (fn _ => let val (id as id1) = +id1 () + in (Fctid.fromSymbol id) +end) + in ( LrTable.NT 51, ( result, id1left, id1right), rest671) +end +| ( 329, ( ( _, ( MlyValue.longidNoAsterisk longidNoAsterisk1, +longidNoAsterisk1left, longidNoAsterisk1right)) :: rest671)) => let + val result = MlyValue.longtycon (fn _ => let val (longidNoAsterisk + as longidNoAsterisk1) = longidNoAsterisk1 () + in (Longtycon.fromSymbols longidNoAsterisk) +end) + in ( LrTable.NT 71, ( result, longidNoAsterisk1left, +longidNoAsterisk1right), rest671) +end +| ( 330, ( ( _, ( MlyValue.longidEqual longidEqual1, longidEqual1left +, longidEqual1right)) :: rest671)) => let val result = +MlyValue.longvar (fn _ => let val (longidEqual as longidEqual1) = +longidEqual1 () + in (Longvar.fromSymbols longidEqual) +end) + in ( LrTable.NT 73, ( result, longidEqual1left, longidEqual1right), +rest671) +end +| ( 331, ( ( _, ( MlyValue.longidEqual longidEqual1, longidEqual1left +, longidEqual1right)) :: rest671)) => let val result = +MlyValue.longvid (fn _ => let val (longidEqual as longidEqual1) = +longidEqual1 () + in (Longvid.fromSymbols longidEqual) +end) + in ( LrTable.NT 75, ( result, longidEqual1left, longidEqual1right), +rest671) +end +| ( 332, ( ( _, ( MlyValue.longid longid1, longid1left, longid1right) +) :: rest671)) => let val result = MlyValue.longvidNoEqual (fn _ => + let val (longid as longid1) = longid1 () + in (Longvid.fromSymbols longid) +end) + in ( LrTable.NT 76, ( result, longid1left, longid1right), rest671) + +end +| ( 333, ( ( _, ( MlyValue.longid longid1, longid1left, longid1right) +) :: rest671)) => let val result = MlyValue.longcon (fn _ => let val + (longid as longid1) = longid1 () + in (Longcon.fromSymbols longid) +end) + in ( LrTable.NT 64, ( result, longid1left, longid1right), rest671) + +end +| ( 334, ( ( _, ( MlyValue.longid longid1, longid1left, longid1right) +) :: rest671)) => let val result = MlyValue.longstrid (fn _ => let + val (longid as longid1) = longid1 () + in (Longstrid.fromSymbols longid) +end) + in ( LrTable.NT 68, ( result, longid1left, longid1right), rest671) + +end +| ( 335, ( ( _, ( MlyValue.longstrid longstrid1, longstrid1left, +longstrid1right)) :: rest671)) => let val result = +MlyValue.longstrids (fn _ => let val (longstrid as longstrid1) = +longstrid1 () + in ([longstrid]) +end) + in ( LrTable.NT 70, ( result, longstrid1left, longstrid1right), +rest671) +end +| ( 336, ( ( _, ( MlyValue.longstrids longstrids1, _, +longstrids1right)) :: ( _, ( MlyValue.longstrid longstrid1, +longstrid1left, _)) :: rest671)) => let val result = +MlyValue.longstrids (fn _ => let val (longstrid as longstrid1) = +longstrid1 () + val (longstrids as longstrids1) = longstrids1 () + in (longstrid :: longstrids) +end) + in ( LrTable.NT 70, ( result, longstrid1left, longstrids1right), +rest671) +end +| _ => raise (mlyAction i392) +end +val void = MlyValue.VOID +val extract = fn a => (fn MlyValue.program x => x +| _ => let exception ParseInternal + in raise ParseInternal end) a () +end +end +structure Tokens : ML_TOKENS = +struct +type svalue = ParserData.svalue +type ('a,'b) token = ('a,'b) Token.token +fun CHAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,( +ParserData.MlyValue.CHAR (fn () => i),p1,p2)) +fun INT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,( +ParserData.MlyValue.INT (fn () => i),p1,p2)) +fun LONGID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,( +ParserData.MlyValue.LONGID (fn () => i),p1,p2)) +fun REAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,( +ParserData.MlyValue.REAL (fn () => i),p1,p2)) +fun STRING (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,( +ParserData.MlyValue.STRING (fn () => i),p1,p2)) +fun TYVAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,( +ParserData.MlyValue.TYVAR (fn () => i),p1,p2)) +fun WORD (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,( +ParserData.MlyValue.WORD (fn () => i),p1,p2)) +fun ABSTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,( +ParserData.MlyValue.VOID,p1,p2)) +fun AND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,( +ParserData.MlyValue.VOID,p1,p2)) +fun ANDALSO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,( +ParserData.MlyValue.VOID,p1,p2)) +fun ARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,( +ParserData.MlyValue.VOID,p1,p2)) +fun AS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,( +ParserData.MlyValue.VOID,p1,p2)) +fun ASTERISK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,( +ParserData.MlyValue.VOID,p1,p2)) +fun BAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,( +ParserData.MlyValue.VOID,p1,p2)) +fun CASE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,( +ParserData.MlyValue.VOID,p1,p2)) +fun COLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,( +ParserData.MlyValue.VOID,p1,p2)) +fun COLONGT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,( +ParserData.MlyValue.VOID,p1,p2)) +fun COMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,( +ParserData.MlyValue.VOID,p1,p2)) +fun DATATYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,( +ParserData.MlyValue.VOID,p1,p2)) +fun DOTDOTDOT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,( +ParserData.MlyValue.VOID,p1,p2)) +fun ELSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,( +ParserData.MlyValue.VOID,p1,p2)) +fun END (p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,( +ParserData.MlyValue.VOID,p1,p2)) +fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,( +ParserData.MlyValue.VOID,p1,p2)) +fun EQUALOP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,( +ParserData.MlyValue.VOID,p1,p2)) +fun EQTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,( +ParserData.MlyValue.VOID,p1,p2)) +fun EXCEPTION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,( +ParserData.MlyValue.VOID,p1,p2)) +fun DO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,( +ParserData.MlyValue.VOID,p1,p2)) +fun DARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 27,( +ParserData.MlyValue.VOID,p1,p2)) +fun FN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,( +ParserData.MlyValue.VOID,p1,p2)) +fun FUN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,( +ParserData.MlyValue.VOID,p1,p2)) +fun FUNCTOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,( +ParserData.MlyValue.VOID,p1,p2)) +fun HANDLE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,( +ParserData.MlyValue.VOID,p1,p2)) +fun HASH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,( +ParserData.MlyValue.VOID,p1,p2)) +fun IF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,( +ParserData.MlyValue.VOID,p1,p2)) +fun IN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,( +ParserData.MlyValue.VOID,p1,p2)) +fun INCLUDE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,( +ParserData.MlyValue.VOID,p1,p2)) +fun INFIX (p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,( +ParserData.MlyValue.VOID,p1,p2)) +fun INFIXR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,( +ParserData.MlyValue.VOID,p1,p2)) +fun LBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,( +ParserData.MlyValue.VOID,p1,p2)) +fun LBRACKET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,( +ParserData.MlyValue.VOID,p1,p2)) +fun LET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,( +ParserData.MlyValue.VOID,p1,p2)) +fun LOCAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,( +ParserData.MlyValue.VOID,p1,p2)) +fun LPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 42,( +ParserData.MlyValue.VOID,p1,p2)) +fun NONFIX (p1,p2) = Token.TOKEN (ParserData.LrTable.T 43,( +ParserData.MlyValue.VOID,p1,p2)) +fun ORELSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 44,( +ParserData.MlyValue.VOID,p1,p2)) +fun OF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 45,( +ParserData.MlyValue.VOID,p1,p2)) +fun OP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 46,( +ParserData.MlyValue.VOID,p1,p2)) +fun OPEN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 47,( +ParserData.MlyValue.VOID,p1,p2)) +fun OVERLOAD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 48,( +ParserData.MlyValue.VOID,p1,p2)) +fun RAISE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 49,( +ParserData.MlyValue.VOID,p1,p2)) +fun RBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 50,( +ParserData.MlyValue.VOID,p1,p2)) +fun RBRACKET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 51,( +ParserData.MlyValue.VOID,p1,p2)) +fun REC (p1,p2) = Token.TOKEN (ParserData.LrTable.T 52,( +ParserData.MlyValue.VOID,p1,p2)) +fun RPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 53,( +ParserData.MlyValue.VOID,p1,p2)) +fun SEMICOLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 54,( +ParserData.MlyValue.VOID,p1,p2)) +fun SHARING (p1,p2) = Token.TOKEN (ParserData.LrTable.T 55,( +ParserData.MlyValue.VOID,p1,p2)) +fun SIG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 56,( +ParserData.MlyValue.VOID,p1,p2)) +fun SIGNATURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 57,( +ParserData.MlyValue.VOID,p1,p2)) +fun STRUCT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 58,( +ParserData.MlyValue.VOID,p1,p2)) +fun STRUCTURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 59,( +ParserData.MlyValue.VOID,p1,p2)) +fun THEN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 60,( +ParserData.MlyValue.VOID,p1,p2)) +fun TYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 61,( +ParserData.MlyValue.VOID,p1,p2)) +fun VAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 62,( +ParserData.MlyValue.VOID,p1,p2)) +fun WHERE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 63,( +ParserData.MlyValue.VOID,p1,p2)) +fun WHILE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 64,( +ParserData.MlyValue.VOID,p1,p2)) +fun WILD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 65,( +ParserData.MlyValue.VOID,p1,p2)) +fun WITH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 66,( +ParserData.MlyValue.VOID,p1,p2)) +fun WITHTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 67,( +ParserData.MlyValue.VOID,p1,p2)) +fun BUILD_CONST (p1,p2) = Token.TOKEN (ParserData.LrTable.T 68,( +ParserData.MlyValue.VOID,p1,p2)) +fun COMMAND_LINE_CONST (p1,p2) = Token.TOKEN (ParserData.LrTable.T 69 +,(ParserData.MlyValue.VOID,p1,p2)) +fun CONST (p1,p2) = Token.TOKEN (ParserData.LrTable.T 70,( +ParserData.MlyValue.VOID,p1,p2)) +fun ADDRESS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 71,( +ParserData.MlyValue.VOID,p1,p2)) +fun EXPORT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 72,( +ParserData.MlyValue.VOID,p1,p2)) +fun IMPORT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 73,( +ParserData.MlyValue.VOID,p1,p2)) +fun SYMBOL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 74,( +ParserData.MlyValue.VOID,p1,p2)) +fun PRIM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 75,( +ParserData.MlyValue.VOID,p1,p2)) +end +end diff --git a/lang/mlton/files/ml.lex.sml b/lang/mlton/files/ml.lex.sml new file mode 100644 index 000000000000..0be061ef80b9 --- /dev/null +++ b/lang/mlton/files/ml.lex.sml @@ -0,0 +1,5660 @@ +type int = Int.int +functor MLLexFun (structure Tokens : ML_TOKENS)= + struct + structure UserDeclarations = + struct +(* Heavily modified from the SML/NJ sources by sweeks@sweeks.com. *) + +(* ml.lex + * + * Copyright 1989 by AT&T Bell Laboratories + * + * $Log: ml.lex,v $ + * Revision 1.3 1997/05/22 20:17:22 jhr + * Changed lexer to accept "1e1" style floating-point literals. + * + * Revision 1.2 1997/01/28 23:20:40 jhr + * Integer and word literals are now represented by IntInf.int (instead of + * as strings). + * + *) + +type int = Int.t + +type svalue = Tokens.svalue +type pos = SourcePos.t +type lexresult = (svalue, pos) Tokens.token +type lexarg = {source: Source.t} +type arg = lexarg +type ('a,'b) token = ('a,'b) Tokens.token + +val charlist: IntInf.t list ref = ref [] +val colNum: int ref = ref 0 +val commentLevel: int ref = ref 0 +val commentStart = ref SourcePos.bogus +val lineFile: File.t ref = ref "" +val lineNum: int ref = ref 0 +val stringStart = ref SourcePos.bogus +val stringtype = ref false + +fun lineDirective (source, file, yypos) = + Source.lineDirective (source, file, + {lineNum = !lineNum, + lineStart = yypos - !colNum}) + +fun addString (s: string) = + charlist := + String.fold (s, !charlist, fn (c, ac) => Int.toIntInf (Char.ord c) :: ac) + +fun addChar (c: char) = addString (String.fromChar c) + +fun inc (ri as ref (i: int)) = ri := i + 1 + +fun dec (ri as ref (i: int)) = ri := i - 1 + +fun error (source, left, right, msg) = + Control.errorStr (Region.make {left = Source.getPos (source, left), + right = Source.getPos (source, right)}, + msg) + +fun stringError (source, right, msg) = + Control.errorStr (Region.make {left = !stringStart, + right = Source.getPos (source, right)}, + msg) + +fun addOrd (i: IntInf.t): unit = List.push (charlist, i) + +fun addHexEscape (s: string, source, yypos): unit = + case StringCvt.scanString (Pervasive.IntInf.scan StringCvt.HEX) s of + NONE => stringError (source, yypos, "illegal unicode escape") + | SOME i => addOrd i + +val eof: lexarg -> lexresult = + fn {source, ...} => + let + val pos = Source.lineStart source + val _ = + if !commentLevel > 0 + then Control.errorStr (Region.make {left = !commentStart, + right = pos}, + "unclosed comment") + else () + in + Tokens.EOF (pos, pos) + end + +val size = String.size + +fun tok (t, s, l, r) = + let + val l = Source.getPos (s, l) + val r = Source.getPos (s, r) + val _ = + if true + then () + else + print (concat ["tok (", + SourcePos.toString l, + ", " , + SourcePos.toString r, + ")\n"]) + in + t (l, r) + end + +fun tok' (t, x, s, l) = tok (fn (l, r) => t (x, l, r), s, l, l + size x) + +fun int (yytext, drop, source, yypos, {negate: bool}, radix) = + Tokens.INT ({digits = String.dropPrefix (yytext, drop), + negate = negate, + radix = radix}, + Source.getPos (source, yypos), + Source.getPos (source, yypos + size yytext)) + +fun word (yytext, drop, source, yypos, radix) = + Tokens.WORD ({digits = String.dropPrefix (yytext, drop), + radix = radix}, + Source.getPos (source, yypos), + Source.getPos (source, yypos + size yytext)) + + +end (* end of user routines *) +exception LexError (* raised if illegal leaf action tried *) +structure Internal = + struct + +datatype yyfinstate = N of int +type statedata = {fin : yyfinstate list, trans: int Vector.vector} +(* transition & final state table *) +val tab = let +fun decode s k = + let val k' = k + k + val hi = Char.ord(String.sub(s, k')) + val lo = Char.ord(String.sub(s, k' + 1)) + in hi * 256 + lo end +val s = [ + (0,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (1,129, +"\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\ +\\000\017\001\041\001\044\000\017\001\041\001\043\000\017\000\017\ +\\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\ +\\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\ +\\001\041\000\190\001\040\001\038\000\190\000\190\000\190\001\036\ +\\001\028\001\027\000\190\000\190\001\026\001\024\001\021\000\190\ +\\001\014\001\012\001\012\001\012\001\012\001\012\001\012\001\012\ +\\001\012\001\012\001\010\001\009\000\190\001\007\000\190\000\190\ +\\000\190\000\038\000\038\000\038\000\038\000\038\000\038\000\038\ +\\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\ +\\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\ +\\000\038\000\038\000\038\001\006\000\190\001\005\000\190\000\191\ +\\000\190\000\176\000\038\000\172\000\163\000\144\000\136\000\038\ +\\000\130\000\118\000\038\000\038\000\111\000\038\000\105\000\095\ +\\000\038\000\038\000\088\000\065\000\058\000\038\000\055\000\040\ +\\000\038\000\038\000\038\000\037\000\036\000\035\000\018\000\017\ +\\000\017" +), + (3,129, +"\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\050\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\048\001\045\001\046\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\ +\\001\045" +), + (5,129, +"\001\051\001\051\001\051\001\051\001\051\001\051\001\051\001\051\ +\\001\051\001\051\001\088\001\051\001\051\001\087\001\051\001\051\ +\\001\051\001\051\001\051\001\051\001\051\001\051\001\051\001\051\ +\\001\051\001\051\001\051\001\051\001\051\001\051\001\051\001\051\ +\\001\052\001\052\001\086\001\052\001\052\001\052\001\052\001\052\ +\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\ +\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\ +\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\ +\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\ +\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\ +\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\ +\\001\052\001\052\001\052\001\052\001\053\001\052\001\052\001\052\ +\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\ +\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\ +\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\ +\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\051\ +\\001\051" +), + (7,129, +"\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\091\001\094\001\089\001\091\001\093\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\091\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\090\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\ +\\001\089" +), + (9,129, +"\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\000\000\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\098\001\095\001\095\001\095\001\095\001\095\ +\\001\096\001\096\001\096\001\096\001\096\001\096\001\096\001\096\ +\\001\096\001\096\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095" +), + (11,129, +"\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\000\000\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\103\001\100\ +\\001\101\001\101\001\101\001\101\001\101\001\101\001\101\001\101\ +\\001\101\001\101\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\ +\\001\100" +), + (13,129, +"\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\107\000\000\001\095\001\107\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\107\001\095\001\106\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\104\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\ +\\001\095" +), + (15,129, +"\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\111\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\114\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\112\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\ +\\001\110" +), + (18,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\019\000\000\000\019\000\019\000\019\000\019\000\000\ +\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\ +\\000\032\000\023\000\023\000\023\000\023\000\023\000\023\000\023\ +\\000\023\000\023\000\019\000\000\000\019\000\019\000\019\000\019\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\000" +), + (19,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\019\000\000\000\019\000\019\000\019\000\019\000\000\ +\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\019\000\000\000\019\000\019\000\019\000\019\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\000" +), + (20,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\021\000\000\000\021\000\021\000\021\000\021\000\000\ +\\000\000\000\000\000\021\000\021\000\000\000\021\000\000\000\021\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\021\000\000\000\021\000\021\000\021\000\021\ +\\000\021\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\000\000\021\000\000\000\021\000\000\ +\\000\021\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\000\000\021\000\000\000\021\000\000\ +\\000\000" +), + (21,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\021\000\000\000\021\000\021\000\021\000\021\000\000\ +\\000\000\000\000\000\021\000\021\000\000\000\021\000\020\000\021\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\021\000\000\000\021\000\021\000\021\000\021\ +\\000\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\021\000\000\000\021\000\000\ +\\000\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\021\000\000\000\021\000\000\ +\\000\000" +), + (22,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\000\000\000\000\000\000\000\000\022\ +\\000\000\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\ +\\000\022\000\022\000\022\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (23,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\ +\\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\ +\\000\023\000\023\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (24,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\ +\\000\026\000\026\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\025\000\000\ +\\000\000" +), + (25,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\ +\\000\026\000\026\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (27,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\ +\\000\028\000\028\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (28,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\ +\\000\028\000\028\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\029\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\029\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (29,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\ +\\000\031\000\031\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\030\000\000\ +\\000\000" +), + (30,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\ +\\000\031\000\031\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (32,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\ +\\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\ +\\000\023\000\023\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\033\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (33,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\034\ +\\000\034\000\034\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\034\000\034\000\034\000\034\000\034\000\034\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\034\000\034\000\034\000\034\000\034\000\034\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (38,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (40,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\048\000\041\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (41,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\042\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (42,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\043\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (43,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\044\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (44,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\045\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (45,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\046\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (46,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\047\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (48,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\052\000\039\000\039\ +\\000\039\000\049\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (49,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\050\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (50,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\051\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (52,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\053\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (53,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\054\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (55,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\056\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (56,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\057\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (58,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\062\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\059\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (59,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\060\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (60,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\061\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (62,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\063\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (63,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\064\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (65,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\082\000\074\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\066\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (66,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\067\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (67,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\068\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (68,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\069\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (69,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\070\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (70,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\071\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (71,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\072\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (72,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\073\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (74,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\075\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (75,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\076\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (76,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\077\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (77,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\078\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (78,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\079\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (79,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\080\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (80,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\081\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (82,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\083\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (83,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\084\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (84,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\085\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (85,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\086\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (86,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\087\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (88,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\091\000\039\000\039\000\039\000\089\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (89,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\090\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (91,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\092\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (92,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\093\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (93,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\094\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (95,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\104\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\101\000\039\000\096\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (96,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\097\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (97,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\098\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (98,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\099\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (99,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\100\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (101,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\102\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (102,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\103\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (105,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\106\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (106,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\107\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (107,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\108\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (108,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\109\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (109,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\110\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (111,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\116\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\112\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (112,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\113\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (113,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\114\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (114,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\115\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (116,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\117\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (118,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\129\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\119\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (119,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\124\000\039\000\039\000\120\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (120,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\121\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (121,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\122\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (122,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\123\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (124,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\125\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (125,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\126\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (126,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\127\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (127,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\128\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (130,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\131\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (131,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\132\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (132,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\133\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (133,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\134\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (134,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\135\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (136,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\143\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\137\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (137,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\138\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (138,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\139\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (139,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\140\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (140,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\141\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (141,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\142\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (144,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\160\000\039\000\158\000\039\ +\\000\039\000\153\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\145\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (145,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\146\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (146,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\147\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (147,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\148\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (148,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\149\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (149,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\150\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (150,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\151\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (151,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\152\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (153,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\154\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (154,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\155\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (155,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\156\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (156,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\157\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (158,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\159\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (160,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\161\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (161,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\162\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (163,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\165\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\164\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (165,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\166\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (166,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\167\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (167,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\168\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (168,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\169\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (169,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\170\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (170,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\171\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (172,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\173\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (173,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\174\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (174,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\175\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (176,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\184\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\178\000\039\ +\\000\039\000\039\000\039\000\177\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (178,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\179\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (179,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\180\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (180,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\181\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (181,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\182\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (182,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\183\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (184,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\185\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (185,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\186\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (186,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\187\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (187,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\188\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (188,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\ +\\000\000\000\039\000\039\000\039\000\039\000\189\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\ +\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (191,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\254\000\243\000\222\000\000\000\216\000\000\000\000\ +\\000\000\000\210\000\000\000\000\000\000\000\000\000\000\000\202\ +\\000\198\000\000\000\000\000\192\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (192,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (193,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\194\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (194,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\195\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (195,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (196,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (198,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\199\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (199,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (200,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (202,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\203\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (203,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\204\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (204,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\205\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (205,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (206,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\207\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (207,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\208\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (208,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\209\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (210,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\211\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (211,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (212,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (213,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\214\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (214,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\215\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (216,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (217,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (218,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\219\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (219,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\220\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (220,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\221\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (222,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\223\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (223,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\227\000\224\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (224,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (225,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\226\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (227,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\228\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (228,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\229\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (229,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\230\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (230,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\231\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (231,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\232\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (232,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (233,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\234\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (234,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\235\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (235,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\236\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (236,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\237\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (237,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\238\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (238,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (239,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (240,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\241\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (241,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (243,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (244,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (245,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (246,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\247\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (247,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\248\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (248,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (249,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\250\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (250,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\251\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (251,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\252\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (252,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (254,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\255\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (255,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (256,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\001\001\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (257,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\001\002\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (258,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\001\003\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (259,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\001\004\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (263,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\019\000\000\000\019\000\019\000\019\000\019\000\000\ +\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\019\000\000\000\019\000\019\001\008\000\019\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\000" +), + (266,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\019\000\000\000\019\000\019\000\019\000\019\000\000\ +\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\019\000\000\000\019\000\019\001\011\000\019\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\000" +), + (268,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\ +\\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\ +\\001\013\001\013\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (270,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\ +\\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\ +\\001\013\001\013\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\ +\\001\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (271,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\ +\\001\016\001\016\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\016\001\016\001\016\001\016\001\016\001\016\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\016\001\016\001\016\001\016\001\016\001\016\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (273,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\020\001\020\001\020\001\020\001\020\001\020\001\020\001\020\ +\\001\020\001\020\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (274,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\019\001\019\001\019\001\019\001\019\001\019\001\019\001\019\ +\\001\019\001\019\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\019\001\019\001\019\001\019\001\019\001\019\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\019\001\019\001\019\001\019\001\019\001\019\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (276,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\020\001\020\001\020\001\020\001\020\001\020\001\020\001\020\ +\\001\020\001\020\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (277,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\001\022\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (278,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (280,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\019\000\000\000\019\000\019\000\019\000\019\000\000\ +\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\019\000\000\000\019\000\019\001\025\000\019\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\000" +), + (284,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (285,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\001\030\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (286,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\001\031\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (287,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\032\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (288,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\001\033\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (289,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\001\034\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (290,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\035\000\000\000\000\001\035\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\035\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (292,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\037\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\037\001\037\001\037\001\037\001\037\001\037\001\037\001\037\ +\\001\037\001\037\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\037\001\037\001\037\001\037\001\037\001\037\001\037\ +\\001\037\001\037\001\037\001\037\001\037\001\037\001\037\001\037\ +\\001\037\001\037\001\037\001\037\001\037\001\037\001\037\001\037\ +\\001\037\001\037\001\037\000\000\000\000\000\000\000\000\001\037\ +\\000\000\001\037\001\037\001\037\001\037\001\037\001\037\001\037\ +\\001\037\001\037\001\037\001\037\001\037\001\037\001\037\001\037\ +\\001\037\001\037\001\037\001\037\001\037\001\037\001\037\001\037\ +\\001\037\001\037\001\037\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (294,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\019\001\039\000\019\000\019\000\019\000\019\000\000\ +\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\019\000\000\000\019\000\019\000\019\000\019\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\ +\\000\000" +), + (297,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\042\000\000\000\000\001\042\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\042\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (299,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\001\044\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (302,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\047\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (304,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\001\049\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (309,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\083\001\085\000\000\001\083\001\084\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\083\000\000\001\082\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\079\001\079\001\079\001\079\001\079\001\079\001\079\001\079\ +\\001\079\001\079\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\001\070\000\000\000\000\ +\\000\000\000\000\000\000\000\000\001\069\000\000\001\066\000\000\ +\\000\000\001\065\001\064\000\000\000\000\000\000\001\063\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\001\062\000\000\ +\\000\000\000\000\001\061\000\000\001\060\001\055\001\054\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (311,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\056\001\056\001\056\001\056\001\056\001\056\001\056\001\056\ +\\001\056\001\056\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\056\001\056\001\056\001\056\001\056\001\056\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\056\001\056\001\056\001\056\001\056\001\056\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (312,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\057\001\057\001\057\001\057\001\057\001\057\001\057\001\057\ +\\001\057\001\057\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\057\001\057\001\057\001\057\001\057\001\057\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\057\001\057\001\057\001\057\001\057\001\057\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (313,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\058\001\058\001\058\001\058\001\058\001\058\001\058\001\058\ +\\001\058\001\058\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\058\001\058\001\058\001\058\001\058\001\058\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\058\001\058\001\058\001\058\001\058\001\058\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (314,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\059\001\059\001\059\001\059\001\059\001\059\001\059\001\059\ +\\001\059\001\059\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\059\001\059\001\059\001\059\001\059\001\059\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\059\001\059\001\059\001\059\001\059\001\059\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (322,129, +"\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\ +\\001\067\001\067\000\000\001\067\001\067\001\067\001\067\001\067\ +\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\ +\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\ +\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\ +\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\ +\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\ +\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\ +\\001\068\001\068\001\068\001\068\001\068\001\068\001\068\001\068\ +\\001\068\001\068\001\068\001\068\001\068\001\068\001\068\001\068\ +\\001\068\001\068\001\068\001\068\001\068\001\068\001\068\001\068\ +\\001\068\001\068\001\068\001\068\001\068\001\068\001\068\001\068\ +\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\ +\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\ +\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\ +\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\ +\\001\067" +), + (326,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\071\001\071\001\071\001\071\001\071\001\071\001\071\001\071\ +\\001\071\001\071\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\071\001\071\001\071\001\071\001\071\001\071\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\071\001\071\001\071\001\071\001\071\001\071\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (327,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\072\001\072\001\072\001\072\001\072\001\072\001\072\001\072\ +\\001\072\001\072\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\072\001\072\001\072\001\072\001\072\001\072\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\072\001\072\001\072\001\072\001\072\001\072\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (328,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\073\001\073\001\073\001\073\001\073\001\073\001\073\001\073\ +\\001\073\001\073\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\073\001\073\001\073\001\073\001\073\001\073\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\073\001\073\001\073\001\073\001\073\001\073\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (329,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\074\001\074\001\074\001\074\001\074\001\074\001\074\001\074\ +\\001\074\001\074\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\074\001\074\001\074\001\074\001\074\001\074\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\074\001\074\001\074\001\074\001\074\001\074\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (330,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\075\001\075\001\075\001\075\001\075\001\075\001\075\001\075\ +\\001\075\001\075\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\075\001\075\001\075\001\075\001\075\001\075\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\075\001\075\001\075\001\075\001\075\001\075\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (331,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\076\001\076\001\076\001\076\001\076\001\076\001\076\001\076\ +\\001\076\001\076\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\076\001\076\001\076\001\076\001\076\001\076\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\076\001\076\001\076\001\076\001\076\001\076\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (332,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\077\001\077\001\077\001\077\001\077\001\077\001\077\001\077\ +\\001\077\001\077\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\077\001\077\001\077\001\077\001\077\001\077\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\077\001\077\001\077\001\077\001\077\001\077\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (333,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\078\001\078\001\078\001\078\001\078\001\078\001\078\001\078\ +\\001\078\001\078\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\078\001\078\001\078\001\078\001\078\001\078\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\078\001\078\001\078\001\078\001\078\001\078\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (335,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\080\001\080\001\080\001\080\001\080\001\080\001\080\001\080\ +\\001\080\001\080\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (336,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\081\001\081\001\081\001\081\001\081\001\081\001\081\001\081\ +\\001\081\001\081\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (339,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\083\000\000\000\000\001\083\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\083\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (340,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\001\085\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (343,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\001\088\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (347,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\092\000\000\000\000\001\092\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\092\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (349,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\001\094\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (352,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\097\001\097\001\097\001\097\001\097\001\097\001\097\001\097\ +\\001\097\001\097\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (354,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\099\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (357,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\102\001\102\001\102\001\102\001\102\001\102\001\102\001\102\ +\\001\102\001\102\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (360,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\105\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (363,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\109\000\000\000\000\001\109\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\001\109\000\000\001\108\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (366,129, +"\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\000\000\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111" +), + (368,129, +"\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\000\000\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\113\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\ +\\001\111" +), + (370,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\001\115\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (371,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\001\116\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), +(0, 0, "")] +fun f(n, i, x) = (n, Vector.tabulate(i, decode x)) +val s = map f (rev (tl (rev s))) +exception LexHackingError +fun look ((j,x)::r, i) = if i = j then x else look(r, i) + | look ([], i) = raise LexHackingError +fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)} +in Vector.fromList(map g +[{fin = [], trans = 0}, +{fin = [(N 2)], trans = 1}, +{fin = [(N 2)], trans = 1}, +{fin = [], trans = 3}, +{fin = [], trans = 3}, +{fin = [], trans = 5}, +{fin = [], trans = 5}, +{fin = [(N 592)], trans = 7}, +{fin = [(N 592)], trans = 7}, +{fin = [], trans = 9}, +{fin = [], trans = 9}, +{fin = [], trans = 11}, +{fin = [], trans = 11}, +{fin = [], trans = 13}, +{fin = [], trans = 13}, +{fin = [(N 481)], trans = 15}, +{fin = [(N 481)], trans = 15}, +{fin = [(N 462)], trans = 0}, +{fin = [(N 391),(N 462)], trans = 18}, +{fin = [(N 391)], trans = 19}, +{fin = [], trans = 20}, +{fin = [(N 391)], trans = 21}, +{fin = [(N 391)], trans = 22}, +{fin = [(N 418)], trans = 23}, +{fin = [], trans = 24}, +{fin = [], trans = 25}, +{fin = [(N 411)], trans = 25}, +{fin = [], trans = 27}, +{fin = [(N 411)], trans = 28}, +{fin = [], trans = 29}, +{fin = [], trans = 30}, +{fin = [(N 411)], trans = 30}, +{fin = [(N 418)], trans = 32}, +{fin = [], trans = 33}, +{fin = [(N 429)], trans = 33}, +{fin = [(N 104),(N 462)], trans = 0}, +{fin = [(N 120),(N 391),(N 462)], trans = 19}, +{fin = [(N 102),(N 462)], trans = 0}, +{fin = [(N 391),(N 462)], trans = 38}, +{fin = [(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 40}, +{fin = [(N 391)], trans = 41}, +{fin = [(N 391)], trans = 42}, +{fin = [(N 350),(N 391)], trans = 43}, +{fin = [(N 391)], trans = 44}, +{fin = [(N 391)], trans = 45}, +{fin = [(N 391)], trans = 46}, +{fin = [(N 359),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 48}, +{fin = [(N 391)], trans = 49}, +{fin = [(N 391)], trans = 50}, +{fin = [(N 345),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 52}, +{fin = [(N 391)], trans = 53}, +{fin = [(N 339),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 55}, +{fin = [(N 391)], trans = 56}, +{fin = [(N 333),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 58}, +{fin = [(N 391)], trans = 59}, +{fin = [(N 391)], trans = 60}, +{fin = [(N 329),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 62}, +{fin = [(N 391)], trans = 63}, +{fin = [(N 324),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 65}, +{fin = [(N 391)], trans = 66}, +{fin = [(N 391)], trans = 67}, +{fin = [(N 391)], trans = 68}, +{fin = [(N 391)], trans = 69}, +{fin = [(N 309),(N 391)], trans = 70}, +{fin = [(N 391)], trans = 71}, +{fin = [(N 391)], trans = 72}, +{fin = [(N 319),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 74}, +{fin = [(N 292),(N 391)], trans = 75}, +{fin = [(N 391)], trans = 76}, +{fin = [(N 391)], trans = 77}, +{fin = [(N 391)], trans = 78}, +{fin = [(N 391)], trans = 79}, +{fin = [(N 391)], trans = 80}, +{fin = [(N 302),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 82}, +{fin = [(N 391)], trans = 83}, +{fin = [(N 391)], trans = 84}, +{fin = [(N 391)], trans = 85}, +{fin = [(N 391)], trans = 86}, +{fin = [(N 288),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 88}, +{fin = [(N 391)], trans = 89}, +{fin = [(N 280),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 91}, +{fin = [(N 391)], trans = 92}, +{fin = [(N 391)], trans = 93}, +{fin = [(N 276),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 95}, +{fin = [(N 391)], trans = 96}, +{fin = [(N 391)], trans = 97}, +{fin = [(N 391)], trans = 98}, +{fin = [(N 391)], trans = 99}, +{fin = [(N 366),(N 391)], trans = 38}, +{fin = [(N 265),(N 391)], trans = 101}, +{fin = [(N 391)], trans = 102}, +{fin = [(N 270),(N 391)], trans = 38}, +{fin = [(N 262),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 105}, +{fin = [(N 391)], trans = 106}, +{fin = [(N 391)], trans = 107}, +{fin = [(N 391)], trans = 108}, +{fin = [(N 391)], trans = 109}, +{fin = [(N 259),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 111}, +{fin = [(N 391)], trans = 112}, +{fin = [(N 391)], trans = 113}, +{fin = [(N 391)], trans = 114}, +{fin = [(N 252),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 116}, +{fin = [(N 246),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 118}, +{fin = [(N 221),(N 391)], trans = 119}, +{fin = [(N 391)], trans = 120}, +{fin = [(N 391)], trans = 121}, +{fin = [(N 235),(N 391)], trans = 122}, +{fin = [(N 242),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 124}, +{fin = [(N 391)], trans = 125}, +{fin = [(N 391)], trans = 126}, +{fin = [(N 391)], trans = 127}, +{fin = [(N 229),(N 391)], trans = 38}, +{fin = [(N 218),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 130}, +{fin = [(N 391)], trans = 131}, +{fin = [(N 391)], trans = 132}, +{fin = [(N 391)], trans = 133}, +{fin = [(N 391)], trans = 134}, +{fin = [(N 215),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 136}, +{fin = [(N 391)], trans = 137}, +{fin = [(N 200),(N 391)], trans = 138}, +{fin = [(N 391)], trans = 139}, +{fin = [(N 391)], trans = 140}, +{fin = [(N 391)], trans = 141}, +{fin = [(N 208),(N 391)], trans = 38}, +{fin = [(N 196),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 144}, +{fin = [(N 391)], trans = 145}, +{fin = [(N 391)], trans = 146}, +{fin = [(N 391)], trans = 147}, +{fin = [(N 391)], trans = 148}, +{fin = [(N 391)], trans = 149}, +{fin = [(N 391)], trans = 150}, +{fin = [(N 391)], trans = 151}, +{fin = [(N 190),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 153}, +{fin = [(N 391)], trans = 154}, +{fin = [(N 391)], trans = 155}, +{fin = [(N 391)], trans = 156}, +{fin = [(N 180),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 158}, +{fin = [(N 173),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 160}, +{fin = [(N 391)], trans = 161}, +{fin = [(N 169),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 163}, +{fin = [(N 193),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 165}, +{fin = [(N 391)], trans = 166}, +{fin = [(N 391)], trans = 167}, +{fin = [(N 391)], trans = 168}, +{fin = [(N 391)], trans = 169}, +{fin = [(N 391)], trans = 170}, +{fin = [(N 164),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 172}, +{fin = [(N 391)], trans = 173}, +{fin = [(N 391)], trans = 174}, +{fin = [(N 155),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 176}, +{fin = [(N 150),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 178}, +{fin = [(N 139),(N 391)], trans = 179}, +{fin = [(N 391)], trans = 180}, +{fin = [(N 391)], trans = 181}, +{fin = [(N 391)], trans = 182}, +{fin = [(N 374),(N 391)], trans = 38}, +{fin = [(N 391)], trans = 184}, +{fin = [(N 391)], trans = 185}, +{fin = [(N 391)], trans = 186}, +{fin = [(N 391)], trans = 187}, +{fin = [(N 391)], trans = 188}, +{fin = [(N 147),(N 391)], trans = 38}, +{fin = [(N 391),(N 462)], trans = 19}, +{fin = [(N 98),(N 462)], trans = 191}, +{fin = [], trans = 192}, +{fin = [], trans = 193}, +{fin = [], trans = 194}, +{fin = [], trans = 195}, +{fin = [], trans = 196}, +{fin = [(N 90)], trans = 0}, +{fin = [], trans = 198}, +{fin = [], trans = 199}, +{fin = [], trans = 200}, +{fin = [(N 96)], trans = 0}, +{fin = [], trans = 202}, +{fin = [], trans = 203}, +{fin = [], trans = 204}, +{fin = [], trans = 205}, +{fin = [], trans = 206}, +{fin = [], trans = 207}, +{fin = [], trans = 208}, +{fin = [(N 82)], trans = 0}, +{fin = [], trans = 210}, +{fin = [], trans = 211}, +{fin = [], trans = 212}, +{fin = [], trans = 213}, +{fin = [], trans = 214}, +{fin = [(N 72)], trans = 0}, +{fin = [], trans = 216}, +{fin = [], trans = 217}, +{fin = [], trans = 218}, +{fin = [], trans = 219}, +{fin = [], trans = 220}, +{fin = [(N 64)], trans = 0}, +{fin = [], trans = 222}, +{fin = [], trans = 223}, +{fin = [], trans = 224}, +{fin = [], trans = 225}, +{fin = [(N 56)], trans = 0}, +{fin = [], trans = 227}, +{fin = [], trans = 228}, +{fin = [], trans = 229}, +{fin = [], trans = 230}, +{fin = [], trans = 231}, +{fin = [], trans = 232}, +{fin = [], trans = 233}, +{fin = [], trans = 234}, +{fin = [], trans = 235}, +{fin = [], trans = 236}, +{fin = [], trans = 237}, +{fin = [], trans = 238}, +{fin = [], trans = 239}, +{fin = [], trans = 240}, +{fin = [], trans = 241}, +{fin = [(N 49)], trans = 0}, +{fin = [], trans = 243}, +{fin = [], trans = 244}, +{fin = [], trans = 245}, +{fin = [], trans = 246}, +{fin = [], trans = 247}, +{fin = [], trans = 248}, +{fin = [], trans = 249}, +{fin = [], trans = 250}, +{fin = [], trans = 251}, +{fin = [], trans = 252}, +{fin = [(N 29)], trans = 0}, +{fin = [], trans = 254}, +{fin = [], trans = 255}, +{fin = [], trans = 256}, +{fin = [], trans = 257}, +{fin = [], trans = 258}, +{fin = [], trans = 259}, +{fin = [(N 16)], trans = 0}, +{fin = [(N 108),(N 462)], trans = 0}, +{fin = [(N 106),(N 462)], trans = 0}, +{fin = [(N 127),(N 391),(N 462)], trans = 263}, +{fin = [(N 135),(N 391)], trans = 19}, +{fin = [(N 110),(N 462)], trans = 0}, +{fin = [(N 122),(N 391),(N 462)], trans = 266}, +{fin = [(N 125),(N 391)], trans = 19}, +{fin = [(N 414),(N 462)], trans = 268}, +{fin = [(N 414)], trans = 268}, +{fin = [(N 414),(N 462)], trans = 270}, +{fin = [], trans = 271}, +{fin = [(N 423)], trans = 271}, +{fin = [], trans = 273}, +{fin = [], trans = 274}, +{fin = [(N 440)], trans = 274}, +{fin = [(N 434)], trans = 276}, +{fin = [(N 462)], trans = 277}, +{fin = [], trans = 278}, +{fin = [(N 118)], trans = 0}, +{fin = [(N 391),(N 462)], trans = 280}, +{fin = [(N 132),(N 391)], trans = 19}, +{fin = [(N 100),(N 462)], trans = 0}, +{fin = [(N 114),(N 462)], trans = 0}, +{fin = [(N 112),(N 462)], trans = 284}, +{fin = [(N 460)], trans = 285}, +{fin = [], trans = 286}, +{fin = [], trans = 287}, +{fin = [], trans = 288}, +{fin = [], trans = 289}, +{fin = [], trans = 290}, +{fin = [(N 457)], trans = 290}, +{fin = [(N 377),(N 462)], trans = 292}, +{fin = [(N 377)], trans = 292}, +{fin = [(N 129),(N 391),(N 462)], trans = 294}, +{fin = [(N 445)], trans = 0}, +{fin = [(N 442),(N 462)], trans = 0}, +{fin = [(N 2),(N 462)], trans = 297}, +{fin = [(N 2)], trans = 297}, +{fin = [(N 7),(N 462)], trans = 299}, +{fin = [(N 7)], trans = 0}, +{fin = [(N 500)], trans = 0}, +{fin = [(N 500)], trans = 302}, +{fin = [(N 498)], trans = 0}, +{fin = [(N 500)], trans = 304}, +{fin = [(N 493)], trans = 0}, +{fin = [(N 495)], trans = 0}, +{fin = [(N 584)], trans = 0}, +{fin = [(N 582),(N 584)], trans = 0}, +{fin = [(N 574),(N 582),(N 584)], trans = 309}, +{fin = [(N 523)], trans = 0}, +{fin = [], trans = 311}, +{fin = [], trans = 312}, +{fin = [], trans = 313}, +{fin = [], trans = 314}, +{fin = [(N 543)], trans = 0}, +{fin = [(N 520)], trans = 0}, +{fin = [(N 517)], trans = 0}, +{fin = [(N 514)], trans = 0}, +{fin = [(N 511)], trans = 0}, +{fin = [(N 508)], trans = 0}, +{fin = [(N 505)], trans = 0}, +{fin = [], trans = 322}, +{fin = [(N 531)], trans = 0}, +{fin = [(N 527),(N 531)], trans = 0}, +{fin = [(N 560)], trans = 0}, +{fin = [], trans = 326}, +{fin = [], trans = 327}, +{fin = [], trans = 328}, +{fin = [], trans = 329}, +{fin = [], trans = 330}, +{fin = [], trans = 331}, +{fin = [], trans = 332}, +{fin = [], trans = 333}, +{fin = [(N 554)], trans = 0}, +{fin = [], trans = 335}, +{fin = [], trans = 336}, +{fin = [(N 536)], trans = 0}, +{fin = [(N 557)], trans = 0}, +{fin = [(N 566)], trans = 339}, +{fin = [(N 572)], trans = 340}, +{fin = [(N 572)], trans = 0}, +{fin = [(N 502),(N 582),(N 584)], trans = 0}, +{fin = [(N 579),(N 584)], trans = 343}, +{fin = [(N 579)], trans = 0}, +{fin = [(N 596)], trans = 0}, +{fin = [(N 594),(N 596)], trans = 0}, +{fin = [(N 592),(N 596)], trans = 347}, +{fin = [(N 592)], trans = 347}, +{fin = [(N 589),(N 596)], trans = 349}, +{fin = [(N 589)], trans = 0}, +{fin = [(N 490)], trans = 0}, +{fin = [(N 465),(N 490)], trans = 352}, +{fin = [(N 465)], trans = 352}, +{fin = [(N 490)], trans = 354}, +{fin = [(N 488)], trans = 0}, +{fin = [(N 472)], trans = 0}, +{fin = [(N 470),(N 472)], trans = 357}, +{fin = [(N 470)], trans = 357}, +{fin = [(N 467),(N 472)], trans = 0}, +{fin = [(N 490)], trans = 360}, +{fin = [(N 475),(N 488)], trans = 0}, +{fin = [(N 479),(N 490)], trans = 0}, +{fin = [(N 490)], trans = 363}, +{fin = [(N 479)], trans = 0}, +{fin = [], trans = 363}, +{fin = [(N 481),(N 490)], trans = 366}, +{fin = [(N 481)], trans = 366}, +{fin = [(N 481),(N 490)], trans = 368}, +{fin = [(N 481),(N 488)], trans = 366}, +{fin = [(N 490)], trans = 370}, +{fin = [], trans = 371}, +{fin = [(N 485)], trans = 0}]) +end +structure StartStates = + struct + datatype yystartstate = STARTSTATE of int + +(* start state definitions *) + +val A = STARTSTATE 3; +val F = STARTSTATE 7; +val INITIAL = STARTSTATE 1; +val L = STARTSTATE 9; +val LL = STARTSTATE 11; +val LLC = STARTSTATE 13; +val LLCQ = STARTSTATE 15; +val S = STARTSTATE 5; + +end +type result = UserDeclarations.lexresult + exception LexerError (* raised if illegal leaf action tried *) +end + +type int = Int.int +fun makeLexer (yyinput: int -> string) = +let val yygone0:int= ~1 + val yyb = ref "\n" (* buffer *) + val yybl: int ref = ref 1 (*buffer length *) + val yybufpos: int ref = ref 1 (* location of next character to use *) + val yygone: int ref = ref yygone0 (* position in file of beginning of buffer *) + val yydone = ref false (* eof found yet? *) + val yybegin: int ref = ref 1 (*Current 'start state' for lexer *) + + val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) => + yybegin := x + +fun lex (yyarg as ({source})) = +let fun continue() : Internal.result = + let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0: int) = + let fun action (i: int,nil) = raise LexError + | action (i,nil::l) = action (i-1,l) + | action (i,(node::acts)::l) = + case node of + Internal.N yyk => + (let fun yymktext() = String.substring(!yyb,i0,i-i0) + val yypos: int = i0+ !yygone + fun REJECT() = action(i,acts::l) + open UserDeclarations Internal.StartStates + in (yybufpos := i; case yyk of + + (* Application actions *) + + 100 => (tok (Tokens.COMMA, source, yypos, yypos + 1)) +| 102 => (tok (Tokens.LBRACE, source, yypos, yypos + 1)) +| 104 => (tok (Tokens.RBRACE, source, yypos, yypos + 1)) +| 106 => (tok (Tokens.LBRACKET, source, yypos, yypos + 1)) +| 108 => (tok (Tokens.RBRACKET, source, yypos, yypos + 1)) +| 110 => (tok (Tokens.SEMICOLON, source, yypos, yypos + 1)) +| 112 => (tok (Tokens.LPAREN, source, yypos, yypos + 1)) +| 114 => (tok (Tokens.RPAREN, source, yypos, yypos + 1)) +| 118 => (tok (Tokens.DOTDOTDOT, source, yypos, yypos + 3)) +| 120 => (tok (Tokens.BAR, source, yypos, yypos + 1)) +| 122 => (tok (Tokens.COLON, source, yypos, yypos + 1)) +| 125 => (tok (Tokens.COLONGT, source, yypos, yypos + 1)) +| 127 => (tok (Tokens.EQUALOP, source, yypos, yypos + 1)) +| 129 => (tok (Tokens.HASH, source, yypos, yypos + 1)) +| 132 => (tok (Tokens.ARROW, source, yypos, yypos + 2)) +| 135 => (tok (Tokens.DARROW, source, yypos, yypos + 2)) +| 139 => (tok (Tokens.AND, source, yypos, yypos + 3)) +| 147 => (tok (Tokens.ABSTYPE, source, yypos, yypos + 7)) +| 150 => (tok (Tokens.AS, source, yypos, yypos + 2)) +| 155 => (tok (Tokens.CASE, source, yypos, yypos + 4)) +| 16 => let val yytext=yymktext() in tok (Tokens.ADDRESS, source, yypos, yypos + size yytext) end +| 164 => (tok (Tokens.DATATYPE, source, yypos, yypos + 8)) +| 169 => (tok (Tokens.ELSE, source, yypos, yypos + 4)) +| 173 => (tok (Tokens.END, source, yypos, yypos + 3)) +| 180 => (tok (Tokens.EQTYPE, source, yypos, yypos + 6)) +| 190 => (tok (Tokens.EXCEPTION, source, yypos, yypos + 9)) +| 193 => (tok (Tokens.DO, source, yypos, yypos + 2)) +| 196 => (tok (Tokens.FN, source, yypos, yypos + 2)) +| 2 => (continue ()) +| 200 => (tok (Tokens.FUN, source, yypos, yypos + 3)) +| 208 => (tok (Tokens.FUNCTOR, source, yypos, yypos + 7)) +| 215 => (tok (Tokens.HANDLE, source, yypos, yypos + 6)) +| 218 => (tok (Tokens.IF, source, yypos, yypos + 2)) +| 221 => (tok (Tokens.IN, source, yypos, yypos + 2)) +| 229 => (tok (Tokens.INCLUDE, source, yypos, yypos + 7)) +| 235 => (tok (Tokens.INFIX, source, yypos, yypos + 5)) +| 242 => (tok (Tokens.INFIXR, source, yypos, yypos + 6)) +| 246 => (tok (Tokens.LET, source, yypos, yypos + 3)) +| 252 => (tok (Tokens.LOCAL, source, yypos, yypos + 5)) +| 259 => (tok (Tokens.NONFIX, source, yypos, yypos + 6)) +| 262 => (tok (Tokens.OF, source, yypos, yypos + 2)) +| 265 => (tok (Tokens.OP, source, yypos, yypos + 2)) +| 270 => (tok (Tokens.OPEN, source, yypos, yypos + 4)) +| 276 => (tok (Tokens.RAISE, source, yypos, yypos + 5)) +| 280 => (tok (Tokens.REC, source, yypos, yypos + 3)) +| 288 => (tok (Tokens.SHARING, source, yypos, yypos + 7)) +| 29 => let val yytext=yymktext() in tok (Tokens.BUILD_CONST, source, yypos, yypos + size yytext) end +| 292 => (tok (Tokens.SIG, source, yypos, yypos + 3)) +| 302 => (tok (Tokens.SIGNATURE, source, yypos, yypos + 9)) +| 309 => (tok (Tokens.STRUCT, source, yypos, yypos + 6)) +| 319 => (tok (Tokens.STRUCTURE, source, yypos, yypos + 9)) +| 324 => (tok (Tokens.THEN, source, yypos, yypos + 4)) +| 329 => (tok (Tokens.TYPE, source, yypos, yypos + 4)) +| 333 => (tok (Tokens.VAL, source, yypos, yypos + 3)) +| 339 => (tok (Tokens.WHERE, source, yypos, yypos + 5)) +| 345 => (tok (Tokens.WHILE, source, yypos, yypos + 5)) +| 350 => (tok (Tokens.WITH, source, yypos, yypos + 4)) +| 359 => (tok (Tokens.WITHTYPE, source, yypos, yypos + 8)) +| 366 => (tok (Tokens.ORELSE, source, yypos, yypos + 6)) +| 374 => (tok (Tokens.ANDALSO, source, yypos, yypos + 7)) +| 377 => let val yytext=yymktext() in tok' (Tokens.TYVAR, yytext, source, yypos) end +| 391 => let val yytext=yymktext() in case yytext of + "*" => tok (Tokens.ASTERISK, source, yypos, yypos + 1) + | _ => tok' (Tokens.LONGID, yytext, source, yypos) end +| 411 => let val yytext=yymktext() in tok' (Tokens.REAL, yytext, source, yypos) end +| 414 => let val yytext=yymktext() in int (yytext, 0, source, yypos, {negate = false}, StringCvt.DEC) end +| 418 => let val yytext=yymktext() in int (yytext, 1, source, yypos, {negate = true}, StringCvt.DEC) end +| 423 => let val yytext=yymktext() in int (yytext, 2, source, yypos, {negate = false}, StringCvt.HEX) end +| 429 => let val yytext=yymktext() in int (yytext, 3, source, yypos, {negate = true}, StringCvt.HEX) end +| 434 => let val yytext=yymktext() in word (yytext, 2, source, yypos, StringCvt.DEC) end +| 440 => let val yytext=yymktext() in word (yytext, 3, source, yypos, StringCvt.HEX) end +| 442 => (charlist := [] + ; stringStart := Source.getPos (source, yypos) + ; stringtype := true + ; YYBEGIN S + ; continue ()) +| 445 => (charlist := [] + ; stringStart := Source.getPos (source, yypos) + ; stringtype := false + ; YYBEGIN S + ; continue ()) +| 457 => (YYBEGIN L + ; commentStart := Source.getPos (source, yypos) + ; commentLevel := 1 + ; continue ()) +| 460 => (YYBEGIN A + ; commentLevel := 1 + ; commentStart := Source.getPos (source, yypos) + ; continue ()) +| 462 => (error (source, yypos, yypos + 1, "illegal token") ; + continue ()) +| 465 => let val yytext=yymktext() in YYBEGIN LL + ; (lineNum := valOf (Int.fromString yytext) + ; colNum := 1) + handle Overflow => YYBEGIN A + ; continue () end +| 467 => ((* cheat: take n > 0 dots *) continue ()) +| 470 => let val yytext=yymktext() in YYBEGIN LLC + ; (colNum := valOf (Int.fromString yytext)) + handle Overflow => YYBEGIN A + ; continue () end +| 472 => (YYBEGIN LLC; continue () + (* note hack, since ml-lex chokes on the empty string for 0* *)) +| 475 => (YYBEGIN INITIAL + ; lineDirective (source, NONE, yypos + 2) + ; commentLevel := 0; charlist := []; continue ()) +| 479 => (YYBEGIN LLCQ; continue ()) +| 481 => let val yytext=yymktext() in lineFile := yytext; continue () end +| 485 => (YYBEGIN INITIAL + ; lineDirective (source, SOME (!lineFile), yypos + 3) + ; commentLevel := 0; charlist := []; continue ()) +| 488 => (YYBEGIN INITIAL; commentLevel := 0; charlist := []; continue ()) +| 49 => let val yytext=yymktext() in tok (Tokens.COMMAND_LINE_CONST, source, yypos, yypos + size yytext) end +| 490 => (YYBEGIN A; continue ()) +| 493 => (inc commentLevel; continue ()) +| 495 => (Source.newline (source, yypos) ; continue ()) +| 498 => (dec commentLevel + ; if 0 = !commentLevel then YYBEGIN INITIAL else () + ; continue ()) +| 500 => (continue ()) +| 502 => (let + val s = Vector.fromListRev (!charlist) + val _ = charlist := nil + fun make (t, v) = + t (v, !stringStart, Source.getPos (source, yypos + 1)) + val () = YYBEGIN INITIAL + in + if !stringtype + then make (Tokens.STRING, s) + else + make (Tokens.CHAR, + if 1 <> Vector.length s + then (error + (source, yypos, yypos + 1, + "character constant not length 1") + ; 0) + else Vector.sub (s, 0)) + end) +| 505 => (addChar #"\a"; continue ()) +| 508 => (addChar #"\b"; continue ()) +| 511 => (addChar #"\f"; continue ()) +| 514 => (addChar #"\n"; continue ()) +| 517 => (addChar #"\r"; continue ()) +| 520 => (addChar #"\t"; continue ()) +| 523 => (addChar #"\v"; continue ()) +| 527 => let val yytext=yymktext() in addChar (Char.chr(Char.ord(String.sub(yytext, 2)) + -Char.ord #"@")); + continue () end +| 531 => (error (source, yypos, yypos + 2, + "illegal control escape; must be one of @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"); + continue ()) +| 536 => let val yytext=yymktext() in let + fun c (i, scale) = + scale * (Char.ord (String.sub (yytext, i)) + - Char.ord #"0") + val () = addOrd (IntInf.fromInt + (c (1, 100) + c (2, 10) + c (3, 1))) + in + continue () + end end +| 543 => let val yytext=yymktext() in addHexEscape (String.substring (yytext, 2, 4), + source, yypos) + ; continue () end +| 554 => let val yytext=yymktext() in addHexEscape (String.substring (yytext, 2, 8), + source, yypos) + ; continue () end +| 557 => (addString "\""; continue ()) +| 56 => let val yytext=yymktext() in tok (Tokens.CONST, source, yypos, yypos + size yytext) end +| 560 => (addString "\\"; continue ()) +| 566 => (YYBEGIN F; continue ()) +| 572 => (Source.newline (source, yypos + 1) ; YYBEGIN F ; continue ()) +| 574 => (stringError (source, yypos, "illegal string escape") + ; continue ()) +| 579 => (Source.newline (source, yypos) + ; stringError (source, yypos, "unclosed string") + ; continue ()) +| 582 => let val yytext=yymktext() in addString yytext; continue () end +| 584 => (stringError (source, yypos + 1, "illegal character in string") + ; continue ()) +| 589 => (Source.newline (source, yypos) ; continue ()) +| 592 => (continue ()) +| 594 => (YYBEGIN S + ; stringStart := Source.getPos (source, yypos) + ; continue ()) +| 596 => (stringError (source, yypos, "unclosed string") + ; continue ()) +| 64 => let val yytext=yymktext() in tok (Tokens.EXPORT, source, yypos, yypos + size yytext) end +| 7 => (Source.newline (source, yypos); continue ()) +| 72 => let val yytext=yymktext() in tok (Tokens.IMPORT, source, yypos, yypos + size yytext) end +| 82 => let val yytext=yymktext() in tok (Tokens.OVERLOAD, source, yypos, yypos + size yytext) end +| 90 => let val yytext=yymktext() in tok (Tokens.SYMBOL, source, yypos, yypos + size yytext) end +| 96 => let val yytext=yymktext() in tok (Tokens.PRIM, source, yypos, yypos + size yytext) end +| 98 => (tok (Tokens.WILD, source, yypos, yypos + 1)) +| _ => raise Internal.LexerError + + ) end ) + + val {fin,trans} = Vector.sub (Internal.tab, s) + val NewAcceptingLeaves = fin::AcceptingLeaves + in if l = !yybl then + if trans = #trans(Vector.sub(Internal.tab,0)) + then action(l,NewAcceptingLeaves +) else let val newchars= if !yydone then "" else yyinput 1024 + in if (String.size newchars)=0 + then (yydone := true; + if (l=i0) then UserDeclarations.eof yyarg + else action(l,NewAcceptingLeaves)) + else (if i0=l then yyb := newchars + else yyb := String.substring(!yyb,i0,l-i0)^newchars; + yygone := !yygone+i0; + yybl := String.size (!yyb); + scan (s,AcceptingLeaves,l-i0,0)) + end + else let val NewChar = Char.ord (CharVector.sub (!yyb,l)) + val NewChar = if NewChar<128 then NewChar else 128 + val NewState = Vector.sub (trans, NewChar) + in if NewState=0 then action(l,NewAcceptingLeaves) + else scan(NewState,NewAcceptingLeaves,l+1,i0) + end + end +(* + val start= if String.substring(!yyb,!yybufpos-1,1)="\n" +then !yybegin+1 else !yybegin +*) + in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos) + end +in continue end + in lex + end +end diff --git a/lang/mlton/files/mlb.grm.sig b/lang/mlton/files/mlb.grm.sig new file mode 100644 index 000000000000..66ca84bf9b98 --- /dev/null +++ b/lang/mlton/files/mlb.grm.sig @@ -0,0 +1,32 @@ +signature MLB_TOKENS = +sig +type ('a,'b) token +type svalue +val STRING: (string) * 'a * 'a -> (svalue,'a) token +val FILE: (string) * 'a * 'a -> (svalue,'a) token +val PRIM: 'a * 'a -> (svalue,'a) token +val ANN: 'a * 'a -> (svalue,'a) token +val STRUCTURE: 'a * 'a -> (svalue,'a) token +val SIGNATURE: 'a * 'a -> (svalue,'a) token +val OPEN: 'a * 'a -> (svalue,'a) token +val LOCAL: 'a * 'a -> (svalue,'a) token +val LET: 'a * 'a -> (svalue,'a) token +val IN: 'a * 'a -> (svalue,'a) token +val FUNCTOR: 'a * 'a -> (svalue,'a) token +val EQUALOP: 'a * 'a -> (svalue,'a) token +val END: 'a * 'a -> (svalue,'a) token +val BASIS: 'a * 'a -> (svalue,'a) token +val BAS: 'a * 'a -> (svalue,'a) token +val AND: 'a * 'a -> (svalue,'a) token +val EOF: 'a * 'a -> (svalue,'a) token +val SEMICOLON: 'a * 'a -> (svalue,'a) token +val COMMA: 'a * 'a -> (svalue,'a) token +val ID: (string) * 'a * 'a -> (svalue,'a) token +end +signature MLB_LRVALS= +sig +structure Tokens : MLB_TOKENS +structure ParserData:PARSER_DATA +sharing type ParserData.Token.token = Tokens.token +sharing type ParserData.svalue = Tokens.svalue +end diff --git a/lang/mlton/files/mlb.grm.sml b/lang/mlton/files/mlb.grm.sml new file mode 100644 index 000000000000..91a580aa635d --- /dev/null +++ b/lang/mlton/files/mlb.grm.sml @@ -0,0 +1,894 @@ + +functor MLBLrValsFun (structure Token: TOKEN + structure Ast: AST + val lexAndParseProgOrMLB: File.t * Region.t -> + Ast.Basdec.node) = +struct +structure ParserData= +struct +structure Header = +struct +(* Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh + * Jagannathan, and Stephen Weeks. + * Copyright (C) 1997-2000 NEC Research Institute. + * + * MLton is released under a BSD-style license. + * See the file MLton-LICENSE for details. + *) + +type int = Int.t + +fun reg (left, right) = Region.make {left = left, right = right} +fun error (reg, msg) = Control.error (reg, Layout.str msg, Layout.empty) + +open Ast + +type fctbinds = {lhs: Fctid.t, rhs: Fctid.t} list +type sigbinds = {lhs: Sigid.t, rhs: Sigid.t} list +type strbinds = {lhs: Strid.t, rhs: Strid.t} list + +type basbinds = {name: Basid.t, def: Basexp.t} list + + +end +structure LrTable = Token.LrTable +structure Token = Token +local open LrTable in +val table=let val actionRows = +"\ +\\001\000\001\000\025\000\000\000\ +\\001\000\001\000\025\000\006\000\070\000\012\000\069\000\000\000\ +\\001\000\004\000\000\000\000\000\ +\\001\000\008\000\071\000\000\000\ +\\001\000\008\000\074\000\000\000\ +\\001\000\008\000\082\000\000\000\ +\\001\000\008\000\084\000\000\000\ +\\001\000\009\000\053\000\000\000\ +\\001\000\011\000\039\000\000\000\ +\\001\000\011\000\049\000\000\000\ +\\001\000\011\000\081\000\000\000\ +\\001\000\020\000\021\000\000\000\ +\\086\000\000\000\ +\\087\000\000\000\ +\\088\000\003\000\017\000\007\000\016\000\010\000\015\000\013\000\014\000\ +\\014\000\013\000\015\000\012\000\016\000\011\000\017\000\010\000\ +\\018\000\009\000\019\000\008\000\020\000\007\000\000\000\ +\\089\000\000\000\ +\\090\000\000\000\ +\\091\000\000\000\ +\\092\000\000\000\ +\\093\000\000\000\ +\\094\000\000\000\ +\\095\000\000\000\ +\\096\000\000\000\ +\\097\000\000\000\ +\\098\000\000\000\ +\\099\000\000\000\ +\\100\000\000\000\ +\\101\000\000\000\ +\\102\000\000\000\ +\\103\000\000\000\ +\\104\000\000\000\ +\\105\000\005\000\052\000\000\000\ +\\105\000\005\000\052\000\009\000\051\000\000\000\ +\\106\000\000\000\ +\\107\000\000\000\ +\\108\000\000\000\ +\\109\000\000\000\ +\\110\000\005\000\047\000\000\000\ +\\110\000\005\000\047\000\009\000\046\000\000\000\ +\\111\000\000\000\ +\\112\000\000\000\ +\\113\000\000\000\ +\\114\000\000\000\ +\\115\000\005\000\044\000\000\000\ +\\115\000\005\000\044\000\009\000\043\000\000\000\ +\\116\000\000\000\ +\\117\000\000\000\ +\\118\000\000\000\ +\\119\000\005\000\077\000\000\000\ +\\120\000\000\000\ +\\121\000\000\000\ +\\122\000\000\000\ +\\123\000\000\000\ +\\124\000\000\000\ +\\125\000\000\000\ +\\126\000\001\000\025\000\000\000\ +\\127\000\000\000\ +\\128\000\000\000\ +\\129\000\000\000\ +\\130\000\000\000\ +\\131\000\000\000\ +\\132\000\000\000\ +\\133\000\000\000\ +\\134\000\020\000\021\000\000\000\ +\\135\000\000\000\ +\" +val actionRowNumbers = +"\014\000\013\000\012\000\017\000\ +\\014\000\025\000\024\000\026\000\ +\\011\000\000\000\000\000\000\000\ +\\014\000\000\000\000\000\014\000\ +\\016\000\008\000\063\000\061\000\ +\\044\000\020\000\059\000\060\000\ +\\038\000\019\000\058\000\054\000\ +\\023\000\055\000\009\000\057\000\ +\\032\000\018\000\007\000\021\000\ +\\015\000\014\000\062\000\064\000\ +\\041\000\000\000\000\000\035\000\ +\\000\000\000\000\056\000\014\000\ +\\029\000\000\000\000\000\001\000\ +\\003\000\043\000\040\000\045\000\ +\\037\000\034\000\039\000\004\000\ +\\031\000\028\000\033\000\052\000\ +\\050\000\048\000\046\000\014\000\ +\\014\000\027\000\042\000\036\000\ +\\022\000\030\000\047\000\000\000\ +\\010\000\005\000\049\000\001\000\ +\\051\000\006\000\053\000\002\000" +val gotoT = +"\ +\\007\000\004\000\008\000\003\000\009\000\002\000\010\000\001\000\ +\\020\000\083\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\007\000\004\000\008\000\003\000\009\000\016\000\010\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\001\000\018\000\002\000\017\000\000\000\ +\\019\000\022\000\025\000\021\000\028\000\020\000\000\000\ +\\019\000\026\000\021\000\025\000\024\000\024\000\000\000\ +\\013\000\029\000\014\000\028\000\019\000\027\000\000\000\ +\\007\000\004\000\008\000\003\000\009\000\030\000\010\000\001\000\000\000\ +\\015\000\033\000\018\000\032\000\019\000\031\000\000\000\ +\\004\000\035\000\013\000\034\000\019\000\027\000\000\000\ +\\007\000\004\000\008\000\003\000\009\000\036\000\010\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\001\000\018\000\002\000\039\000\003\000\038\000\000\000\ +\\000\000\ +\\027\000\040\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\023\000\043\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\013\000\029\000\014\000\046\000\019\000\027\000\000\000\ +\\000\000\ +\\000\000\ +\\017\000\048\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\007\000\004\000\008\000\003\000\009\000\052\000\010\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\019\000\022\000\026\000\054\000\028\000\053\000\000\000\ +\\019\000\022\000\025\000\055\000\028\000\020\000\000\000\ +\\000\000\ +\\019\000\026\000\022\000\057\000\024\000\056\000\000\000\ +\\019\000\026\000\021\000\058\000\024\000\024\000\000\000\ +\\000\000\ +\\007\000\004\000\008\000\003\000\009\000\059\000\010\000\001\000\000\000\ +\\000\000\ +\\016\000\061\000\018\000\060\000\019\000\031\000\000\000\ +\\015\000\062\000\018\000\032\000\019\000\031\000\000\000\ +\\005\000\066\000\011\000\065\000\012\000\064\000\013\000\063\000\ +\\019\000\027\000\000\000\ +\\000\000\ +\\027\000\070\000\000\000\ +\\000\000\ +\\000\000\ +\\023\000\071\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\017\000\073\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\006\000\074\000\000\000\ +\\000\000\ +\\007\000\004\000\008\000\003\000\009\000\076\000\010\000\001\000\000\000\ +\\007\000\004\000\008\000\003\000\009\000\077\000\010\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\004\000\078\000\013\000\034\000\019\000\027\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\011\000\081\000\012\000\064\000\013\000\063\000\019\000\027\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\" +val numstates = 84 +val numrules = 50 +val s = ref "" and index = ref 0 +val string_to_int = fn () => +let val i = !index +in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256 +end +val string_to_list = fn s' => + let val len = String.size s' + fun f () = + if !index < len then string_to_int() :: f() + else nil + in index := 0; s := s'; f () + end +val string_to_pairlist = fn (conv_key,conv_entry) => + let fun f () = + case string_to_int() + of 0 => EMPTY + | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f()) + in f + end +val string_to_pairlist_default = fn (conv_key,conv_entry) => + let val conv_row = string_to_pairlist(conv_key,conv_entry) + in fn () => + let val default = conv_entry(string_to_int()) + val row = conv_row() + in (row,default) + end + end +val string_to_table = fn (convert_row,s') => + let val len = String.size s' + fun f ()= + if !index < len then convert_row() :: f() + else nil + in (s := s'; index := 0; f ()) + end +local + val memo = Array.array(numstates+numrules,ERROR) + val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1)) + fun f i = + if i=numstates then g i + else (Array.update(memo,i,SHIFT (STATE i)); f (i+1)) + in f 0 handle Subscript => () + end +in +val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2)) +end +val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT)) +val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows) +val actionRowNumbers = string_to_list actionRowNumbers +val actionT = let val actionRowLookUp= +let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end +in Array.fromList(map actionRowLookUp actionRowNumbers) +end +in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules, +numStates=numstates,initialState=STATE 0} +end +end +local open Header in +type pos = SourcePos.t +type arg = unit +structure MlyValue = +struct +datatype svalue = VOID | ntVOID of unit -> unit + | STRING of unit -> (string) | FILE of unit -> (string) + | ID of unit -> (string) | strid of unit -> (Strid.t) + | strbinds'' of unit -> (strbinds) + | strbinds' of unit -> (Strid.t*strbinds) + | strbinds of unit -> (strbinds) | sigid of unit -> (Sigid.t) + | sigbinds'' of unit -> (sigbinds) + | sigbinds' of unit -> (Sigid.t*sigbinds) + | sigbinds of unit -> (sigbinds) | mlb of unit -> (Basdec.t) + | id of unit -> (Symbol.t*Region.t) | fctid of unit -> (Fctid.t) + | fctbinds'' of unit -> (fctbinds) + | fctbinds' of unit -> (Fctid.t*fctbinds) + | fctbinds of unit -> (fctbinds) | basids of unit -> (Basid.t list) + | basid of unit -> (Basid.t) | basexpnode of unit -> (Basexp.node) + | basexp of unit -> (Basexp.t) + | basdecsnode of unit -> (Basdec.node) + | basdecs of unit -> (Basdec.t) + | basdecnode of unit -> (Basdec.node) + | basdec of unit -> (Basdec.t) | basbinds'' of unit -> (basbinds) + | basbinds' of unit -> (Basexp.t*basbinds) + | basbinds of unit -> (basbinds) + | annStar of unit -> ( ( string * Region.t ) list) + | annPlus of unit -> ( ( string * Region.t ) list) + | ann of unit -> (string*Region.t) +end +type svalue = MlyValue.svalue +type result = Basdec.t +end +structure EC= +struct +open LrTable +infix 5 $$ +fun x $$ y = y::x +val is_keyword = +fn (T 4) => true | (T 5) => true | (T 6) => true | (T 7) => true | (T +9) => true | (T 10) => true | (T 11) => true | (T 12) => true | (T 13) + => true | (T 14) => true | (T 15) => true | (T 16) => true | (T 17) + => true | _ => false +val preferred_change : (term list * term list) list = +(nil +,nil + $$ (T 2)):: +(nil +,nil + $$ (T 7) $$ (T 0) $$ (T 10)):: +nil +val noShift = +fn (T 3) => true | _ => false +val showTerminal = +fn (T 0) => "ID" + | (T 1) => "COMMA" + | (T 2) => "SEMICOLON" + | (T 3) => "EOF" + | (T 4) => "AND" + | (T 5) => "BAS" + | (T 6) => "BASIS" + | (T 7) => "END" + | (T 8) => "EQUALOP" + | (T 9) => "FUNCTOR" + | (T 10) => "IN" + | (T 11) => "LET" + | (T 12) => "LOCAL" + | (T 13) => "OPEN" + | (T 14) => "SIGNATURE" + | (T 15) => "STRUCTURE" + | (T 16) => "ANN" + | (T 17) => "PRIM" + | (T 18) => "FILE" + | (T 19) => "STRING" + | _ => "bogus-term" +local open Header in +val errtermvalue= +fn (T 0) => MlyValue.ID(fn () => ("bogus")) | +_ => MlyValue.VOID +end +val terms : term list = nil + $$ (T 17) $$ (T 16) $$ (T 15) $$ (T 14) $$ (T 13) $$ (T 12) $$ (T 11) + $$ (T 10) $$ (T 9) $$ (T 8) $$ (T 7) $$ (T 6) $$ (T 5) $$ (T 4) $$ +(T 3) $$ (T 2) $$ (T 1)end +structure Actions = +struct +type int = Int.int +exception mlyAction of int +local open Header in +val actions = +fn (i392:int,defaultPos,stack, + (()):arg) => +case (i392,stack) +of ( 0, ( ( _, ( MlyValue.basdecs basdecs1, basdecs1left, +basdecs1right)) :: rest671)) => let val result = MlyValue.mlb (fn _ + => let val (basdecs as basdecs1) = basdecs1 () + in (basdecs) +end) + in ( LrTable.NT 19, ( result, basdecs1left, basdecs1right), rest671) + +end +| ( 1, ( ( _, ( MlyValue.basdecsnode basdecsnode1, (basdecsnodeleft + as basdecsnode1left), (basdecsnoderight as basdecsnode1right))) :: +rest671)) => let val result = MlyValue.basdecs (fn _ => let val ( +basdecsnode as basdecsnode1) = basdecsnode1 () + in ( +Basdec.makeRegion' + (basdecsnode, basdecsnodeleft, basdecsnoderight) +) +end) + in ( LrTable.NT 8, ( result, basdecsnode1left, basdecsnode1right), +rest671) +end +| ( 2, ( rest671)) => let val result = MlyValue.basdecsnode (fn _ => + (Basdec.Seq [])) + in ( LrTable.NT 9, ( result, defaultPos, defaultPos), rest671) +end +| ( 3, ( ( _, ( MlyValue.basdecs basdecs1, _, basdecs1right)) :: ( _, + ( _, SEMICOLON1left, _)) :: rest671)) => let val result = +MlyValue.basdecsnode (fn _ => let val (basdecs as basdecs1) = +basdecs1 () + in (Basdec.Seq [basdecs]) +end) + in ( LrTable.NT 9, ( result, SEMICOLON1left, basdecs1right), rest671) + +end +| ( 4, ( ( _, ( MlyValue.basdecs basdecs1, _, basdecs1right)) :: ( _, + ( MlyValue.basdec basdec1, basdec1left, _)) :: rest671)) => let val +result = MlyValue.basdecsnode (fn _ => let val (basdec as basdec1) = +basdec1 () + val (basdecs as basdecs1) = basdecs1 () + in (Basdec.Seq [basdec, basdecs]) +end) + in ( LrTable.NT 9, ( result, basdec1left, basdecs1right), rest671) + +end +| ( 5, ( ( _, ( MlyValue.basdecnode basdecnode1, (basdecnodeleft as +basdecnode1left), (basdecnoderight as basdecnode1right))) :: rest671)) + => let val result = MlyValue.basdec (fn _ => let val (basdecnode + as basdecnode1) = basdecnode1 () + in ( +Basdec.makeRegion' + (basdecnode, basdecnodeleft, basdecnoderight) +) +end) + in ( LrTable.NT 6, ( result, basdecnode1left, basdecnode1right), +rest671) +end +| ( 6, ( ( _, ( MlyValue.fctbinds fctbinds1, _, (fctbindsright as +fctbinds1right))) :: ( _, ( _, (FUNCTORleft as FUNCTOR1left), _)) :: +rest671)) => let val result = MlyValue.basdecnode (fn _ => let val ( +fctbinds as fctbinds1) = fctbinds1 () + in ( +let + val fctbinds = Vector.fromList fctbinds + in + Basdec.Defs (ModIdBind.makeRegion' (ModIdBind.Fct fctbinds, FUNCTORleft, fctbindsright)) + end +) +end) + in ( LrTable.NT 7, ( result, FUNCTOR1left, fctbinds1right), rest671) + +end +| ( 7, ( ( _, ( MlyValue.sigbinds sigbinds1, _, (sigbindsright as +sigbinds1right))) :: ( _, ( _, (SIGNATUREleft as SIGNATURE1left), _)) + :: rest671)) => let val result = MlyValue.basdecnode (fn _ => let + val (sigbinds as sigbinds1) = sigbinds1 () + in ( +let + val sigbinds = Vector.fromList sigbinds + in + Basdec.Defs (ModIdBind.makeRegion' (ModIdBind.Sig sigbinds, SIGNATUREleft, sigbindsright)) + end +) +end) + in ( LrTable.NT 7, ( result, SIGNATURE1left, sigbinds1right), rest671 +) +end +| ( 8, ( ( _, ( MlyValue.strbinds strbinds1, _, (strbindsright as +strbinds1right))) :: ( _, ( _, (STRUCTUREleft as STRUCTURE1left), _)) + :: rest671)) => let val result = MlyValue.basdecnode (fn _ => let + val (strbinds as strbinds1) = strbinds1 () + in ( +let + val strbinds = Vector.fromList strbinds + in + Basdec.Defs (ModIdBind.makeRegion' (ModIdBind.Str strbinds, STRUCTUREleft, strbindsright)) + end +) +end) + in ( LrTable.NT 7, ( result, STRUCTURE1left, strbinds1right), rest671 +) +end +| ( 9, ( ( _, ( MlyValue.basbinds basbinds1, _, basbinds1right)) :: ( + _, ( _, BASIS1left, _)) :: rest671)) => let val result = +MlyValue.basdecnode (fn _ => let val (basbinds as basbinds1) = +basbinds1 () + in ( +let + val basbinds = Vector.fromList basbinds + in + Basdec.Basis basbinds + end +) +end) + in ( LrTable.NT 7, ( result, BASIS1left, basbinds1right), rest671) + +end +| ( 10, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.basdecs +basdecs2, _, _)) :: _ :: ( _, ( MlyValue.basdecs basdecs1, _, _)) :: ( + _, ( _, LOCAL1left, _)) :: rest671)) => let val result = +MlyValue.basdecnode (fn _ => let val basdecs1 = basdecs1 () + val basdecs2 = basdecs2 () + in (Basdec.Local (basdecs1, basdecs2)) +end) + in ( LrTable.NT 7, ( result, LOCAL1left, END1right), rest671) +end +| ( 11, ( ( _, ( MlyValue.basids basids1, _, basids1right)) :: ( _, ( + _, OPEN1left, _)) :: rest671)) => let val result = +MlyValue.basdecnode (fn _ => let val (basids as basids1) = basids1 () + in (Basdec.Open (Vector.fromList basids)) +end) + in ( LrTable.NT 7, ( result, OPEN1left, basids1right), rest671) +end +| ( 12, ( ( _, ( MlyValue.FILE FILE1, (FILEleft as FILE1left), ( +FILEright as FILE1right))) :: rest671)) => let val result = +MlyValue.basdecnode (fn _ => let val (FILE as FILE1) = FILE1 () + in ( +let val reg = reg (FILEleft, FILEright) + in lexAndParseProgOrMLB (FILE, reg) + end +) +end) + in ( LrTable.NT 7, ( result, FILE1left, FILE1right), rest671) +end +| ( 13, ( ( _, ( MlyValue.STRING STRING1, (STRINGleft as STRING1left) +, (STRINGright as STRING1right))) :: rest671)) => let val result = +MlyValue.basdecnode (fn _ => let val (STRING as STRING1) = STRING1 () + in ( +let val reg = reg (STRINGleft, STRINGright) + in lexAndParseProgOrMLB (STRING, reg) + end +) +end) + in ( LrTable.NT 7, ( result, STRING1left, STRING1right), rest671) +end +| ( 14, ( ( _, ( _, PRIM1left, PRIM1right)) :: rest671)) => let val +result = MlyValue.basdecnode (fn _ => (Basdec.Prim)) + in ( LrTable.NT 7, ( result, PRIM1left, PRIM1right), rest671) +end +| ( 15, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.basdecs +basdecs1, _, _)) :: _ :: ( _, ( MlyValue.annPlus annPlus1, _, _)) :: ( + _, ( _, ANN1left, _)) :: rest671)) => let val result = +MlyValue.basdecnode (fn _ => let val (annPlus as annPlus1) = annPlus1 + () + val (basdecs as basdecs1) = basdecs1 () + in ( +let + val extendRight = + let val right = valOf (Region.right (Basdec.region basdecs)) + in fn reg => Region.extendRight (reg, right) + end + fun mkAnn' ((ann,reg), basdecs) = Basdec.Ann (ann, reg, basdecs) + fun mkAnn ((ann,reg), basdecsnode) : Basdec.node = + mkAnn' ((ann,reg), Basdec.makeRegion (basdecsnode, extendRight reg)) + val (anns,ann) = List.splitLast annPlus + in + List.fold(anns, mkAnn'(ann, basdecs), mkAnn) + end +) +end) + in ( LrTable.NT 7, ( result, ANN1left, END1right), rest671) +end +| ( 16, ( ( _, ( MlyValue.fctbinds' fctbinds'1, _, fctbinds'1right)) + :: _ :: ( _, ( MlyValue.fctid fctid1, fctid1left, _)) :: rest671)) => + let val result = MlyValue.fctbinds (fn _ => let val (fctid as +fctid1) = fctid1 () + val (fctbinds' as fctbinds'1) = fctbinds'1 () + in ( +let val (def, fctbinds) = fctbinds' + in {lhs = fctid, rhs = def} + :: fctbinds + end +) +end) + in ( LrTable.NT 14, ( result, fctid1left, fctbinds'1right), rest671) + +end +| ( 17, ( ( _, ( MlyValue.fctbinds'' fctbinds''1, _, fctbinds''1right +)) :: ( _, ( MlyValue.fctid fctid1, fctid1left, _)) :: rest671)) => + let val result = MlyValue.fctbinds (fn _ => let val (fctid as +fctid1) = fctid1 () + val (fctbinds'' as fctbinds''1) = fctbinds''1 () + in ({lhs = fctid, rhs = fctid} :: fctbinds'') +end) + in ( LrTable.NT 14, ( result, fctid1left, fctbinds''1right), rest671) + +end +| ( 18, ( ( _, ( MlyValue.fctbinds'' fctbinds''1, _, fctbinds''1right +)) :: ( _, ( MlyValue.fctid fctid1, fctid1left, _)) :: rest671)) => + let val result = MlyValue.fctbinds' (fn _ => let val (fctid as +fctid1) = fctid1 () + val (fctbinds'' as fctbinds''1) = fctbinds''1 () + in (fctid, fctbinds'') +end) + in ( LrTable.NT 15, ( result, fctid1left, fctbinds''1right), rest671) + +end +| ( 19, ( rest671)) => let val result = MlyValue.fctbinds'' (fn _ => + ([])) + in ( LrTable.NT 16, ( result, defaultPos, defaultPos), rest671) +end +| ( 20, ( ( _, ( MlyValue.fctbinds fctbinds1, _, fctbinds1right)) :: +( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.fctbinds'' (fn _ => let val (fctbinds as fctbinds1) = +fctbinds1 () + in (fctbinds) +end) + in ( LrTable.NT 16, ( result, AND1left, fctbinds1right), rest671) +end +| ( 21, ( ( _, ( MlyValue.sigbinds' sigbinds'1, _, sigbinds'1right)) + :: _ :: ( _, ( MlyValue.sigid sigid1, sigid1left, _)) :: rest671)) => + let val result = MlyValue.sigbinds (fn _ => let val (sigid as +sigid1) = sigid1 () + val (sigbinds' as sigbinds'1) = sigbinds'1 () + in ( +let val (def, sigbinds) = sigbinds' + in {lhs = sigid, rhs = def} + :: sigbinds + end +) +end) + in ( LrTable.NT 20, ( result, sigid1left, sigbinds'1right), rest671) + +end +| ( 22, ( ( _, ( MlyValue.sigbinds'' sigbinds''1, _, sigbinds''1right +)) :: ( _, ( MlyValue.sigid sigid1, sigid1left, _)) :: rest671)) => + let val result = MlyValue.sigbinds (fn _ => let val (sigid as +sigid1) = sigid1 () + val (sigbinds'' as sigbinds''1) = sigbinds''1 () + in ({lhs = sigid, rhs = sigid} :: sigbinds'') +end) + in ( LrTable.NT 20, ( result, sigid1left, sigbinds''1right), rest671) + +end +| ( 23, ( ( _, ( MlyValue.sigbinds'' sigbinds''1, _, sigbinds''1right +)) :: ( _, ( MlyValue.sigid sigid1, sigid1left, _)) :: rest671)) => + let val result = MlyValue.sigbinds' (fn _ => let val (sigid as +sigid1) = sigid1 () + val (sigbinds'' as sigbinds''1) = sigbinds''1 () + in (sigid, sigbinds'') +end) + in ( LrTable.NT 21, ( result, sigid1left, sigbinds''1right), rest671) + +end +| ( 24, ( rest671)) => let val result = MlyValue.sigbinds'' (fn _ => + ([])) + in ( LrTable.NT 22, ( result, defaultPos, defaultPos), rest671) +end +| ( 25, ( ( _, ( MlyValue.sigbinds sigbinds1, _, sigbinds1right)) :: +( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.sigbinds'' (fn _ => let val (sigbinds as sigbinds1) = +sigbinds1 () + in (sigbinds) +end) + in ( LrTable.NT 22, ( result, AND1left, sigbinds1right), rest671) +end +| ( 26, ( ( _, ( MlyValue.strbinds' strbinds'1, _, strbinds'1right)) + :: _ :: ( _, ( MlyValue.strid strid1, strid1left, _)) :: rest671)) => + let val result = MlyValue.strbinds (fn _ => let val (strid as +strid1) = strid1 () + val (strbinds' as strbinds'1) = strbinds'1 () + in ( +let val (def, strbinds) = strbinds' + in {lhs = strid, rhs = def} + :: strbinds + end +) +end) + in ( LrTable.NT 24, ( result, strid1left, strbinds'1right), rest671) + +end +| ( 27, ( ( _, ( MlyValue.strbinds'' strbinds''1, _, strbinds''1right +)) :: ( _, ( MlyValue.strid strid1, strid1left, _)) :: rest671)) => + let val result = MlyValue.strbinds (fn _ => let val (strid as +strid1) = strid1 () + val (strbinds'' as strbinds''1) = strbinds''1 () + in ({lhs = strid, rhs = strid} :: strbinds'') +end) + in ( LrTable.NT 24, ( result, strid1left, strbinds''1right), rest671) + +end +| ( 28, ( ( _, ( MlyValue.strbinds'' strbinds''1, _, strbinds''1right +)) :: ( _, ( MlyValue.strid strid1, strid1left, _)) :: rest671)) => + let val result = MlyValue.strbinds' (fn _ => let val (strid as +strid1) = strid1 () + val (strbinds'' as strbinds''1) = strbinds''1 () + in (strid, strbinds'') +end) + in ( LrTable.NT 25, ( result, strid1left, strbinds''1right), rest671) + +end +| ( 29, ( rest671)) => let val result = MlyValue.strbinds'' (fn _ => + ([])) + in ( LrTable.NT 26, ( result, defaultPos, defaultPos), rest671) +end +| ( 30, ( ( _, ( MlyValue.strbinds strbinds1, _, strbinds1right)) :: +( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.strbinds'' (fn _ => let val (strbinds as strbinds1) = +strbinds1 () + in (strbinds) +end) + in ( LrTable.NT 26, ( result, AND1left, strbinds1right), rest671) +end +| ( 31, ( ( _, ( MlyValue.basbinds' basbinds'1, _, basbinds'1right)) + :: _ :: ( _, ( MlyValue.basid basid1, basid1left, _)) :: rest671)) => + let val result = MlyValue.basbinds (fn _ => let val (basid as +basid1) = basid1 () + val (basbinds' as basbinds'1) = basbinds'1 () + in ( +let val (def, basbinds) = basbinds' + in {name = basid, def = def} + :: basbinds + end +) +end) + in ( LrTable.NT 3, ( result, basid1left, basbinds'1right), rest671) + +end +| ( 32, ( ( _, ( MlyValue.basbinds'' basbinds''1, _, basbinds''1right +)) :: ( _, ( MlyValue.basexp basexp1, basexp1left, _)) :: rest671)) => + let val result = MlyValue.basbinds' (fn _ => let val (basexp as +basexp1) = basexp1 () + val (basbinds'' as basbinds''1) = basbinds''1 () + in (basexp, basbinds'') +end) + in ( LrTable.NT 4, ( result, basexp1left, basbinds''1right), rest671) + +end +| ( 33, ( rest671)) => let val result = MlyValue.basbinds'' (fn _ => + ([])) + in ( LrTable.NT 5, ( result, defaultPos, defaultPos), rest671) +end +| ( 34, ( ( _, ( MlyValue.basbinds basbinds1, _, basbinds1right)) :: +( _, ( _, AND1left, _)) :: rest671)) => let val result = +MlyValue.basbinds'' (fn _ => let val (basbinds as basbinds1) = +basbinds1 () + in (basbinds) +end) + in ( LrTable.NT 5, ( result, AND1left, basbinds1right), rest671) +end +| ( 35, ( ( _, ( MlyValue.basexpnode basexpnode1, (basexpnodeleft as +basexpnode1left), (basexpnoderight as basexpnode1right))) :: rest671)) + => let val result = MlyValue.basexp (fn _ => let val (basexpnode + as basexpnode1) = basexpnode1 () + in ( +Basexp.makeRegion' + (basexpnode, basexpnodeleft, basexpnoderight) +) +end) + in ( LrTable.NT 10, ( result, basexpnode1left, basexpnode1right), +rest671) +end +| ( 36, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.basdecs +basdecs1, _, _)) :: ( _, ( _, BAS1left, _)) :: rest671)) => let val +result = MlyValue.basexpnode (fn _ => let val (basdecs as basdecs1) = + basdecs1 () + in (Basexp.Bas basdecs) +end) + in ( LrTable.NT 11, ( result, BAS1left, END1right), rest671) +end +| ( 37, ( ( _, ( MlyValue.basid basid1, basid1left, basid1right)) :: +rest671)) => let val result = MlyValue.basexpnode (fn _ => let val ( +basid as basid1) = basid1 () + in (Basexp.Var basid) +end) + in ( LrTable.NT 11, ( result, basid1left, basid1right), rest671) +end +| ( 38, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.basexp basexp1, + _, _)) :: _ :: ( _, ( MlyValue.basdecs basdecs1, _, _)) :: ( _, ( _, +LET1left, _)) :: rest671)) => let val result = MlyValue.basexpnode + (fn _ => let val (basdecs as basdecs1) = basdecs1 () + val (basexp as basexp1) = basexp1 () + in (Basexp.Let (basdecs, basexp)) +end) + in ( LrTable.NT 11, ( result, LET1left, END1right), rest671) +end +| ( 39, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => + let val result = MlyValue.basid (fn _ => let val (id as id1) = id1 + () + in (Basid.fromSymbol id) +end) + in ( LrTable.NT 12, ( result, id1left, id1right), rest671) +end +| ( 40, ( ( _, ( MlyValue.basid basid1, basid1left, basid1right)) :: +rest671)) => let val result = MlyValue.basids (fn _ => let val ( +basid as basid1) = basid1 () + in ([basid]) +end) + in ( LrTable.NT 13, ( result, basid1left, basid1right), rest671) +end +| ( 41, ( ( _, ( MlyValue.basids basids1, _, basids1right)) :: ( _, ( + MlyValue.basid basid1, basid1left, _)) :: rest671)) => let val +result = MlyValue.basids (fn _ => let val (basid as basid1) = basid1 + () + val (basids as basids1) = basids1 () + in (basid :: basids) +end) + in ( LrTable.NT 13, ( result, basid1left, basids1right), rest671) +end +| ( 42, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => + let val result = MlyValue.fctid (fn _ => let val (id as id1) = id1 + () + in (Fctid.fromSymbol id) +end) + in ( LrTable.NT 17, ( result, id1left, id1right), rest671) +end +| ( 43, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => + let val result = MlyValue.sigid (fn _ => let val (id as id1) = id1 + () + in (Sigid.fromSymbol id) +end) + in ( LrTable.NT 23, ( result, id1left, id1right), rest671) +end +| ( 44, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => + let val result = MlyValue.strid (fn _ => let val (id as id1) = id1 + () + in (Strid.fromSymbol id) +end) + in ( LrTable.NT 27, ( result, id1left, id1right), rest671) +end +| ( 45, ( ( _, ( MlyValue.ID ID1, (IDleft as ID1left), (IDright as +ID1right))) :: rest671)) => let val result = MlyValue.id (fn _ => let + val (ID as ID1) = ID1 () + in (Symbol.fromString ID, reg (IDleft, IDright)) +end) + in ( LrTable.NT 18, ( result, ID1left, ID1right), rest671) +end +| ( 46, ( ( _, ( MlyValue.STRING STRING1, (STRINGleft as STRING1left) +, (STRINGright as STRING1right))) :: rest671)) => let val result = +MlyValue.ann (fn _ => let val (STRING as STRING1) = STRING1 () + in (STRING, reg (STRINGleft, STRINGright)) +end) + in ( LrTable.NT 0, ( result, STRING1left, STRING1right), rest671) +end +| ( 47, ( ( _, ( MlyValue.annStar annStar1, _, annStar1right)) :: ( _ +, ( MlyValue.ann ann1, ann1left, _)) :: rest671)) => let val result = + MlyValue.annPlus (fn _ => let val (ann as ann1) = ann1 () + val (annStar as annStar1) = annStar1 () + in (ann::annStar) +end) + in ( LrTable.NT 1, ( result, ann1left, annStar1right), rest671) +end +| ( 48, ( rest671)) => let val result = MlyValue.annStar (fn _ => ( +[])) + in ( LrTable.NT 2, ( result, defaultPos, defaultPos), rest671) +end +| ( 49, ( ( _, ( MlyValue.annPlus annPlus1, annPlus1left, +annPlus1right)) :: rest671)) => let val result = MlyValue.annStar (fn + _ => let val (annPlus as annPlus1) = annPlus1 () + in (annPlus) +end) + in ( LrTable.NT 2, ( result, annPlus1left, annPlus1right), rest671) + +end +| _ => raise (mlyAction i392) +end +val void = MlyValue.VOID +val extract = fn a => (fn MlyValue.mlb x => x +| _ => let exception ParseInternal + in raise ParseInternal end) a () +end +end +structure Tokens : MLB_TOKENS = +struct +type svalue = ParserData.svalue +type ('a,'b) token = ('a,'b) Token.token +fun ID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,( +ParserData.MlyValue.ID (fn () => i),p1,p2)) +fun COMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,( +ParserData.MlyValue.VOID,p1,p2)) +fun SEMICOLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,( +ParserData.MlyValue.VOID,p1,p2)) +fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,( +ParserData.MlyValue.VOID,p1,p2)) +fun AND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,( +ParserData.MlyValue.VOID,p1,p2)) +fun BAS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,( +ParserData.MlyValue.VOID,p1,p2)) +fun BASIS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,( +ParserData.MlyValue.VOID,p1,p2)) +fun END (p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,( +ParserData.MlyValue.VOID,p1,p2)) +fun EQUALOP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,( +ParserData.MlyValue.VOID,p1,p2)) +fun FUNCTOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,( +ParserData.MlyValue.VOID,p1,p2)) +fun IN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,( +ParserData.MlyValue.VOID,p1,p2)) +fun LET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,( +ParserData.MlyValue.VOID,p1,p2)) +fun LOCAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,( +ParserData.MlyValue.VOID,p1,p2)) +fun OPEN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,( +ParserData.MlyValue.VOID,p1,p2)) +fun SIGNATURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,( +ParserData.MlyValue.VOID,p1,p2)) +fun STRUCTURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,( +ParserData.MlyValue.VOID,p1,p2)) +fun ANN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,( +ParserData.MlyValue.VOID,p1,p2)) +fun PRIM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,( +ParserData.MlyValue.VOID,p1,p2)) +fun FILE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,( +ParserData.MlyValue.FILE (fn () => i),p1,p2)) +fun STRING (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,( +ParserData.MlyValue.STRING (fn () => i),p1,p2)) +end +end diff --git a/lang/mlton/files/mlb.lex.sml b/lang/mlton/files/mlb.lex.sml new file mode 100644 index 000000000000..7ffe122e7248 --- /dev/null +++ b/lang/mlton/files/mlb.lex.sml @@ -0,0 +1,1854 @@ +type int = Int.int +functor MLBLexFun (structure Tokens : MLB_TOKENS)= + struct + structure UserDeclarations = + struct +(* Copyright (C) 2004-2006 Henry Cejtin, Matthew Fluet, Suresh + * Jagannathan, and Stephen Weeks. + * + * MLton is released under a BSD-style license. + * See the file MLton-LICENSE for details. + *) + +type int = Int.t + +type svalue = Tokens.svalue +type pos = SourcePos.t +type lexresult = (svalue, pos) Tokens.token +type lexarg = {source: Source.t} +type arg = lexarg +type ('a,'b) token = ('a,'b) Tokens.token + +val charlist: string list ref = ref [] +val colNum: int ref = ref 0 +val commentLevel: int ref = ref 0 +val commentStart = ref SourcePos.bogus +val lineFile: File.t ref = ref "" +val lineNum: int ref = ref 0 +val stringStart = ref SourcePos.bogus + +fun lineDirective (source, file, yypos) = + Source.lineDirective (source, file, + {lineNum = !lineNum, + lineStart = yypos - !colNum}) +fun addString (s: string) = charlist := s :: (!charlist) +fun addChar (c: char) = addString (String.fromChar c) + +fun inc (ri as ref (i: int)) = (ri := i + 1) +fun dec (ri as ref (i: int)) = (ri := i-1) + +fun error (source, left, right, msg) = + Control.errorStr (Region.make {left = Source.getPos (source, left), + right = Source.getPos (source, right)}, + msg) + +fun stringError (source, right, msg) = + Control.errorStr (Region.make {left = !stringStart, + right = Source.getPos (source, right)}, + msg) + +val eof: lexarg -> lexresult = + fn {source, ...} => + let + val pos = Source.lineStart source + val _ = + if !commentLevel > 0 + then Control.errorStr (Region.make {left = !commentStart, + right = pos}, + "unclosed comment") + else () + in + Tokens.EOF (pos, pos) + end + +val size = String.size + +fun tok (t, s, l, r) = + let + val l = Source.getPos (s, l) + val r = Source.getPos (s, r) + val _ = + if true + then () + else + print (concat ["tok (", + SourcePos.toString l, + ", " , + SourcePos.toString r, + ")\n"]) + in + t (l, r) + end + +fun tok' (t, x, s, l) = tok (fn (l, r) => t (x, l, r), s, l, l + size x) + +end (* end of user routines *) +exception LexError (* raised if illegal leaf action tried *) +structure Internal = + struct + +datatype yyfinstate = N of int +type statedata = {fin : yyfinstate list, trans: string} +(* transition & final state table *) +val tab = let +val s = [ + (0, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (1, +"\017\017\017\017\017\017\017\017\017\127\130\017\127\129\017\017\ +\\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\ +\\127\017\126\017\125\017\017\017\117\017\017\017\116\095\115\096\ +\\095\095\095\095\095\095\095\095\095\095\017\094\017\093\017\017\ +\\017\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\ +\\018\018\018\018\018\018\018\018\018\018\018\017\017\017\017\088\ +\\017\084\079\018\018\076\069\018\018\067\018\018\060\018\018\056\ +\\018\018\018\039\018\018\018\018\018\018\018\017\017\017\017\017\ +\\017" +), + (3, +"\131\131\131\131\131\131\131\131\131\131\136\131\131\131\131\131\ +\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\ +\\131\131\131\131\131\131\131\131\134\131\132\131\131\131\131\131\ +\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\ +\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\ +\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\ +\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\ +\\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\131\ +\\131" +), + (5, +"\137\137\137\137\137\137\137\137\137\137\165\137\137\164\137\137\ +\\137\137\137\137\137\137\137\137\137\137\137\137\137\137\137\137\ +\\138\138\163\138\138\138\138\138\138\138\138\138\138\138\138\138\ +\\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\ +\\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\ +\\138\138\138\138\138\138\138\138\138\138\138\138\139\138\138\138\ +\\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\ +\\138\138\138\138\138\138\138\138\138\138\138\138\138\138\138\137\ +\\137" +), + (7, +"\166\166\166\166\166\166\166\166\166\168\171\166\168\170\166\166\ +\\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\ +\\168\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\ +\\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\ +\\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\ +\\166\166\166\166\166\166\166\166\166\166\166\166\167\166\166\166\ +\\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\ +\\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\166\ +\\166" +), + (9, +"\172\172\172\172\172\172\172\172\172\172\000\172\172\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\175\172\172\172\172\172\ +\\173\173\173\173\173\173\173\173\173\173\172\172\172\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\ +\\172" +), + (11, +"\177\177\177\177\177\177\177\177\177\177\000\177\177\177\177\177\ +\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\ +\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\180\177\ +\\178\178\178\178\178\178\178\178\178\178\177\177\177\177\177\177\ +\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\ +\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\ +\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\ +\\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\ +\\177" +), + (13, +"\172\172\172\172\172\172\172\172\172\184\000\172\184\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\ +\\184\172\183\172\172\172\172\172\172\172\181\172\172\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\ +\\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\172\ +\\172" +), + (15, +"\187\187\187\187\187\187\187\187\187\187\188\187\187\187\187\187\ +\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\ +\\187\187\191\187\187\187\187\187\187\187\189\187\187\187\187\187\ +\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\ +\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\ +\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\ +\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\ +\\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\187\ +\\187" +), + (18, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (20, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\035\000\000\000\000\000\000\000\000\021\033\000\ +\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\ +\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\ +\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\ +\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\ +\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\ +\\000" +), + (21, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\000\000\000\000\000\000\021\022\020\ +\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\ +\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\ +\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\ +\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\ +\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\ +\\000" +), + (22, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\027\000\000\000\000\000\000\000\000\023\000\000\ +\\023\023\023\023\023\023\023\023\023\023\000\000\000\000\000\000\ +\\000\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\ +\\023\023\023\023\023\023\023\023\023\023\023\000\000\000\000\023\ +\\000\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\ +\\023\023\023\023\023\023\023\023\023\023\023\000\000\000\000\000\ +\\000" +), + (23, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\024\000\000\000\000\000\000\000\000\023\022\020\ +\\023\023\023\023\023\023\023\023\023\023\000\000\000\000\000\000\ +\\000\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\ +\\023\023\023\023\023\023\023\023\023\023\023\000\000\000\000\023\ +\\000\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\ +\\023\023\023\023\023\023\023\023\023\023\023\000\000\000\000\000\ +\\000" +), + (24, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\025\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (25, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\026\026\026\026\026\026\026\026\026\026\026\026\026\026\026\ +\\026\026\026\026\026\026\026\026\026\026\026\000\000\000\000\026\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (26, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\023\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\026\026\026\026\026\026\026\026\026\026\026\026\026\026\026\ +\\026\026\026\026\026\026\026\026\026\026\026\000\000\000\000\026\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (27, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\028\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (28, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\029\029\029\029\029\029\029\029\029\029\029\029\029\029\029\ +\\029\029\029\029\029\029\029\029\029\029\029\000\000\000\000\029\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (29, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\023\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\029\029\029\029\029\029\029\029\029\029\029\029\029\029\029\ +\\029\029\029\029\029\029\029\029\029\029\029\000\000\000\000\029\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (30, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\031\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (31, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\ +\\032\032\032\032\032\032\032\032\032\032\032\000\000\000\000\032\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (32, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\ +\\032\032\032\032\032\032\032\032\032\032\032\000\000\000\000\032\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (33, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\034\020\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (34, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (35, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\036\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (36, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\ +\\037\037\037\037\037\037\037\037\037\037\037\000\000\000\000\037\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (37, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\ +\\037\037\037\037\037\037\037\037\037\037\037\000\000\000\000\037\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (38, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\038\000\000\000\000\000\000\000\000\ +\\038\038\038\038\038\038\038\038\038\038\000\000\000\000\000\000\ +\\000\038\038\038\038\038\038\038\038\038\038\038\038\038\038\038\ +\\038\038\038\038\038\038\038\038\038\038\038\000\000\000\000\038\ +\\000\038\038\038\038\038\038\038\038\038\038\038\038\038\038\038\ +\\038\038\038\038\038\038\038\038\038\038\038\000\000\000\000\000\ +\\000" +), + (39, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\048\019\019\019\019\019\019\ +\\019\019\019\019\040\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (40, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\041\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (41, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\042\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (42, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\043\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (43, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\044\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (44, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\045\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (45, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\046\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (46, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\047\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (48, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\049\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (49, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\050\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (50, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\051\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (51, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\052\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (52, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\053\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (53, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\054\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (54, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\055\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (56, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\057\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (57, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\058\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (58, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\059\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (60, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\065\019\019\019\019\019\019\019\019\019\061\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (61, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\062\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (62, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\063\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (63, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\064\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (65, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\066\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (67, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\068\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (69, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\070\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (70, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\071\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (71, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\072\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (72, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\073\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (73, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\074\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (74, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\075\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (76, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\077\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (77, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\078\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (79, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\080\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (80, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\081\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (81, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\082\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (82, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\083\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (84, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\085\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (85, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\038\000\000\000\000\000\021\022\020\ +\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\ +\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\ +\\000\019\019\019\087\019\019\019\019\019\019\019\019\019\086\019\ +\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\ +\\000" +), + (88, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\000\000\000\000\000\000\021\022\020\ +\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\ +\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\ +\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\ +\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\ +\\089\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\ +\\000" +), + (89, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\000\000\000\000\000\000\021\022\020\ +\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\ +\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\ +\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\ +\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\ +\\021\021\090\021\021\021\021\021\021\021\021\000\000\000\000\000\ +\\000" +), + (90, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\000\000\000\000\000\000\021\022\020\ +\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\ +\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\ +\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\ +\\000\021\021\021\021\021\021\021\021\091\021\021\021\021\021\021\ +\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\ +\\000" +), + (91, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\030\000\000\000\000\000\000\000\000\021\022\020\ +\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\ +\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\ +\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\ +\\000\021\021\021\021\021\021\021\021\021\021\021\021\092\021\021\ +\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\ +\\000" +), + (96, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\101\000\000\000\000\000\000\000\000\097\099\000\ +\\097\097\097\097\097\097\097\097\097\097\000\000\000\000\000\000\ +\\000\097\097\097\097\097\097\097\097\097\097\097\097\097\097\097\ +\\097\097\097\097\097\097\097\097\097\097\097\000\000\000\000\097\ +\\000\097\097\097\097\097\097\097\097\097\097\097\097\097\097\097\ +\\097\097\097\097\097\097\097\097\097\097\097\000\000\000\000\000\ +\\000" +), + (97, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\112\000\000\000\000\000\000\000\000\097\104\098\ +\\097\097\097\097\097\097\097\097\097\097\000\000\000\000\000\000\ +\\000\097\097\097\097\097\097\097\097\097\097\097\097\097\097\097\ +\\097\097\097\097\097\097\097\097\097\097\097\000\000\000\000\097\ +\\000\097\097\097\097\097\097\097\097\097\097\097\097\097\097\097\ +\\097\097\097\097\097\097\097\097\097\097\097\000\000\000\000\000\ +\\000" +), + (99, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\100\098\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (100, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\098\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (101, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\102\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (102, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\ +\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (103, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\097\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\ +\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (104, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\109\000\000\000\000\000\000\000\000\105\000\000\ +\\105\105\105\105\105\105\105\105\105\105\000\000\000\000\000\000\ +\\000\105\105\105\105\105\105\105\105\105\105\105\105\105\105\105\ +\\105\105\105\105\105\105\105\105\105\105\105\000\000\000\000\105\ +\\000\105\105\105\105\105\105\105\105\105\105\105\105\105\105\105\ +\\105\105\105\105\105\105\105\105\105\105\105\000\000\000\000\000\ +\\000" +), + (105, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\106\000\000\000\000\000\000\000\000\105\104\098\ +\\105\105\105\105\105\105\105\105\105\105\000\000\000\000\000\000\ +\\000\105\105\105\105\105\105\105\105\105\105\105\105\105\105\105\ +\\105\105\105\105\105\105\105\105\105\105\105\000\000\000\000\105\ +\\000\105\105\105\105\105\105\105\105\105\105\105\105\105\105\105\ +\\105\105\105\105\105\105\105\105\105\105\105\000\000\000\000\000\ +\\000" +), + (106, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\107\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (107, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\108\108\108\108\108\108\108\108\108\108\108\108\108\108\108\ +\\108\108\108\108\108\108\108\108\108\108\108\000\000\000\000\108\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (108, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\105\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\108\108\108\108\108\108\108\108\108\108\108\108\108\108\108\ +\\108\108\108\108\108\108\108\108\108\108\108\000\000\000\000\108\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (109, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\110\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (110, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\ +\\111\111\111\111\111\111\111\111\111\111\111\000\000\000\000\111\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (111, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\105\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\ +\\111\111\111\111\111\111\111\111\111\111\111\000\000\000\000\111\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (112, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\113\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (113, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\114\114\114\114\114\114\114\114\114\114\114\114\114\114\114\ +\\114\114\114\114\114\114\114\114\114\114\114\000\000\000\000\114\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (114, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\097\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\114\114\114\114\114\114\114\114\114\114\114\114\114\114\114\ +\\114\114\114\114\114\114\114\114\114\114\114\000\000\000\000\114\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (117, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\118\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (118, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\119\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (119, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\120\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (120, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\121\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (121, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\122\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (122, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\123\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (123, +"\000\000\000\000\000\000\000\000\000\124\000\000\124\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\124\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (127, +"\000\000\000\000\000\000\000\000\000\128\000\000\128\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (129, +"\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (132, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\133\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (134, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\135\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (139, +"\000\000\000\000\000\000\000\000\000\160\162\000\160\161\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\160\000\159\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\156\156\156\156\156\156\156\156\156\156\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\155\000\152\000\ +\\000\151\150\000\000\000\149\000\000\000\000\000\000\000\148\000\ +\\000\000\147\000\146\141\140\000\000\000\000\000\000\000\000\000\ +\\000" +), + (141, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\142\142\142\142\142\142\142\142\142\142\000\000\000\000\000\000\ +\\000\142\142\142\142\142\142\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\142\142\142\142\142\142\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (142, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\143\143\143\143\143\143\143\143\143\143\000\000\000\000\000\000\ +\\000\143\143\143\143\143\143\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\143\143\143\143\143\143\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (143, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\144\144\144\144\144\144\144\144\144\144\000\000\000\000\000\000\ +\\000\144\144\144\144\144\144\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\144\144\144\144\144\144\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (144, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\145\145\145\145\145\145\145\145\145\145\000\000\000\000\000\000\ +\\000\145\145\145\145\145\145\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\145\145\145\145\145\145\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (152, +"\153\153\153\153\153\153\153\153\153\153\000\153\153\153\153\153\ +\\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\ +\\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\ +\\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\ +\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\ +\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\ +\\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\ +\\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\153\ +\\153" +), + (156, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\157\157\157\157\157\157\157\157\157\157\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (157, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\158\158\158\158\158\158\158\158\158\158\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (160, +"\000\000\000\000\000\000\000\000\000\160\000\000\160\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (161, +"\000\000\000\000\000\000\000\000\000\000\162\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (164, +"\000\000\000\000\000\000\000\000\000\000\165\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (168, +"\000\000\000\000\000\000\000\000\000\169\000\000\169\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (170, +"\000\000\000\000\000\000\000\000\000\000\171\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (173, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\174\174\174\174\174\174\174\174\174\174\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (175, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\176\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (178, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\179\179\179\179\179\179\179\179\179\179\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (181, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\182\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (184, +"\000\000\000\000\000\000\000\000\000\186\000\000\186\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\186\000\185\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (187, +"\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\000\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188" +), + (189, +"\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\000\188\188\188\188\188\188\190\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\188\ +\\188" +), + (191, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\192\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (192, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), +(0, "")] +fun f x = x +val s = map f (rev (tl (rev s))) +exception LexHackingError +fun look ((j,x)::r, i) = if i = j then x else look(r, i) + | look ([], i) = raise LexHackingError +fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)} +in Vector.fromList(map g +[{fin = [], trans = 0}, +{fin = [(N 2)], trans = 1}, +{fin = [(N 2)], trans = 1}, +{fin = [], trans = 3}, +{fin = [], trans = 3}, +{fin = [], trans = 5}, +{fin = [], trans = 5}, +{fin = [(N 323)], trans = 7}, +{fin = [(N 323)], trans = 7}, +{fin = [], trans = 9}, +{fin = [], trans = 9}, +{fin = [], trans = 11}, +{fin = [], trans = 11}, +{fin = [], trans = 13}, +{fin = [], trans = 13}, +{fin = [(N 223)], trans = 15}, +{fin = [(N 223)], trans = 15}, +{fin = [(N 204)], trans = 0}, +{fin = [(N 90),(N 185),(N 204)], trans = 18}, +{fin = [(N 90),(N 185)], trans = 18}, +{fin = [], trans = 20}, +{fin = [(N 185)], trans = 21}, +{fin = [], trans = 22}, +{fin = [(N 185)], trans = 23}, +{fin = [], trans = 24}, +{fin = [], trans = 25}, +{fin = [], trans = 26}, +{fin = [], trans = 27}, +{fin = [], trans = 28}, +{fin = [], trans = 29}, +{fin = [], trans = 30}, +{fin = [], trans = 31}, +{fin = [], trans = 32}, +{fin = [], trans = 33}, +{fin = [], trans = 34}, +{fin = [], trans = 35}, +{fin = [], trans = 36}, +{fin = [], trans = 37}, +{fin = [(N 90)], trans = 38}, +{fin = [(N 90),(N 185),(N 204)], trans = 39}, +{fin = [(N 90),(N 185)], trans = 40}, +{fin = [(N 90),(N 185)], trans = 41}, +{fin = [(N 90),(N 185)], trans = 42}, +{fin = [(N 90),(N 185)], trans = 43}, +{fin = [(N 90),(N 185)], trans = 44}, +{fin = [(N 90),(N 185)], trans = 45}, +{fin = [(N 90),(N 185)], trans = 46}, +{fin = [(N 87),(N 90),(N 185)], trans = 18}, +{fin = [(N 90),(N 185)], trans = 48}, +{fin = [(N 90),(N 185)], trans = 49}, +{fin = [(N 90),(N 185)], trans = 50}, +{fin = [(N 90),(N 185)], trans = 51}, +{fin = [(N 90),(N 185)], trans = 52}, +{fin = [(N 90),(N 185)], trans = 53}, +{fin = [(N 90),(N 185)], trans = 54}, +{fin = [(N 77),(N 90),(N 185)], trans = 18}, +{fin = [(N 90),(N 185),(N 204)], trans = 56}, +{fin = [(N 90),(N 185)], trans = 57}, +{fin = [(N 90),(N 185)], trans = 58}, +{fin = [(N 67),(N 90),(N 185)], trans = 18}, +{fin = [(N 90),(N 185),(N 204)], trans = 60}, +{fin = [(N 90),(N 185)], trans = 61}, +{fin = [(N 90),(N 185)], trans = 62}, +{fin = [(N 90),(N 185)], trans = 63}, +{fin = [(N 62),(N 90),(N 185)], trans = 18}, +{fin = [(N 90),(N 185)], trans = 65}, +{fin = [(N 56),(N 90),(N 185)], trans = 18}, +{fin = [(N 90),(N 185),(N 204)], trans = 67}, +{fin = [(N 52),(N 90),(N 185)], trans = 18}, +{fin = [(N 90),(N 185),(N 204)], trans = 69}, +{fin = [(N 90),(N 185)], trans = 70}, +{fin = [(N 90),(N 185)], trans = 71}, +{fin = [(N 90),(N 185)], trans = 72}, +{fin = [(N 90),(N 185)], trans = 73}, +{fin = [(N 90),(N 185)], trans = 74}, +{fin = [(N 49),(N 90),(N 185)], trans = 18}, +{fin = [(N 90),(N 185),(N 204)], trans = 76}, +{fin = [(N 90),(N 185)], trans = 77}, +{fin = [(N 41),(N 90),(N 185)], trans = 18}, +{fin = [(N 90),(N 185),(N 204)], trans = 79}, +{fin = [(N 90),(N 185)], trans = 80}, +{fin = [(N 31),(N 90),(N 185)], trans = 81}, +{fin = [(N 90),(N 185)], trans = 82}, +{fin = [(N 37),(N 90),(N 185)], trans = 18}, +{fin = [(N 90),(N 185),(N 204)], trans = 84}, +{fin = [(N 90),(N 185)], trans = 85}, +{fin = [(N 23),(N 90),(N 185)], trans = 18}, +{fin = [(N 27),(N 90),(N 185)], trans = 18}, +{fin = [(N 185),(N 204)], trans = 88}, +{fin = [(N 185)], trans = 89}, +{fin = [(N 185)], trans = 90}, +{fin = [(N 185)], trans = 91}, +{fin = [(N 13),(N 185)], trans = 21}, +{fin = [(N 19),(N 204)], trans = 0}, +{fin = [(N 17),(N 204)], trans = 0}, +{fin = [(N 185),(N 204)], trans = 21}, +{fin = [(N 204)], trans = 96}, +{fin = [(N 185)], trans = 97}, +{fin = [], trans = 96}, +{fin = [], trans = 99}, +{fin = [], trans = 100}, +{fin = [], trans = 101}, +{fin = [], trans = 102}, +{fin = [], trans = 103}, +{fin = [], trans = 104}, +{fin = [(N 185)], trans = 105}, +{fin = [], trans = 106}, +{fin = [], trans = 107}, +{fin = [], trans = 108}, +{fin = [], trans = 109}, +{fin = [], trans = 110}, +{fin = [], trans = 111}, +{fin = [], trans = 112}, +{fin = [], trans = 113}, +{fin = [], trans = 114}, +{fin = [(N 204)], trans = 33}, +{fin = [(N 15),(N 204)], trans = 0}, +{fin = [(N 204)], trans = 117}, +{fin = [(N 202)], trans = 118}, +{fin = [], trans = 119}, +{fin = [], trans = 120}, +{fin = [], trans = 121}, +{fin = [], trans = 122}, +{fin = [], trans = 123}, +{fin = [(N 199)], trans = 123}, +{fin = [(N 204)], trans = 35}, +{fin = [(N 187),(N 204)], trans = 0}, +{fin = [(N 2),(N 204)], trans = 127}, +{fin = [(N 2)], trans = 127}, +{fin = [(N 7),(N 204)], trans = 129}, +{fin = [(N 7)], trans = 0}, +{fin = [(N 242)], trans = 0}, +{fin = [(N 242)], trans = 132}, +{fin = [(N 240)], trans = 0}, +{fin = [(N 242)], trans = 134}, +{fin = [(N 235)], trans = 0}, +{fin = [(N 237)], trans = 0}, +{fin = [(N 315)], trans = 0}, +{fin = [(N 313),(N 315)], trans = 0}, +{fin = [(N 305),(N 313),(N 315)], trans = 139}, +{fin = [(N 265)], trans = 0}, +{fin = [], trans = 141}, +{fin = [], trans = 142}, +{fin = [], trans = 143}, +{fin = [], trans = 144}, +{fin = [(N 285)], trans = 0}, +{fin = [(N 262)], trans = 0}, +{fin = [(N 259)], trans = 0}, +{fin = [(N 256)], trans = 0}, +{fin = [(N 253)], trans = 0}, +{fin = [(N 250)], trans = 0}, +{fin = [(N 247)], trans = 0}, +{fin = [], trans = 152}, +{fin = [(N 273)], trans = 0}, +{fin = [(N 269),(N 273)], trans = 0}, +{fin = [(N 291)], trans = 0}, +{fin = [], trans = 156}, +{fin = [], trans = 157}, +{fin = [(N 278)], trans = 0}, +{fin = [(N 288)], trans = 0}, +{fin = [(N 297)], trans = 160}, +{fin = [(N 303)], trans = 161}, +{fin = [(N 303)], trans = 0}, +{fin = [(N 244),(N 313),(N 315)], trans = 0}, +{fin = [(N 310),(N 315)], trans = 164}, +{fin = [(N 310)], trans = 0}, +{fin = [(N 327)], trans = 0}, +{fin = [(N 325),(N 327)], trans = 0}, +{fin = [(N 323),(N 327)], trans = 168}, +{fin = [(N 323)], trans = 168}, +{fin = [(N 320),(N 327)], trans = 170}, +{fin = [(N 320)], trans = 0}, +{fin = [(N 232)], trans = 0}, +{fin = [(N 207),(N 232)], trans = 173}, +{fin = [(N 207)], trans = 173}, +{fin = [(N 232)], trans = 175}, +{fin = [(N 230)], trans = 0}, +{fin = [(N 214)], trans = 0}, +{fin = [(N 212),(N 214)], trans = 178}, +{fin = [(N 212)], trans = 178}, +{fin = [(N 209),(N 214)], trans = 0}, +{fin = [(N 232)], trans = 181}, +{fin = [(N 217),(N 230)], trans = 0}, +{fin = [(N 221),(N 232)], trans = 0}, +{fin = [(N 232)], trans = 184}, +{fin = [(N 221)], trans = 0}, +{fin = [], trans = 184}, +{fin = [(N 223),(N 232)], trans = 187}, +{fin = [(N 223)], trans = 187}, +{fin = [(N 223),(N 232)], trans = 189}, +{fin = [(N 223),(N 230)], trans = 187}, +{fin = [(N 232)], trans = 191}, +{fin = [], trans = 192}, +{fin = [(N 227)], trans = 0}]) +end +structure StartStates = + struct + datatype yystartstate = STARTSTATE of int + +(* start state definitions *) + +val A = STARTSTATE 3; +val F = STARTSTATE 7; +val INITIAL = STARTSTATE 1; +val L = STARTSTATE 9; +val LL = STARTSTATE 11; +val LLC = STARTSTATE 13; +val LLCQ = STARTSTATE 15; +val S = STARTSTATE 5; + +end +type result = UserDeclarations.lexresult + exception LexerError (* raised if illegal leaf action tried *) +end + +type int = Int.int +fun makeLexer (yyinput: int -> string) = +let val yygone0:int= ~1 + val yyb = ref "\n" (* buffer *) + val yybl: int ref = ref 1 (*buffer length *) + val yybufpos: int ref = ref 1 (* location of next character to use *) + val yygone: int ref = ref yygone0 (* position in file of beginning of buffer *) + val yydone = ref false (* eof found yet? *) + val yybegin: int ref = ref 1 (*Current 'start state' for lexer *) + + val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) => + yybegin := x + +fun lex (yyarg as ({source})) = +let fun continue() : Internal.result = + let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0: int) = + let fun action (i: int,nil) = raise LexError + | action (i,nil::l) = action (i-1,l) + | action (i,(node::acts)::l) = + case node of + Internal.N yyk => + (let fun yymktext() = String.substring(!yyb,i0,i-i0) + val yypos: int = i0+ !yygone + fun REJECT() = action(i,acts::l) + open UserDeclarations Internal.StartStates + in (yybufpos := i; case yyk of + + (* Application actions *) + + 13 => (tok (Tokens.PRIM, source, yypos, yypos + 4)) +| 15 => (tok (Tokens.COMMA, source, yypos, yypos + 1)) +| 17 => (tok (Tokens.SEMICOLON, source, yypos, yypos + 1)) +| 185 => let val yytext=yymktext() in tok' (Tokens.FILE, yytext, source, yypos) end +| 187 => (charlist := [""] + ; stringStart := Source.getPos (source, yypos) + ; YYBEGIN S + ; continue ()) +| 19 => (tok (Tokens.EQUALOP, source, yypos, yypos + 1)) +| 199 => (YYBEGIN L + ; commentStart := Source.getPos (source, yypos) + ; commentLevel := 1 + ; continue ()) +| 2 => (continue ()) +| 202 => (YYBEGIN A + ; commentLevel := 1 + ; commentStart := Source.getPos (source, yypos) + ; continue ()) +| 204 => (error (source, yypos, yypos + 1, "illegal token") ; + continue ()) +| 207 => let val yytext=yymktext() in YYBEGIN LL + ; (lineNum := valOf (Int.fromString yytext) + ; colNum := 1) + handle Overflow => YYBEGIN A + ; continue () end +| 209 => ((* cheat: take n > 0 dots *) continue ()) +| 212 => let val yytext=yymktext() in YYBEGIN LLC + ; (colNum := valOf (Int.fromString yytext)) + handle Overflow => YYBEGIN A + ; continue () end +| 214 => (YYBEGIN LLC; continue () + (* note hack, since ml-lex chokes on the empty string for 0* *)) +| 217 => (YYBEGIN INITIAL + ; lineDirective (source, NONE, yypos + 2) + ; commentLevel := 0; charlist := []; continue ()) +| 221 => (YYBEGIN LLCQ; continue ()) +| 223 => let val yytext=yymktext() in lineFile := yytext; continue () end +| 227 => (YYBEGIN INITIAL + ; lineDirective (source, SOME (!lineFile), yypos + 3) + ; commentLevel := 0; charlist := []; continue ()) +| 23 => (tok (Tokens.ANN, source, yypos, yypos + 3)) +| 230 => (YYBEGIN INITIAL; commentLevel := 0; charlist := []; continue ()) +| 232 => (YYBEGIN A; continue ()) +| 235 => (inc commentLevel; continue ()) +| 237 => (Source.newline (source, yypos) ; continue ()) +| 240 => (dec commentLevel + ; if 0 = !commentLevel then YYBEGIN INITIAL else () + ; continue ()) +| 242 => (continue ()) +| 244 => (let + val s = concat (rev (!charlist)) + val _ = charlist := nil + fun make (t, v) = + t (v, !stringStart, Source.getPos (source, yypos + 1)) + in YYBEGIN INITIAL + ; make (Tokens.STRING, s) + end) +| 247 => (addChar #"\a"; continue ()) +| 250 => (addChar #"\b"; continue ()) +| 253 => (addChar #"\f"; continue ()) +| 256 => (addChar #"\n"; continue ()) +| 259 => (addChar #"\r"; continue ()) +| 262 => (addChar #"\t"; continue ()) +| 265 => (addChar #"\v"; continue ()) +| 269 => let val yytext=yymktext() in addChar (Char.chr(Char.ord(String.sub(yytext, 2)) + -Char.ord #"@")) + ; continue () end +| 27 => (tok (Tokens.AND, source, yypos, yypos + 3)) +| 273 => (error (source, yypos, yypos + 2, + "illegal control escape; must be one of @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_") + ; continue ()) +| 278 => let val yytext=yymktext() in let + val x = + Char.ord(String.sub(yytext, 1)) * 100 + + Char.ord(String.sub(yytext, 2)) * 10 + + Char.ord(String.sub(yytext, 3)) + - (Char.ord #"0") * 111 + in (if x > 255 + then stringError (source, yypos, + "illegal ascii escape") + else addChar(Char.chr x); + continue ()) + end end +| 285 => let val yytext=yymktext() in let + val x = + StringCvt.scanString + (Pervasive.Int.scan StringCvt.HEX) + (String.substring (yytext, 2, 4)) + fun err () = + stringError (source, yypos, + "illegal unicode escape") + in (case x of + SOME x => if x > 255 + then err() + else addChar(Char.chr x) + | _ => err()) + ; continue () + end end +| 288 => (addString "\""; continue ()) +| 291 => (addString "\\"; continue ()) +| 297 => (YYBEGIN F; continue ()) +| 303 => (Source.newline (source, yypos) ; YYBEGIN F ; continue ()) +| 305 => (stringError (source, yypos, "illegal string escape") + ; continue ()) +| 31 => (tok (Tokens.BAS, source, yypos, yypos + 3)) +| 310 => (Source.newline (source, yypos) + ; stringError (source, yypos, "unclosed string") + ; continue ()) +| 313 => let val yytext=yymktext() in addString yytext; continue () end +| 315 => (stringError (source, yypos + 1, "illegal character in string") + ; continue ()) +| 320 => (Source.newline (source, yypos) ; continue ()) +| 323 => (continue ()) +| 325 => (YYBEGIN S + ; stringStart := Source.getPos (source, yypos) + ; continue ()) +| 327 => (stringError (source, yypos, "unclosed string") + ; continue ()) +| 37 => (tok (Tokens.BASIS, source, yypos, yypos + 5)) +| 41 => (tok (Tokens.END, source, yypos, yypos + 3)) +| 49 => (tok (Tokens.FUNCTOR, source, yypos, yypos + 7)) +| 52 => (tok (Tokens.IN, source, yypos, yypos + 2)) +| 56 => (tok (Tokens.LET, source, yypos, yypos + 3)) +| 62 => (tok (Tokens.LOCAL, source, yypos, yypos + 5)) +| 67 => (tok (Tokens.OPEN, source, yypos, yypos + 4)) +| 7 => (Source.newline (source, yypos); continue ()) +| 77 => (tok (Tokens.SIGNATURE, source, yypos, yypos + 9)) +| 87 => (tok (Tokens.STRUCTURE, source, yypos, yypos + 9)) +| 90 => let val yytext=yymktext() in tok' (Tokens.ID, yytext, source, yypos) end +| _ => raise Internal.LexerError + + ) end ) + + val {fin,trans} = Vector.sub (Internal.tab, s) + val NewAcceptingLeaves = fin::AcceptingLeaves + in if l = !yybl then + if trans = #trans(Vector.sub(Internal.tab,0)) + then action(l,NewAcceptingLeaves +) else let val newchars= if !yydone then "" else yyinput 1024 + in if (String.size newchars)=0 + then (yydone := true; + if (l=i0) then UserDeclarations.eof yyarg + else action(l,NewAcceptingLeaves)) + else (if i0=l then yyb := newchars + else yyb := String.substring(!yyb,i0,l-i0)^newchars; + yygone := !yygone+i0; + yybl := String.size (!yyb); + scan (s,AcceptingLeaves,l-i0,0)) + end + else let val NewChar = Char.ord (CharVector.sub (!yyb,l)) + val NewChar = if NewChar<128 then NewChar else 128 + val NewState = Char.ord (CharVector.sub (trans,NewChar)) + in if NewState=0 then action(l,NewAcceptingLeaves) + else scan(NewState,NewAcceptingLeaves,l+1,i0) + end + end +(* + val start= if String.substring(!yyb,!yybufpos-1,1)="\n" +then !yybegin+1 else !yybegin +*) + in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos) + end +in continue end + in lex + end +end diff --git a/lang/mlton/files/patch-Makefile b/lang/mlton/files/patch-Makefile new file mode 100644 index 000000000000..7a88aa70a2c1 --- /dev/null +++ b/lang/mlton/files/patch-Makefile @@ -0,0 +1,22 @@ +--- Makefile.orig 2007-08-27 07:04:14.000000000 +1000 ++++ Makefile 2008-04-28 10:23:28.000000000 +1000 +@@ -34,7 +34,11 @@ + PATH := $(BIN):$(SRC)/bin:$(shell echo $$PATH) + CP := /bin/cp -fpR + GZIP := gzip --force --best ++ifeq ($(TARGET), mingw32) ++RANLIB := $(TARGET)-ranlib ++else + RANLIB := ranlib ++endif + + # If we're compiling with another version of MLton, then we want to do + # another round of compilation so that we get a MLton built without +@@ -410,6 +414,7 @@ + install-no-docs: + mkdir -p "$(TLIB)" "$(TBIN)" "$(TMAN)" + $(CP) "$(LIB)/." "$(TLIB)/" ++ -rm "$(TLIB)/mlton.x86-bsd" + sed "/^lib=/s;.*;lib='$(prefix)/$(ULIB)';" \ + <"$(BIN)/mlton" >"$(TBIN)/mlton" + chmod a+x "$(TBIN)/mlton" diff --git a/lang/mlton/files/patch-bin-mlton_script b/lang/mlton/files/patch-bin-mlton_script new file mode 100644 index 000000000000..88f9a5bb587a --- /dev/null +++ b/lang/mlton/files/patch-bin-mlton_script @@ -0,0 +1,18 @@ +--- bin/mlton-script.orig 2008-04-22 21:15:23.000000000 +1000 ++++ bin/mlton-script 2008-04-22 21:18:33.000000000 +1000 +@@ -19,14 +19,7 @@ + mlton="$lib/mlton-compile$exe" + world="$lib/world.mlton" + nj='sml' +-# Try to use the SML/NJ .arch-n-opsys +-if .arch-n-opsys >/dev/null 2>&1; then +- eval `.arch-n-opsys` +- njHeap="$lib/mlton.$HEAP_SUFFIX" +- unset `.arch-n-opsys | sed 's#=[^ ]*##g'` +-else +- njHeap="$lib/mlton.$HOST_ARCH-$HOST_OS" +-fi ++njHeap="$lib/mlton.x86-bsd" + + declare -a rargs + case "$1" in diff --git a/lang/mlton/files/patch-runtime-Makefile b/lang/mlton/files/patch-runtime-Makefile new file mode 100644 index 000000000000..4c4ed2be0b86 --- /dev/null +++ b/lang/mlton/files/patch-runtime-Makefile @@ -0,0 +1,84 @@ +--- runtime/Makefile.orig 2007-08-27 07:03:54.000000000 +1000 ++++ runtime/Makefile 2008-04-28 10:19:06.000000000 +1000 +@@ -11,11 +11,24 @@ + TARGET := self + TARGET_ARCH := $(shell ../bin/host-arch) + TARGET_OS := $(shell ../bin/host-os) ++ ++ifeq ($(TARGET), self) ++GCC := gcc ++else ++GCC := $(TARGET)-gcc ++endif ++ ++ifeq ($(TARGET_OS), mingw) ++RUN := wine ++else ++RUN := ++endif ++ + GCC_MAJOR_VERSION := \ +- $(shell gcc -v 2>&1 | grep 'gcc version' | \ ++ $(shell $(GCC) -v 2>&1 | grep 'gcc version' | \ + sed 's/.*gcc version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1/') + GCC_MINOR_VERSION := \ +- $(shell gcc -v 2>&1 | grep 'gcc version' | \ ++ $(shell $(GCC) -v 2>&1 | grep 'gcc version' | \ + sed 's/.*gcc version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\2/') + GCC_VERSION := $(GCC_MAJOR_VERSION).$(GCC_MINOR_VERSION) + +@@ -96,10 +109,9 @@ + else + AR := $(TARGET)-ar rc + RANLIB := $(TARGET)-ranlib +-FLAGS += -b $(TARGET) + endif + +-CC := gcc -std=gnu99 ++CC := $(GCC) -std=gnu99 + CPPFLAGS := + CFLAGS := -I. -Iplatform $(FLAGS) + OPTCFLAGS := $(CFLAGS) $(CPPFLAGS) $(OPTFLAGS) +@@ -247,7 +259,7 @@ + cd gdtoa && $(CC) -o arithchk.out arithchk.c + + gdtoa/arith.h: gdtoa/arithchk.out +- cd gdtoa && ./arithchk.out >arith.h ++ cd gdtoa && $(RUN) ./arithchk.out >arith.h + + libmlton.a: $(OBJS) + $(AR) libmlton.a $(OBJS) +@@ -265,7 +277,7 @@ + gen/c-types.h gen/c-types.sml gen/ml-types.h: gen/gen-types.c util.h util.o + $(CC) $(OPTCFLAGS) $(WARNCFLAGS) -o gen/gen-types gen/gen-types.c util.o + rm -f gen/c-types.h gen/c-types.sml gen/ml-types.h +- cd gen && ./gen-types ++ cd gen && $(RUN) ./gen-types + rm -f gen/gen-types$(EXE) + + c-types.h ml-types.h: gen/c-types.h gen/ml-types.h +@@ -276,7 +288,7 @@ + gen/basis-ffi.h gen/basis-ffi.sml: gen/gen-basis-ffi.sml gen/basis-ffi.def + mlton -output gen/gen-basis-ffi gen/gen-basis-ffi.sml + rm -f gen/basis-ffi.h gen/basis-ffi.sml +- cd gen && ./gen-basis-ffi ++ cd gen && $(RUN) ./gen-basis-ffi + rm -f gen/gen-basis-ffi + + basis-ffi.h: gen/basis-ffi.h +@@ -286,13 +298,13 @@ + gen/sizes: gen/gen-sizes.c libmlton.a + $(CC) $(OPTCFLAGS) $(WARNCFLAGS) -o gen/gen-sizes -I. -L. -lmlton gen/gen-sizes.c util.o + rm -f gen/sizes +- cd gen && ./gen-sizes ++ cd gen && $(RUN) ./gen-sizes + rm -f gen/gen-sizes$(EXE) + + bytecode/opcodes: bytecode/print-opcodes.c bytecode/opcode.h + $(CC) $(OPTCFLAGS) $(WARNCFLAGS) -o bytecode/print-opcodes bytecode/print-opcodes.c + rm -f bytecode/opcodes +- cd bytecode && ./print-opcodes > opcodes ++ cd bytecode && $(RUN) ./print-opcodes > opcodes + rm -f bytecode/print-opcodes$(EXE) + + diff --git a/lang/mlton/files/patch-runtime-cenv.h b/lang/mlton/files/patch-runtime-cenv.h new file mode 100644 index 000000000000..3d3ebd4d3cd2 --- /dev/null +++ b/lang/mlton/files/patch-runtime-cenv.h @@ -0,0 +1,11 @@ +--- runtime/cenv.h.orig 2008-04-27 10:56:05.000000000 +1000 ++++ runtime/cenv.h 2008-04-27 10:56:20.000000000 +1000 +@@ -116,7 +116,7 @@ + #error unknown platform arch + #endif + +-#include "gmp.h" ++#include "/usr/local/include/gmp.h" + + COMPILE_TIME_ASSERT(sizeof_uintptr_t__is__sizeof_voidStar, + sizeof(uintptr_t) == sizeof(void*)); diff --git a/lang/mlton/files/patch-runtime-mingw.c b/lang/mlton/files/patch-runtime-mingw.c new file mode 100644 index 000000000000..2d1aaa9be883 --- /dev/null +++ b/lang/mlton/files/patch-runtime-mingw.c @@ -0,0 +1,43 @@ +--- runtime/platform/mingw.c.orig 2008-04-27 11:10:10.000000000 +1000 ++++ runtime/platform/mingw.c 2008-04-27 11:10:33.000000000 +1000 +@@ -54,40 +54,6 @@ + } + + /* ------------------------------------------------- */ +-/* Date */ +-/* ------------------------------------------------- */ +- +-#ifndef __GNUC__ +-#define EPOCHFILETIME (116444736000000000i64) +-#else +-#define EPOCHFILETIME (116444736000000000LL) +-#endif +- +-/* Based on notes by Wu Yongwei: +- * http://mywebpage.netscape.com/yongweiwutime.htm +- */ +-int gettimeofday (struct timeval *tv, struct timezone *tz) { +- FILETIME ft; +- LARGE_INTEGER li; +- __int64 t; +- static bool tzInit = FALSE; +- +- unless (tzInit) { +- tzInit = TRUE; +- _tzset(); +- } +- GetSystemTimeAsFileTime (&ft); +- li.LowPart = ft.dwLowDateTime; +- li.HighPart = ft.dwHighDateTime; +- t = li.QuadPart; +- t -= EPOCHFILETIME; +- t /= 10; +- tv->tv_sec = (long)(t / 1000000); +- tv->tv_usec = (long)(t % 1000000); +- return 0; +-} +- +-/* ------------------------------------------------- */ + /* MLton.Itimer */ + /* ------------------------------------------------- */ + diff --git a/lang/mlton/files/patch-runtime-mingw.h b/lang/mlton/files/patch-runtime-mingw.h new file mode 100644 index 000000000000..fa5e0f317ccf --- /dev/null +++ b/lang/mlton/files/patch-runtime-mingw.h @@ -0,0 +1,20 @@ +--- runtime/platform/mingw.h.orig 2008-04-27 10:54:07.000000000 +1000 ++++ runtime/platform/mingw.h 2008-04-27 10:54:19.000000000 +1000 +@@ -85,17 +85,6 @@ + #define SHUT_RDWR SD_BOTH + + /* ------------------------------------------------- */ +-/* Date */ +-/* ------------------------------------------------- */ +- +-struct timezone { +- int tz_dsttime; +- int tz_minuteswest; +-}; +- +-int gettimeofday (struct timeval *tv, struct timezone *tz); +- +-/* ------------------------------------------------- */ + /* MLton.Itimer */ + /* ------------------------------------------------- */ + diff --git a/lang/mlton/files/upgrade-basis.sml b/lang/mlton/files/upgrade-basis.sml new file mode 100644 index 000000000000..7235efc7d47b --- /dev/null +++ b/lang/mlton/files/upgrade-basis.sml @@ -0,0 +1,68 @@ +structure MLton = + struct + open MLton + + structure Platform = + struct + fun peek (l, f) = List.find f l + fun omap (opt, f) = Option.map f opt + val toLower = String.translate (str o Char.toLower) + + structure Arch = + struct + datatype t = Alpha | AMD64 | ARM | HPPA | IA64 | m68k | + MIPS | PowerPC | S390 | Sparc | X86 + + val all = [(Alpha, "Alpha"), + (AMD64, "AMD64"), + (ARM, "ARM"), + (HPPA, "HPPA"), + (IA64, "IA64"), + (m68k, "m68k"), + (MIPS, "MIPS"), + (PowerPC, "PowerPC"), + (S390, "S390"), + (Sparc, "Sparc"), + (X86, "X86")] + + fun fromString s = + let + val s = toLower s + in + omap (peek (all, fn (_, s') => s = toLower s'), #1) + end + + val host = X86 + + fun toString a = #2 (valOf (peek (all, fn (a', _) => a = a'))) + end + + structure OS = + struct + datatype t = AIX | Cygwin | Darwin | FreeBSD | HPUX | Linux + | MinGW | NetBSD | OpenBSD | Solaris + + val all = [(AIX, "AIX"), + (Cygwin, "Cygwin"), + (Darwin, "Darwin"), + (FreeBSD, "FreeBSD"), + (HPUX, "HPUX"), + (Linux, "Linux"), + (MinGW, "MinGW"), + (NetBSD, "NetBSD"), + (OpenBSD, "OpenBSD"), + (Solaris, "Solaris")] + + fun fromString s = + let + val s = toLower s + in + omap (peek (all, fn (_, s') => s = toLower s'), #1) + end + + val host = FreeBSD + + fun toString a = #2 (valOf (peek (all, fn (a', _) => a = a'))) + end + end + end diff --git a/lang/mlton/files/yacc.grm.sig b/lang/mlton/files/yacc.grm.sig new file mode 100644 index 000000000000..48dd896fbf18 --- /dev/null +++ b/lang/mlton/files/yacc.grm.sig @@ -0,0 +1,54 @@ +signature Mlyacc_TOKENS = +sig +type ('a,'b) token +type svalue +val BOGUS_VALUE: 'a * 'a -> (svalue,'a) token +val UNKNOWN: (string) * 'a * 'a -> (svalue,'a) token +val VALUE: 'a * 'a -> (svalue,'a) token +val VERBOSE: 'a * 'a -> (svalue,'a) token +val TYVAR: (string) * 'a * 'a -> (svalue,'a) token +val TERM: 'a * 'a -> (svalue,'a) token +val START: 'a * 'a -> (svalue,'a) token +val SUBST: 'a * 'a -> (svalue,'a) token +val RPAREN: 'a * 'a -> (svalue,'a) token +val RBRACE: 'a * 'a -> (svalue,'a) token +val PROG: (string) * 'a * 'a -> (svalue,'a) token +val PREFER: 'a * 'a -> (svalue,'a) token +val PREC_TAG: 'a * 'a -> (svalue,'a) token +val PREC: (Header.prec) * 'a * 'a -> (svalue,'a) token +val PERCENT_TOKEN_SIG_INFO: 'a * 'a -> (svalue,'a) token +val PERCENT_ARG: 'a * 'a -> (svalue,'a) token +val PERCENT_POS: 'a * 'a -> (svalue,'a) token +val PERCENT_PURE: 'a * 'a -> (svalue,'a) token +val PERCENT_EOP: 'a * 'a -> (svalue,'a) token +val OF: 'a * 'a -> (svalue,'a) token +val NOSHIFT: 'a * 'a -> (svalue,'a) token +val NONTERM: 'a * 'a -> (svalue,'a) token +val NODEFAULT: 'a * 'a -> (svalue,'a) token +val NAME: 'a * 'a -> (svalue,'a) token +val LPAREN: 'a * 'a -> (svalue,'a) token +val LBRACE: 'a * 'a -> (svalue,'a) token +val KEYWORD: 'a * 'a -> (svalue,'a) token +val INT: (string) * 'a * 'a -> (svalue,'a) token +val PERCENT_HEADER: 'a * 'a -> (svalue,'a) token +val IDDOT: (string) * 'a * 'a -> (svalue,'a) token +val ID: (string*int) * 'a * 'a -> (svalue,'a) token +val HEADER: (string) * 'a * 'a -> (svalue,'a) token +val FOR: 'a * 'a -> (svalue,'a) token +val EOF: 'a * 'a -> (svalue,'a) token +val DELIMITER: 'a * 'a -> (svalue,'a) token +val COMMA: 'a * 'a -> (svalue,'a) token +val COLON: 'a * 'a -> (svalue,'a) token +val CHANGE: 'a * 'a -> (svalue,'a) token +val BAR: 'a * 'a -> (svalue,'a) token +val BLOCK: 'a * 'a -> (svalue,'a) token +val ASTERISK: 'a * 'a -> (svalue,'a) token +val ARROW: 'a * 'a -> (svalue,'a) token +end +signature Mlyacc_LRVALS= +sig +structure Tokens : Mlyacc_TOKENS +structure ParserData:PARSER_DATA +sharing type ParserData.Token.token = Tokens.token +sharing type ParserData.svalue = Tokens.svalue +end diff --git a/lang/mlton/files/yacc.grm.sml b/lang/mlton/files/yacc.grm.sml new file mode 100644 index 000000000000..afb4ecc1b6b5 --- /dev/null +++ b/lang/mlton/files/yacc.grm.sml @@ -0,0 +1,1053 @@ + + +functor MlyaccLrValsFun(structure Hdr : HEADER + where type prec = Header.prec + structure Token : TOKEN) + = +struct +structure ParserData= +struct +structure Header = +struct +(* ML-Yacc Parser Generator (c) 1989 Andrew W. Appel, David R. Tarditi *) + +(* parser for the ML parser generator *) + +open Hdr + +end +structure LrTable = Token.LrTable +structure Token = Token +local open LrTable in +val table=let val actionRows = +"\ +\\001\000\001\000\076\000\000\000\ +\\001\000\005\000\025\000\008\000\024\000\014\000\023\000\016\000\022\000\ +\\019\000\021\000\020\000\020\000\021\000\019\000\022\000\018\000\ +\\024\000\017\000\025\000\016\000\026\000\015\000\027\000\014\000\ +\\028\000\013\000\029\000\012\000\031\000\011\000\035\000\010\000\ +\\036\000\009\000\037\000\008\000\039\000\007\000\040\000\006\000\000\000\ +\\001\000\006\000\063\000\000\000\ +\\001\000\006\000\074\000\000\000\ +\\001\000\006\000\086\000\000\000\ +\\001\000\006\000\098\000\000\000\ +\\001\000\007\000\085\000\033\000\084\000\000\000\ +\\001\000\009\000\000\000\000\000\ +\\001\000\010\000\061\000\000\000\ +\\001\000\011\000\003\000\000\000\ +\\001\000\012\000\026\000\000\000\ +\\001\000\012\000\028\000\000\000\ +\\001\000\012\000\029\000\000\000\ +\\001\000\012\000\032\000\000\000\ +\\001\000\012\000\044\000\013\000\043\000\000\000\ +\\001\000\012\000\044\000\013\000\043\000\017\000\042\000\032\000\041\000\ +\\038\000\040\000\000\000\ +\\001\000\012\000\048\000\000\000\ +\\001\000\012\000\053\000\000\000\ +\\001\000\012\000\071\000\015\000\070\000\000\000\ +\\001\000\012\000\071\000\015\000\070\000\033\000\069\000\000\000\ +\\001\000\012\000\077\000\000\000\ +\\001\000\012\000\080\000\000\000\ +\\001\000\012\000\101\000\000\000\ +\\001\000\032\000\036\000\000\000\ +\\001\000\032\000\037\000\000\000\ +\\001\000\032\000\050\000\000\000\ +\\001\000\032\000\057\000\000\000\ +\\001\000\032\000\100\000\000\000\ +\\001\000\032\000\104\000\000\000\ +\\106\000\012\000\053\000\000\000\ +\\107\000\000\000\ +\\108\000\000\000\ +\\109\000\004\000\058\000\000\000\ +\\110\000\004\000\058\000\000\000\ +\\111\000\000\000\ +\\112\000\000\000\ +\\113\000\000\000\ +\\114\000\000\000\ +\\115\000\000\000\ +\\116\000\000\000\ +\\117\000\000\000\ +\\118\000\000\000\ +\\119\000\000\000\ +\\120\000\000\000\ +\\121\000\000\000\ +\\122\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\ +\\123\000\000\000\ +\\124\000\000\000\ +\\125\000\000\000\ +\\126\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\ +\\127\000\000\000\ +\\128\000\000\000\ +\\129\000\004\000\075\000\000\000\ +\\130\000\000\000\ +\\131\000\000\000\ +\\132\000\004\000\060\000\000\000\ +\\133\000\000\000\ +\\134\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\ +\\135\000\023\000\091\000\000\000\ +\\136\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\ +\\137\000\023\000\059\000\000\000\ +\\138\000\004\000\094\000\000\000\ +\\139\000\000\000\ +\\140\000\000\000\ +\\141\000\000\000\ +\\142\000\012\000\034\000\000\000\ +\\143\000\000\000\ +\\144\000\000\000\ +\\145\000\000\000\ +\\146\000\000\000\ +\\147\000\000\000\ +\\148\000\000\000\ +\\149\000\000\000\ +\\150\000\000\000\ +\\151\000\012\000\044\000\013\000\043\000\000\000\ +\\152\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\ +\\153\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\ +\\154\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\ +\\155\000\000\000\ +\\156\000\000\000\ +\\157\000\000\000\ +\\158\000\000\000\ +\\159\000\000\000\ +\\160\000\030\000\096\000\000\000\ +\" +val actionRowNumbers = +"\009\000\031\000\001\000\030\000\ +\\010\000\046\000\011\000\012\000\ +\\013\000\065\000\065\000\023\000\ +\\024\000\015\000\048\000\065\000\ +\\065\000\011\000\047\000\016\000\ +\\065\000\025\000\017\000\065\000\ +\\026\000\032\000\060\000\035\000\ +\\055\000\040\000\008\000\038\000\ +\\065\000\034\000\043\000\002\000\ +\\049\000\073\000\068\000\071\000\ +\\019\000\014\000\078\000\036\000\ +\\041\000\033\000\044\000\037\000\ +\\042\000\029\000\063\000\003\000\ +\\052\000\039\000\000\000\050\000\ +\\020\000\015\000\013\000\021\000\ +\\064\000\015\000\072\000\015\000\ +\\015\000\006\000\004\000\070\000\ +\\081\000\080\000\079\000\062\000\ +\\065\000\065\000\065\000\058\000\ +\\059\000\054\000\056\000\045\000\ +\\074\000\075\000\069\000\018\000\ +\\015\000\061\000\083\000\051\000\ +\\053\000\015\000\005\000\077\000\ +\\065\000\027\000\022\000\057\000\ +\\015\000\083\000\066\000\082\000\ +\\076\000\028\000\067\000\007\000" +val gotoT = +"\ +\\001\000\103\000\000\000\ +\\006\000\002\000\000\000\ +\\005\000\003\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\002\000\025\000\000\000\ +\\000\000\ +\\013\000\029\000\014\000\028\000\000\000\ +\\003\000\031\000\000\000\ +\\003\000\033\000\000\000\ +\\000\000\ +\\000\000\ +\\007\000\037\000\017\000\036\000\000\000\ +\\000\000\ +\\003\000\043\000\000\000\ +\\003\000\044\000\000\000\ +\\002\000\045\000\000\000\ +\\000\000\ +\\000\000\ +\\003\000\047\000\000\000\ +\\000\000\ +\\010\000\050\000\011\000\049\000\000\000\ +\\003\000\054\000\015\000\053\000\016\000\052\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\003\000\060\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\007\000\062\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\004\000\066\000\008\000\065\000\000\000\ +\\007\000\070\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\010\000\071\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\007\000\037\000\017\000\076\000\000\000\ +\\013\000\077\000\014\000\028\000\000\000\ +\\000\000\ +\\000\000\ +\\007\000\037\000\017\000\079\000\000\000\ +\\000\000\ +\\007\000\037\000\017\000\080\000\000\000\ +\\007\000\037\000\017\000\081\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\003\000\086\000\009\000\085\000\000\000\ +\\003\000\054\000\015\000\087\000\016\000\052\000\000\000\ +\\003\000\088\000\000\000\ +\\000\000\ +\\007\000\062\000\000\000\ +\\000\000\ +\\000\000\ +\\007\000\062\000\000\000\ +\\007\000\062\000\000\000\ +\\007\000\062\000\000\000\ +\\000\000\ +\\004\000\090\000\000\000\ +\\007\000\037\000\017\000\091\000\000\000\ +\\000\000\ +\\012\000\093\000\000\000\ +\\000\000\ +\\000\000\ +\\007\000\037\000\017\000\095\000\000\000\ +\\000\000\ +\\007\000\062\000\000\000\ +\\003\000\097\000\000\000\ +\\000\000\ +\\000\000\ +\\007\000\062\000\000\000\ +\\007\000\037\000\017\000\100\000\000\000\ +\\012\000\101\000\000\000\ +\\000\000\ +\\000\000\ +\\007\000\062\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\" +val numstates = 104 +val numrules = 55 +val s = ref "" and index = ref 0 +val string_to_int = fn () => +let val i = !index +in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256 +end +val string_to_list = fn s' => + let val len = String.size s' + fun f () = + if !index < len then string_to_int() :: f() + else nil + in index := 0; s := s'; f () + end +val string_to_pairlist = fn (conv_key,conv_entry) => + let fun f () = + case string_to_int() + of 0 => EMPTY + | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f()) + in f + end +val string_to_pairlist_default = fn (conv_key,conv_entry) => + let val conv_row = string_to_pairlist(conv_key,conv_entry) + in fn () => + let val default = conv_entry(string_to_int()) + val row = conv_row() + in (row,default) + end + end +val string_to_table = fn (convert_row,s') => + let val len = String.size s' + fun f ()= + if !index < len then convert_row() :: f() + else nil + in (s := s'; index := 0; f ()) + end +local + val memo = Array.array(numstates+numrules,ERROR) + val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1)) + fun f i = + if i=numstates then g i + else (Array.update(memo,i,SHIFT (STATE i)); f (i+1)) + in f 0 handle Subscript => () + end +in +val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2)) +end +val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT)) +val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows) +val actionRowNumbers = string_to_list actionRowNumbers +val actionT = let val actionRowLookUp= +let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end +in Array.fromList(map actionRowLookUp actionRowNumbers) +end +in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules, +numStates=numstates,initialState=STATE 0} +end +end +local open Header in +type pos = int +type arg = Hdr.inputSource +structure MlyValue = +struct +datatype svalue = VOID | ntVOID of unit -> unit + | UNKNOWN of unit -> (string) | TYVAR of unit -> (string) + | PROG of unit -> (string) | PREC of unit -> (Header.prec) + | INT of unit -> (string) | IDDOT of unit -> (string) + | ID of unit -> (string*int) | HEADER of unit -> (string) + | TY of unit -> (string) + | CHANGE_DEC of unit -> ( ( Hdr.symbol list * Hdr.symbol list ) ) + | CHANGE_DECL of unit -> ( ( Hdr.symbol list * Hdr.symbol list ) list) + | SUBST_DEC of unit -> ( ( Hdr.symbol list * Hdr.symbol list ) ) + | SUBST_DECL of unit -> ( ( Hdr.symbol list * Hdr.symbol list ) list) + | G_RULE_PREC of unit -> (Hdr.symbol option) + | G_RULE_LIST of unit -> (Hdr.rule list) + | G_RULE of unit -> (Hdr.rule list) + | RHS_LIST of unit -> ({ rhs:Hdr.symbol list,code:string,prec:Hdr.symbol option } list) + | RECORD_LIST of unit -> (string) | QUAL_ID of unit -> (string) + | MPC_DECLS of unit -> (Hdr.declData) + | MPC_DECL of unit -> (Hdr.declData) | LABEL of unit -> (string) + | ID_LIST of unit -> (Hdr.symbol list) + | CONSTR_LIST of unit -> ( ( Hdr.symbol * Hdr.ty option ) list) + | BEGIN of unit -> (string*Hdr.declData* ( Hdr.rule list ) ) +end +type svalue = MlyValue.svalue +type result = string*Hdr.declData* ( Hdr.rule list ) +end +structure EC= +struct +open LrTable +infix 5 $$ +fun x $$ y = y::x +val is_keyword = +fn _ => false +val preferred_change : (term list * term list) list = +nil +val noShift = +fn (T 8) => true | _ => false +val showTerminal = +fn (T 0) => "ARROW" + | (T 1) => "ASTERISK" + | (T 2) => "BLOCK" + | (T 3) => "BAR" + | (T 4) => "CHANGE" + | (T 5) => "COLON" + | (T 6) => "COMMA" + | (T 7) => "DELIMITER" + | (T 8) => "EOF" + | (T 9) => "FOR" + | (T 10) => "HEADER" + | (T 11) => "ID" + | (T 12) => "IDDOT" + | (T 13) => "PERCENT_HEADER" + | (T 14) => "INT" + | (T 15) => "KEYWORD" + | (T 16) => "LBRACE" + | (T 17) => "LPAREN" + | (T 18) => "NAME" + | (T 19) => "NODEFAULT" + | (T 20) => "NONTERM" + | (T 21) => "NOSHIFT" + | (T 22) => "OF" + | (T 23) => "PERCENT_EOP" + | (T 24) => "PERCENT_PURE" + | (T 25) => "PERCENT_POS" + | (T 26) => "PERCENT_ARG" + | (T 27) => "PERCENT_TOKEN_SIG_INFO" + | (T 28) => "PREC" + | (T 29) => "PREC_TAG" + | (T 30) => "PREFER" + | (T 31) => "PROG" + | (T 32) => "RBRACE" + | (T 33) => "RPAREN" + | (T 34) => "SUBST" + | (T 35) => "START" + | (T 36) => "TERM" + | (T 37) => "TYVAR" + | (T 38) => "VERBOSE" + | (T 39) => "VALUE" + | (T 40) => "UNKNOWN" + | (T 41) => "BOGUS_VALUE" + | _ => "bogus-term" +local open Header in +val errtermvalue= +fn _ => MlyValue.VOID +end +val terms : term list = nil + $$ (T 41) $$ (T 39) $$ (T 38) $$ (T 36) $$ (T 35) $$ (T 34) $$ (T 33) + $$ (T 32) $$ (T 30) $$ (T 29) $$ (T 27) $$ (T 26) $$ (T 25) $$ (T 24) + $$ (T 23) $$ (T 22) $$ (T 21) $$ (T 20) $$ (T 19) $$ (T 18) $$ (T 17) + $$ (T 16) $$ (T 15) $$ (T 13) $$ (T 9) $$ (T 8) $$ (T 7) $$ (T 6) $$ +(T 5) $$ (T 4) $$ (T 3) $$ (T 2) $$ (T 1) $$ (T 0)end +structure Actions = +struct +type int = Int.int +exception mlyAction of int +local open Header in +val actions = +fn (i392:int,defaultPos,stack, + (inputSource):arg) => +case (i392,stack) +of ( 0, ( ( _, ( MlyValue.G_RULE_LIST G_RULE_LIST1, _, +G_RULE_LIST1right)) :: _ :: ( _, ( MlyValue.MPC_DECLS MPC_DECLS1, _, _ +)) :: ( _, ( MlyValue.HEADER HEADER1, HEADER1left, _)) :: rest671)) => + let val result = MlyValue.BEGIN (fn _ => let val (HEADER as HEADER1 +) = HEADER1 () + val (MPC_DECLS as MPC_DECLS1) = MPC_DECLS1 () + val (G_RULE_LIST as G_RULE_LIST1) = G_RULE_LIST1 () + in (HEADER,MPC_DECLS,rev G_RULE_LIST) +end) + in ( LrTable.NT 0, ( result, HEADER1left, G_RULE_LIST1right), rest671 +) +end +| ( 1, ( ( _, ( MlyValue.MPC_DECL MPC_DECL1, MPC_DECLleft, +MPC_DECL1right)) :: ( _, ( MlyValue.MPC_DECLS MPC_DECLS1, +MPC_DECLS1left, _)) :: rest671)) => let val result = +MlyValue.MPC_DECLS (fn _ => let val (MPC_DECLS as MPC_DECLS1) = +MPC_DECLS1 () + val (MPC_DECL as MPC_DECL1) = MPC_DECL1 () + in (join_decls(MPC_DECLS,MPC_DECL,inputSource,MPC_DECLleft)) +end) + in ( LrTable.NT 5, ( result, MPC_DECLS1left, MPC_DECL1right), rest671 +) +end +| ( 2, ( rest671)) => let val result = MlyValue.MPC_DECLS (fn _ => ( +DECL {prec=nil,nonterm=NONE,term=NONE,eop=nil,control=nil, + keyword=nil,change=nil, + value=nil} +)) + in ( LrTable.NT 5, ( result, defaultPos, defaultPos), rest671) +end +| ( 3, ( ( _, ( MlyValue.CONSTR_LIST CONSTR_LIST1, _, +CONSTR_LIST1right)) :: ( _, ( _, TERM1left, _)) :: rest671)) => let + val result = MlyValue.MPC_DECL (fn _ => let val (CONSTR_LIST as +CONSTR_LIST1) = CONSTR_LIST1 () + in ( +DECL { prec=nil,nonterm=NONE, + term = SOME CONSTR_LIST, eop =nil,control=nil, + change=nil,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, TERM1left, CONSTR_LIST1right), rest671) + +end +| ( 4, ( ( _, ( MlyValue.CONSTR_LIST CONSTR_LIST1, _, +CONSTR_LIST1right)) :: ( _, ( _, NONTERM1left, _)) :: rest671)) => let + val result = MlyValue.MPC_DECL (fn _ => let val (CONSTR_LIST as +CONSTR_LIST1) = CONSTR_LIST1 () + in ( +DECL { prec=nil,control=nil,nonterm= SOME CONSTR_LIST, + term = NONE, eop=nil,change=nil,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, NONTERM1left, CONSTR_LIST1right), +rest671) +end +| ( 5, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _, + ( MlyValue.PREC PREC1, PREC1left, _)) :: rest671)) => let val result + = MlyValue.MPC_DECL (fn _ => let val (PREC as PREC1) = PREC1 () + val (ID_LIST as ID_LIST1) = ID_LIST1 () + in ( +DECL {prec= [(PREC,ID_LIST)],control=nil, + nonterm=NONE,term=NONE,eop=nil,change=nil, + keyword=nil,value=nil} +) +end) + in ( LrTable.NT 4, ( result, PREC1left, ID_LIST1right), rest671) +end +| ( 6, ( ( _, ( MlyValue.ID ID1, _, ID1right)) :: ( _, ( _, +START1left, _)) :: rest671)) => let val result = MlyValue.MPC_DECL + (fn _ => let val (ID as ID1) = ID1 () + in ( +DECL {prec=nil,control=[START_SYM (symbolMake ID)],nonterm=NONE, + term = NONE, eop = nil,change=nil,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, START1left, ID1right), rest671) +end +| ( 7, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _, + ( _, PERCENT_EOP1left, _)) :: rest671)) => let val result = +MlyValue.MPC_DECL (fn _ => let val (ID_LIST as ID_LIST1) = ID_LIST1 + () + in ( +DECL {prec=nil,control=nil,nonterm=NONE,term=NONE, + eop=ID_LIST, change=nil,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, PERCENT_EOP1left, ID_LIST1right), +rest671) +end +| ( 8, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _, + ( _, KEYWORD1left, _)) :: rest671)) => let val result = +MlyValue.MPC_DECL (fn _ => let val (ID_LIST as ID_LIST1) = ID_LIST1 + () + in ( +DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil, + change=nil,keyword=ID_LIST, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, KEYWORD1left, ID_LIST1right), rest671) + +end +| ( 9, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _, + ( _, PREFER1left, _)) :: rest671)) => let val result = +MlyValue.MPC_DECL (fn _ => let val (ID_LIST as ID_LIST1) = ID_LIST1 + () + in ( +DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil, + change=map (fn i=>([],[i])) ID_LIST,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, PREFER1left, ID_LIST1right), rest671) + +end +| ( 10, ( ( _, ( MlyValue.CHANGE_DECL CHANGE_DECL1, _, +CHANGE_DECL1right)) :: ( _, ( _, CHANGE1left, _)) :: rest671)) => let + val result = MlyValue.MPC_DECL (fn _ => let val (CHANGE_DECL as +CHANGE_DECL1) = CHANGE_DECL1 () + in ( +DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil, + change=CHANGE_DECL,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, CHANGE1left, CHANGE_DECL1right), rest671 +) +end +| ( 11, ( ( _, ( MlyValue.SUBST_DECL SUBST_DECL1, _, SUBST_DECL1right +)) :: ( _, ( _, SUBST1left, _)) :: rest671)) => let val result = +MlyValue.MPC_DECL (fn _ => let val (SUBST_DECL as SUBST_DECL1) = +SUBST_DECL1 () + in ( +DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil, + change=SUBST_DECL,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, SUBST1left, SUBST_DECL1right), rest671) + +end +| ( 12, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _ +, ( _, NOSHIFT1left, _)) :: rest671)) => let val result = +MlyValue.MPC_DECL (fn _ => let val (ID_LIST as ID_LIST1) = ID_LIST1 + () + in ( +DECL {prec=nil,control=[NSHIFT ID_LIST],nonterm=NONE,term=NONE, + eop=nil,change=nil,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, NOSHIFT1left, ID_LIST1right), rest671) + +end +| ( 13, ( ( _, ( MlyValue.PROG PROG1, _, PROG1right)) :: ( _, ( _, +PERCENT_HEADER1left, _)) :: rest671)) => let val result = +MlyValue.MPC_DECL (fn _ => let val (PROG as PROG1) = PROG1 () + in ( +DECL {prec=nil,control=[FUNCTOR PROG],nonterm=NONE,term=NONE, + eop=nil,change=nil,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, PERCENT_HEADER1left, PROG1right), +rest671) +end +| ( 14, ( ( _, ( MlyValue.PROG PROG1, _, PROG1right)) :: ( _, ( _, +PERCENT_TOKEN_SIG_INFO1left, _)) :: rest671)) => let val result = +MlyValue.MPC_DECL (fn _ => let val (PROG as PROG1) = PROG1 () + in ( +DECL {prec=nil,control=[TOKEN_SIG_INFO PROG], + nonterm=NONE,term=NONE, + eop=nil,change=nil,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, PERCENT_TOKEN_SIG_INFO1left, PROG1right) +, rest671) +end +| ( 15, ( ( _, ( MlyValue.ID ID1, _, ID1right)) :: ( _, ( _, +NAME1left, _)) :: rest671)) => let val result = MlyValue.MPC_DECL (fn + _ => let val (ID as ID1) = ID1 () + in ( +DECL {prec=nil,control=[PARSER_NAME (symbolMake ID)], + nonterm=NONE,term=NONE, + eop=nil,change=nil,keyword=nil, value=nil} +) +end) + in ( LrTable.NT 4, ( result, NAME1left, ID1right), rest671) +end +| ( 16, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: _ :: ( _, ( +MlyValue.PROG PROG1, _, _)) :: ( _, ( _, PERCENT_ARG1left, _)) :: +rest671)) => let val result = MlyValue.MPC_DECL (fn _ => let val ( +PROG as PROG1) = PROG1 () + val (TY as TY1) = TY1 () + in ( +DECL {prec=nil,control=[PARSE_ARG(PROG,TY)],nonterm=NONE, + term=NONE,eop=nil,change=nil,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, PERCENT_ARG1left, TY1right), rest671) + +end +| ( 17, ( ( _, ( _, VERBOSE1left, VERBOSE1right)) :: rest671)) => let + val result = MlyValue.MPC_DECL (fn _ => ( +DECL {prec=nil,control=[Hdr.VERBOSE], + nonterm=NONE,term=NONE,eop=nil, + change=nil,keyword=nil, + value=nil} +)) + in ( LrTable.NT 4, ( result, VERBOSE1left, VERBOSE1right), rest671) + +end +| ( 18, ( ( _, ( _, NODEFAULT1left, NODEFAULT1right)) :: rest671)) => + let val result = MlyValue.MPC_DECL (fn _ => ( +DECL {prec=nil,control=[Hdr.NODEFAULT], + nonterm=NONE,term=NONE,eop=nil, + change=nil,keyword=nil, + value=nil} +)) + in ( LrTable.NT 4, ( result, NODEFAULT1left, NODEFAULT1right), +rest671) +end +| ( 19, ( ( _, ( _, PERCENT_PURE1left, PERCENT_PURE1right)) :: +rest671)) => let val result = MlyValue.MPC_DECL (fn _ => ( +DECL {prec=nil,control=[Hdr.PURE], + nonterm=NONE,term=NONE,eop=nil, + change=nil,keyword=nil, + value=nil} +)) + in ( LrTable.NT 4, ( result, PERCENT_PURE1left, PERCENT_PURE1right), +rest671) +end +| ( 20, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: ( _, ( _, +PERCENT_POS1left, _)) :: rest671)) => let val result = +MlyValue.MPC_DECL (fn _ => let val (TY as TY1) = TY1 () + in ( +DECL {prec=nil,control=[Hdr.POS TY], + nonterm=NONE,term=NONE,eop=nil, + change=nil,keyword=nil, + value=nil} +) +end) + in ( LrTable.NT 4, ( result, PERCENT_POS1left, TY1right), rest671) + +end +| ( 21, ( ( _, ( MlyValue.PROG PROG1, _, PROG1right)) :: ( _, ( +MlyValue.ID ID1, _, _)) :: ( _, ( _, VALUE1left, _)) :: rest671)) => + let val result = MlyValue.MPC_DECL (fn _ => let val (ID as ID1) = +ID1 () + val (PROG as PROG1) = PROG1 () + in ( +DECL {prec=nil,control=nil, + nonterm=NONE,term=NONE,eop=nil, + change=nil,keyword=nil, + value=[(symbolMake ID,PROG)]} +) +end) + in ( LrTable.NT 4, ( result, VALUE1left, PROG1right), rest671) +end +| ( 22, ( ( _, ( MlyValue.CHANGE_DECL CHANGE_DECL1, _, +CHANGE_DECL1right)) :: _ :: ( _, ( MlyValue.CHANGE_DEC CHANGE_DEC1, +CHANGE_DEC1left, _)) :: rest671)) => let val result = +MlyValue.CHANGE_DECL (fn _ => let val (CHANGE_DEC as CHANGE_DEC1) = +CHANGE_DEC1 () + val (CHANGE_DECL as CHANGE_DECL1) = CHANGE_DECL1 () + in (CHANGE_DEC :: CHANGE_DECL) +end) + in ( LrTable.NT 14, ( result, CHANGE_DEC1left, CHANGE_DECL1right), +rest671) +end +| ( 23, ( ( _, ( MlyValue.CHANGE_DEC CHANGE_DEC1, CHANGE_DEC1left, +CHANGE_DEC1right)) :: rest671)) => let val result = +MlyValue.CHANGE_DECL (fn _ => let val (CHANGE_DEC as CHANGE_DEC1) = +CHANGE_DEC1 () + in ([CHANGE_DEC]) +end) + in ( LrTable.NT 14, ( result, CHANGE_DEC1left, CHANGE_DEC1right), +rest671) +end +| ( 24, ( ( _, ( MlyValue.ID_LIST ID_LIST2, _, ID_LIST2right)) :: _ + :: ( _, ( MlyValue.ID_LIST ID_LIST1, ID_LIST1left, _)) :: rest671)) + => let val result = MlyValue.CHANGE_DEC (fn _ => let val ID_LIST1 = + ID_LIST1 () + val ID_LIST2 = ID_LIST2 () + in (ID_LIST1, ID_LIST2) +end) + in ( LrTable.NT 15, ( result, ID_LIST1left, ID_LIST2right), rest671) + +end +| ( 25, ( ( _, ( MlyValue.SUBST_DECL SUBST_DECL1, _, SUBST_DECL1right +)) :: _ :: ( _, ( MlyValue.SUBST_DEC SUBST_DEC1, SUBST_DEC1left, _)) + :: rest671)) => let val result = MlyValue.SUBST_DECL (fn _ => let + val (SUBST_DEC as SUBST_DEC1) = SUBST_DEC1 () + val (SUBST_DECL as SUBST_DECL1) = SUBST_DECL1 () + in (SUBST_DEC :: SUBST_DECL) +end) + in ( LrTable.NT 12, ( result, SUBST_DEC1left, SUBST_DECL1right), +rest671) +end +| ( 26, ( ( _, ( MlyValue.SUBST_DEC SUBST_DEC1, SUBST_DEC1left, +SUBST_DEC1right)) :: rest671)) => let val result = +MlyValue.SUBST_DECL (fn _ => let val (SUBST_DEC as SUBST_DEC1) = +SUBST_DEC1 () + in ([SUBST_DEC]) +end) + in ( LrTable.NT 12, ( result, SUBST_DEC1left, SUBST_DEC1right), +rest671) +end +| ( 27, ( ( _, ( MlyValue.ID ID2, _, ID2right)) :: _ :: ( _, ( +MlyValue.ID ID1, ID1left, _)) :: rest671)) => let val result = +MlyValue.SUBST_DEC (fn _ => let val ID1 = ID1 () + val ID2 = ID2 () + in ([symbolMake ID2],[symbolMake ID1]) +end) + in ( LrTable.NT 13, ( result, ID1left, ID2right), rest671) +end +| ( 28, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: _ :: ( _, ( +MlyValue.ID ID1, _, _)) :: _ :: ( _, ( MlyValue.CONSTR_LIST +CONSTR_LIST1, CONSTR_LIST1left, _)) :: rest671)) => let val result = +MlyValue.CONSTR_LIST (fn _ => let val (CONSTR_LIST as CONSTR_LIST1) = + CONSTR_LIST1 () + val (ID as ID1) = ID1 () + val (TY as TY1) = TY1 () + in ((symbolMake ID,SOME (tyMake TY))::CONSTR_LIST) +end) + in ( LrTable.NT 1, ( result, CONSTR_LIST1left, TY1right), rest671) + +end +| ( 29, ( ( _, ( MlyValue.ID ID1, _, ID1right)) :: _ :: ( _, ( +MlyValue.CONSTR_LIST CONSTR_LIST1, CONSTR_LIST1left, _)) :: rest671)) + => let val result = MlyValue.CONSTR_LIST (fn _ => let val ( +CONSTR_LIST as CONSTR_LIST1) = CONSTR_LIST1 () + val (ID as ID1) = ID1 () + in ((symbolMake ID,NONE)::CONSTR_LIST) +end) + in ( LrTable.NT 1, ( result, CONSTR_LIST1left, ID1right), rest671) + +end +| ( 30, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: _ :: ( _, ( +MlyValue.ID ID1, ID1left, _)) :: rest671)) => let val result = +MlyValue.CONSTR_LIST (fn _ => let val (ID as ID1) = ID1 () + val (TY as TY1) = TY1 () + in ([(symbolMake ID,SOME (tyMake TY))]) +end) + in ( LrTable.NT 1, ( result, ID1left, TY1right), rest671) +end +| ( 31, ( ( _, ( MlyValue.ID ID1, ID1left, ID1right)) :: rest671)) => + let val result = MlyValue.CONSTR_LIST (fn _ => let val (ID as ID1) + = ID1 () + in ([(symbolMake ID,NONE)]) +end) + in ( LrTable.NT 1, ( result, ID1left, ID1right), rest671) +end +| ( 32, ( ( _, ( MlyValue.RHS_LIST RHS_LIST1, _, RHS_LIST1right)) :: + _ :: ( _, ( MlyValue.ID ID1, ID1left, _)) :: rest671)) => let val +result = MlyValue.G_RULE (fn _ => let val (ID as ID1) = ID1 () + val (RHS_LIST as RHS_LIST1) = RHS_LIST1 () + in ( +map (fn {rhs,code,prec} => + Hdr.RULE {lhs=symbolMake ID,rhs=rhs, + code=code,prec=prec}) + RHS_LIST +) +end) + in ( LrTable.NT 9, ( result, ID1left, RHS_LIST1right), rest671) +end +| ( 33, ( ( _, ( MlyValue.G_RULE G_RULE1, _, G_RULE1right)) :: ( _, ( + MlyValue.G_RULE_LIST G_RULE_LIST1, G_RULE_LIST1left, _)) :: rest671)) + => let val result = MlyValue.G_RULE_LIST (fn _ => let val ( +G_RULE_LIST as G_RULE_LIST1) = G_RULE_LIST1 () + val (G_RULE as G_RULE1) = G_RULE1 () + in (G_RULE@G_RULE_LIST) +end) + in ( LrTable.NT 10, ( result, G_RULE_LIST1left, G_RULE1right), +rest671) +end +| ( 34, ( ( _, ( MlyValue.G_RULE G_RULE1, G_RULE1left, G_RULE1right)) + :: rest671)) => let val result = MlyValue.G_RULE_LIST (fn _ => let + val (G_RULE as G_RULE1) = G_RULE1 () + in (G_RULE) +end) + in ( LrTable.NT 10, ( result, G_RULE1left, G_RULE1right), rest671) + +end +| ( 35, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _ +, ( MlyValue.ID ID1, ID1left, _)) :: rest671)) => let val result = +MlyValue.ID_LIST (fn _ => let val (ID as ID1) = ID1 () + val (ID_LIST as ID_LIST1) = ID_LIST1 () + in (symbolMake ID :: ID_LIST) +end) + in ( LrTable.NT 2, ( result, ID1left, ID_LIST1right), rest671) +end +| ( 36, ( rest671)) => let val result = MlyValue.ID_LIST (fn _ => ( +nil)) + in ( LrTable.NT 2, ( result, defaultPos, defaultPos), rest671) +end +| ( 37, ( ( _, ( MlyValue.PROG PROG1, _, PROG1right)) :: ( _, ( +MlyValue.G_RULE_PREC G_RULE_PREC1, _, _)) :: ( _, ( MlyValue.ID_LIST +ID_LIST1, ID_LIST1left, _)) :: rest671)) => let val result = +MlyValue.RHS_LIST (fn _ => let val (ID_LIST as ID_LIST1) = ID_LIST1 + () + val (G_RULE_PREC as G_RULE_PREC1) = G_RULE_PREC1 () + val (PROG as PROG1) = PROG1 () + in ([{rhs=ID_LIST,code=PROG,prec=G_RULE_PREC}]) +end) + in ( LrTable.NT 8, ( result, ID_LIST1left, PROG1right), rest671) +end +| ( 38, ( ( _, ( MlyValue.PROG PROG1, _, PROG1right)) :: ( _, ( +MlyValue.G_RULE_PREC G_RULE_PREC1, _, _)) :: ( _, ( MlyValue.ID_LIST +ID_LIST1, _, _)) :: _ :: ( _, ( MlyValue.RHS_LIST RHS_LIST1, +RHS_LIST1left, _)) :: rest671)) => let val result = MlyValue.RHS_LIST + (fn _ => let val (RHS_LIST as RHS_LIST1) = RHS_LIST1 () + val (ID_LIST as ID_LIST1) = ID_LIST1 () + val (G_RULE_PREC as G_RULE_PREC1) = G_RULE_PREC1 () + val (PROG as PROG1) = PROG1 () + in ({rhs=ID_LIST,code=PROG,prec=G_RULE_PREC}::RHS_LIST) +end) + in ( LrTable.NT 8, ( result, RHS_LIST1left, PROG1right), rest671) +end +| ( 39, ( ( _, ( MlyValue.TYVAR TYVAR1, TYVAR1left, TYVAR1right)) :: +rest671)) => let val result = MlyValue.TY (fn _ => let val (TYVAR + as TYVAR1) = TYVAR1 () + in (TYVAR) +end) + in ( LrTable.NT 16, ( result, TYVAR1left, TYVAR1right), rest671) +end +| ( 40, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.RECORD_LIST +RECORD_LIST1, _, _)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let + val result = MlyValue.TY (fn _ => let val (RECORD_LIST as +RECORD_LIST1) = RECORD_LIST1 () + in ("{ "^RECORD_LIST^" } ") +end) + in ( LrTable.NT 16, ( result, LBRACE1left, RBRACE1right), rest671) + +end +| ( 41, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( _, LBRACE1left, _)) + :: rest671)) => let val result = MlyValue.TY (fn _ => ("{}")) + in ( LrTable.NT 16, ( result, LBRACE1left, RBRACE1right), rest671) + +end +| ( 42, ( ( _, ( MlyValue.PROG PROG1, PROG1left, PROG1right)) :: +rest671)) => let val result = MlyValue.TY (fn _ => let val (PROG as +PROG1) = PROG1 () + in (" ( "^PROG^" ) ") +end) + in ( LrTable.NT 16, ( result, PROG1left, PROG1right), rest671) +end +| ( 43, ( ( _, ( MlyValue.QUAL_ID QUAL_ID1, _, QUAL_ID1right)) :: ( _ +, ( MlyValue.TY TY1, TY1left, _)) :: rest671)) => let val result = +MlyValue.TY (fn _ => let val (TY as TY1) = TY1 () + val (QUAL_ID as QUAL_ID1) = QUAL_ID1 () + in (TY^" "^QUAL_ID) +end) + in ( LrTable.NT 16, ( result, TY1left, QUAL_ID1right), rest671) +end +| ( 44, ( ( _, ( MlyValue.QUAL_ID QUAL_ID1, QUAL_ID1left, +QUAL_ID1right)) :: rest671)) => let val result = MlyValue.TY (fn _ => + let val (QUAL_ID as QUAL_ID1) = QUAL_ID1 () + in (QUAL_ID) +end) + in ( LrTable.NT 16, ( result, QUAL_ID1left, QUAL_ID1right), rest671) + +end +| ( 45, ( ( _, ( MlyValue.TY TY2, _, TY2right)) :: _ :: ( _, ( +MlyValue.TY TY1, TY1left, _)) :: rest671)) => let val result = +MlyValue.TY (fn _ => let val TY1 = TY1 () + val TY2 = TY2 () + in (TY1^"*"^TY2) +end) + in ( LrTable.NT 16, ( result, TY1left, TY2right), rest671) +end +| ( 46, ( ( _, ( MlyValue.TY TY2, _, TY2right)) :: _ :: ( _, ( +MlyValue.TY TY1, TY1left, _)) :: rest671)) => let val result = +MlyValue.TY (fn _ => let val TY1 = TY1 () + val TY2 = TY2 () + in (TY1 ^ " -> " ^ TY2) +end) + in ( LrTable.NT 16, ( result, TY1left, TY2right), rest671) +end +| ( 47, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: _ :: ( _, ( +MlyValue.LABEL LABEL1, _, _)) :: _ :: ( _, ( MlyValue.RECORD_LIST +RECORD_LIST1, RECORD_LIST1left, _)) :: rest671)) => let val result = +MlyValue.RECORD_LIST (fn _ => let val (RECORD_LIST as RECORD_LIST1) = + RECORD_LIST1 () + val (LABEL as LABEL1) = LABEL1 () + val (TY as TY1) = TY1 () + in (RECORD_LIST^","^LABEL^":"^TY) +end) + in ( LrTable.NT 7, ( result, RECORD_LIST1left, TY1right), rest671) + +end +| ( 48, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: _ :: ( _, ( +MlyValue.LABEL LABEL1, LABEL1left, _)) :: rest671)) => let val result + = MlyValue.RECORD_LIST (fn _ => let val (LABEL as LABEL1) = LABEL1 + () + val (TY as TY1) = TY1 () + in (LABEL^":"^TY) +end) + in ( LrTable.NT 7, ( result, LABEL1left, TY1right), rest671) +end +| ( 49, ( ( _, ( MlyValue.ID ID1, ID1left, ID1right)) :: rest671)) => + let val result = MlyValue.QUAL_ID (fn _ => let val (ID as ID1) = +ID1 () + in ((fn (a,_) => a) ID) +end) + in ( LrTable.NT 6, ( result, ID1left, ID1right), rest671) +end +| ( 50, ( ( _, ( MlyValue.QUAL_ID QUAL_ID1, _, QUAL_ID1right)) :: ( _ +, ( MlyValue.IDDOT IDDOT1, IDDOT1left, _)) :: rest671)) => let val +result = MlyValue.QUAL_ID (fn _ => let val (IDDOT as IDDOT1) = IDDOT1 + () + val (QUAL_ID as QUAL_ID1) = QUAL_ID1 () + in (IDDOT^QUAL_ID) +end) + in ( LrTable.NT 6, ( result, IDDOT1left, QUAL_ID1right), rest671) +end +| ( 51, ( ( _, ( MlyValue.ID ID1, ID1left, ID1right)) :: rest671)) => + let val result = MlyValue.LABEL (fn _ => let val (ID as ID1) = ID1 + () + in ((fn (a,_) => a) ID) +end) + in ( LrTable.NT 3, ( result, ID1left, ID1right), rest671) +end +| ( 52, ( ( _, ( MlyValue.INT INT1, INT1left, INT1right)) :: rest671) +) => let val result = MlyValue.LABEL (fn _ => let val (INT as INT1) + = INT1 () + in (INT) +end) + in ( LrTable.NT 3, ( result, INT1left, INT1right), rest671) +end +| ( 53, ( ( _, ( MlyValue.ID ID1, _, ID1right)) :: ( _, ( _, +PREC_TAG1left, _)) :: rest671)) => let val result = +MlyValue.G_RULE_PREC (fn _ => let val (ID as ID1) = ID1 () + in (SOME (symbolMake ID)) +end) + in ( LrTable.NT 11, ( result, PREC_TAG1left, ID1right), rest671) +end +| ( 54, ( rest671)) => let val result = MlyValue.G_RULE_PREC (fn _ + => (NONE)) + in ( LrTable.NT 11, ( result, defaultPos, defaultPos), rest671) +end +| _ => raise (mlyAction i392) +end +val void = MlyValue.VOID +val extract = fn a => (fn MlyValue.BEGIN x => x +| _ => let exception ParseInternal + in raise ParseInternal end) a () +end +end +structure Tokens : Mlyacc_TOKENS = +struct +type svalue = ParserData.svalue +type ('a,'b) token = ('a,'b) Token.token +fun ARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,( +ParserData.MlyValue.VOID,p1,p2)) +fun ASTERISK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,( +ParserData.MlyValue.VOID,p1,p2)) +fun BLOCK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,( +ParserData.MlyValue.VOID,p1,p2)) +fun BAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,( +ParserData.MlyValue.VOID,p1,p2)) +fun CHANGE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,( +ParserData.MlyValue.VOID,p1,p2)) +fun COLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,( +ParserData.MlyValue.VOID,p1,p2)) +fun COMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,( +ParserData.MlyValue.VOID,p1,p2)) +fun DELIMITER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,( +ParserData.MlyValue.VOID,p1,p2)) +fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,( +ParserData.MlyValue.VOID,p1,p2)) +fun FOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,( +ParserData.MlyValue.VOID,p1,p2)) +fun HEADER (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,( +ParserData.MlyValue.HEADER (fn () => i),p1,p2)) +fun ID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,( +ParserData.MlyValue.ID (fn () => i),p1,p2)) +fun IDDOT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,( +ParserData.MlyValue.IDDOT (fn () => i),p1,p2)) +fun PERCENT_HEADER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,( +ParserData.MlyValue.VOID,p1,p2)) +fun INT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,( +ParserData.MlyValue.INT (fn () => i),p1,p2)) +fun KEYWORD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,( +ParserData.MlyValue.VOID,p1,p2)) +fun LBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,( +ParserData.MlyValue.VOID,p1,p2)) +fun LPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,( +ParserData.MlyValue.VOID,p1,p2)) +fun NAME (p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,( +ParserData.MlyValue.VOID,p1,p2)) +fun NODEFAULT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,( +ParserData.MlyValue.VOID,p1,p2)) +fun NONTERM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,( +ParserData.MlyValue.VOID,p1,p2)) +fun NOSHIFT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,( +ParserData.MlyValue.VOID,p1,p2)) +fun OF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,( +ParserData.MlyValue.VOID,p1,p2)) +fun PERCENT_EOP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,( +ParserData.MlyValue.VOID,p1,p2)) +fun PERCENT_PURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,( +ParserData.MlyValue.VOID,p1,p2)) +fun PERCENT_POS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,( +ParserData.MlyValue.VOID,p1,p2)) +fun PERCENT_ARG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,( +ParserData.MlyValue.VOID,p1,p2)) +fun PERCENT_TOKEN_SIG_INFO (p1,p2) = Token.TOKEN ( +ParserData.LrTable.T 27,(ParserData.MlyValue.VOID,p1,p2)) +fun PREC (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,( +ParserData.MlyValue.PREC (fn () => i),p1,p2)) +fun PREC_TAG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,( +ParserData.MlyValue.VOID,p1,p2)) +fun PREFER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,( +ParserData.MlyValue.VOID,p1,p2)) +fun PROG (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,( +ParserData.MlyValue.PROG (fn () => i),p1,p2)) +fun RBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,( +ParserData.MlyValue.VOID,p1,p2)) +fun RPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,( +ParserData.MlyValue.VOID,p1,p2)) +fun SUBST (p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,( +ParserData.MlyValue.VOID,p1,p2)) +fun START (p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,( +ParserData.MlyValue.VOID,p1,p2)) +fun TERM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,( +ParserData.MlyValue.VOID,p1,p2)) +fun TYVAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,( +ParserData.MlyValue.TYVAR (fn () => i),p1,p2)) +fun VERBOSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,( +ParserData.MlyValue.VOID,p1,p2)) +fun VALUE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,( +ParserData.MlyValue.VOID,p1,p2)) +fun UNKNOWN (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,( +ParserData.MlyValue.UNKNOWN (fn () => i),p1,p2)) +fun BOGUS_VALUE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,( +ParserData.MlyValue.VOID,p1,p2)) +end +end diff --git a/lang/mlton/files/yacc.lex.sml b/lang/mlton/files/yacc.lex.sml new file mode 100644 index 000000000000..6c78e2b26cb0 --- /dev/null +++ b/lang/mlton/files/yacc.lex.sml @@ -0,0 +1,901 @@ +type int = Int.int + +functor LexMLYACC(structure Tokens : Mlyacc_TOKENS + structure Hdr : HEADER (* = Header *) + where type prec = Header.prec + and type inputSource = Header.inputSource) : ARG_LEXER += + struct + structure UserDeclarations = + struct +(* Modified by mfluet@acm.org on 2005-8-01. + * Update with SML/NJ 110.55+. + *) +(* Modified by sweeks@acm.org on 2000-8-24. + * Ported to MLton. + *) + +(* ML-Yacc Parser Generator (c) 1989 Andrew W. Appel, David R. Tarditi + + yacc.lex: Lexer specification + *) + +structure Tokens = Tokens +type svalue = Tokens.svalue +type pos = int +type ('a,'b) token = ('a,'b) Tokens.token +type lexresult = (svalue,pos) token + +type lexarg = Hdr.inputSource +type arg = lexarg + +open Tokens +val error = Hdr.error +val lineno = Hdr.lineno +val text = Hdr.text + +val pcount: int ref = ref 0 +val commentLevel: int ref = ref 0 +val actionstart: int ref = ref 0 + +val eof = fn i => (if (!pcount)>0 then + error i (!actionstart) + " eof encountered in action beginning here !" + else (); EOF(!lineno,!lineno)) + +val Add = fn s => (text := s::(!text)) + + +local val dict = [("%prec",PREC_TAG),("%term",TERM), + ("%nonterm",NONTERM), ("%eop",PERCENT_EOP),("%start",START), + ("%prefer",PREFER),("%subst",SUBST),("%change",CHANGE), + ("%keyword",KEYWORD),("%name",NAME), + ("%verbose",VERBOSE), ("%nodefault",NODEFAULT), + ("%value",VALUE), ("%noshift",NOSHIFT), + ("%header",PERCENT_HEADER),("%pure",PERCENT_PURE), + ("%token_sig_info",PERCENT_TOKEN_SIG_INFO), + ("%arg",PERCENT_ARG), + ("%pos",PERCENT_POS)] +in +fun lookup (s,left,right) = let + fun f ((a,d)::b) = if a=s then d(left,right) else f b + | f nil = UNKNOWN(s,left,right) + in + f dict + end +end + +fun inc (ri as ref i : int ref) = (ri := i+1) +fun dec (ri as ref i : int ref) = (ri := i-1) + +end (* end of user routines *) +exception LexError (* raised if illegal leaf action tried *) +structure Internal = + struct + +datatype yyfinstate = N of int +type statedata = {fin : yyfinstate list, trans: string} +(* transition & final state table *) +val tab = let +val s = [ + (0, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (1, +"\015\015\015\015\015\015\015\015\015\015\022\015\015\021\015\015\ +\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\ +\\015\015\015\015\015\019\015\015\017\015\015\015\015\015\015\015\ +\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\ +\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\ +\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\ +\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\ +\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\ +\\015" +), + (3, +"\023\023\023\023\023\023\023\023\023\066\069\023\023\068\023\023\ +\\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\ +\\066\023\023\023\023\046\023\044\042\023\041\023\040\038\023\023\ +\\036\036\036\036\036\036\036\036\036\036\035\023\023\023\023\023\ +\\023\027\027\027\027\027\027\027\027\027\027\027\027\027\027\027\ +\\027\027\027\027\027\027\027\027\027\027\027\023\023\023\023\023\ +\\023\027\027\027\027\027\032\027\027\027\027\027\027\027\027\030\ +\\027\027\027\027\027\027\027\027\027\027\027\026\025\024\023\023\ +\\023" +), + (5, +"\070\070\070\070\070\070\070\070\070\070\022\070\070\075\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070\070\074\070\070\070\070\070\072\071\070\070\070\070\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070" +), + (7, +"\076\076\076\076\076\076\076\076\076\078\022\076\076\080\076\076\ +\\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\ +\\078\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\ +\\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\ +\\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\ +\\076\076\076\076\076\076\076\076\076\076\076\076\077\076\076\076\ +\\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\ +\\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\ +\\076" +), + (9, +"\081\081\081\081\081\081\081\081\081\081\022\081\081\075\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\085\084\082\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081" +), + (11, +"\087\087\087\087\087\087\087\087\087\087\095\087\087\094\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087\087\093\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\088\087\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087" +), + (13, +"\096\096\096\096\096\096\096\096\096\096\022\096\096\075\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\100\099\097\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096" +), + (15, +"\016\016\016\016\016\016\016\016\016\016\000\016\016\000\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016\016\016\016\016\000\016\016\016\016\016\016\016\016\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016" +), + (17, +"\016\016\016\016\016\016\016\016\016\016\000\016\016\000\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016\016\016\016\016\000\016\016\016\016\018\016\016\016\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\ +\\016" +), + (19, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (21, +"\000\000\000\000\000\000\000\000\000\000\022\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (27, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\028\000\000\000\000\000\000\029\000\ +\\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\000\ +\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\ +\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\028\ +\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\ +\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\ +\\000" +), + (30, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\028\000\000\000\000\000\000\029\000\ +\\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\000\ +\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\ +\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\028\ +\\000\028\028\028\028\028\031\028\028\028\028\028\028\028\028\028\ +\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\ +\\000" +), + (32, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\028\000\000\000\000\000\000\029\000\ +\\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\000\ +\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\ +\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\028\ +\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\033\ +\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\ +\\000" +), + (33, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\028\000\000\000\000\000\000\029\000\ +\\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\000\ +\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\ +\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\028\ +\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\ +\\028\028\034\028\028\028\028\028\028\028\028\000\000\000\000\000\ +\\000" +), + (36, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\037\037\037\037\037\037\037\037\037\037\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (38, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (42, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\043\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (44, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\045\000\000\000\000\000\000\000\000\ +\\045\045\045\045\045\045\045\045\045\045\000\000\000\000\000\000\ +\\000\045\045\045\045\045\045\045\045\045\045\045\045\045\045\045\ +\\045\045\045\045\045\045\045\045\045\045\045\000\000\000\000\045\ +\\000\045\045\045\045\045\045\045\045\045\045\045\045\045\045\045\ +\\045\045\045\045\045\045\045\045\045\045\045\000\000\000\000\000\ +\\000" +), + (46, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\065\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\047\047\047\047\047\061\047\053\047\ +\\047\047\048\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (47, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\047\ +\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (48, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\047\047\049\047\047\047\047\047\047\ +\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (49, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\050\047\047\047\047\047\047\047\047\ +\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (50, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\047\051\047\047\047\047\047\047\047\ +\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (51, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\047\ +\\047\047\047\047\052\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (53, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\054\ +\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (54, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\055\047\ +\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (55, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\056\047\047\047\047\047\047\047\047\047\047\047\047\047\047\ +\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (56, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\047\ +\\047\047\047\057\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (57, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\047\ +\\047\047\047\058\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (58, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\059\ +\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (59, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\060\047\047\047\047\047\047\047\047\047\047\047\047\ +\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (61, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\062\047\047\047\047\047\047\047\047\047\047\ +\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (62, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\063\047\047\047\047\047\047\047\047\047\ +\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (63, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\ +\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\047\ +\\047\047\047\047\064\047\047\047\047\047\047\000\000\000\000\000\ +\\000" +), + (66, +"\000\000\000\000\000\000\000\000\000\067\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\067\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (68, +"\000\000\000\000\000\000\000\000\000\000\069\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (70, +"\070\070\070\070\070\070\070\070\070\070\000\070\070\000\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070\070\000\070\070\070\070\070\000\000\070\070\070\070\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\ +\\070" +), + (72, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\073\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (78, +"\000\000\000\000\000\000\000\000\000\079\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\079\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (81, +"\081\081\081\081\081\081\081\081\081\081\000\081\081\000\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\000\000\000\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\ +\\081" +), + (82, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\083\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (85, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\086\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (87, +"\087\087\087\087\087\087\087\087\087\087\000\087\087\000\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087\087\000\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\000\087\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\ +\\087" +), + (88, +"\000\000\000\000\000\000\000\000\000\090\092\000\000\091\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\090\000\089\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (91, +"\000\000\000\000\000\000\000\000\000\000\092\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (94, +"\000\000\000\000\000\000\000\000\000\000\095\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (96, +"\096\096\096\096\096\096\096\096\096\096\000\096\096\000\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\000\000\000\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\ +\\096" +), + (97, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\098\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), + (100, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\101\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000" +), +(0, "")] +fun f x = x +val s = map f (rev (tl (rev s))) +exception LexHackingError +fun look ((j,x)::r, i) = if i = j then x else look(r, i) + | look ([], i) = raise LexHackingError +fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)} +in Vector.fromList(map g +[{fin = [], trans = 0}, +{fin = [], trans = 1}, +{fin = [], trans = 1}, +{fin = [], trans = 3}, +{fin = [], trans = 3}, +{fin = [], trans = 5}, +{fin = [], trans = 5}, +{fin = [], trans = 7}, +{fin = [], trans = 7}, +{fin = [], trans = 9}, +{fin = [], trans = 9}, +{fin = [], trans = 11}, +{fin = [], trans = 11}, +{fin = [], trans = 13}, +{fin = [], trans = 13}, +{fin = [(N 11),(N 21)], trans = 15}, +{fin = [(N 11)], trans = 15}, +{fin = [(N 11),(N 21)], trans = 17}, +{fin = [(N 2),(N 11)], trans = 15}, +{fin = [(N 21)], trans = 19}, +{fin = [(N 14)], trans = 0}, +{fin = [(N 19),(N 21)], trans = 21}, +{fin = [(N 19)], trans = 0}, +{fin = [(N 100)], trans = 0}, +{fin = [(N 42),(N 100)], trans = 0}, +{fin = [(N 93),(N 100)], trans = 0}, +{fin = [(N 40),(N 100)], trans = 0}, +{fin = [(N 96),(N 100)], trans = 27}, +{fin = [(N 96)], trans = 27}, +{fin = [(N 83)], trans = 0}, +{fin = [(N 96),(N 100)], trans = 30}, +{fin = [(N 34),(N 96)], trans = 27}, +{fin = [(N 96),(N 100)], trans = 32}, +{fin = [(N 96)], trans = 33}, +{fin = [(N 38),(N 96)], trans = 27}, +{fin = [(N 91),(N 100)], trans = 0}, +{fin = [(N 86),(N 100)], trans = 36}, +{fin = [(N 86)], trans = 36}, +{fin = [(N 100)], trans = 38}, +{fin = [(N 49)], trans = 0}, +{fin = [(N 44),(N 100)], trans = 0}, +{fin = [(N 46),(N 100)], trans = 0}, +{fin = [(N 98),(N 100)], trans = 42}, +{fin = [(N 5)], trans = 0}, +{fin = [(N 79),(N 100)], trans = 44}, +{fin = [(N 79)], trans = 44}, +{fin = [(N 100)], trans = 46}, +{fin = [(N 76)], trans = 47}, +{fin = [(N 76)], trans = 48}, +{fin = [(N 76)], trans = 49}, +{fin = [(N 76)], trans = 50}, +{fin = [(N 76)], trans = 51}, +{fin = [(N 62),(N 76)], trans = 47}, +{fin = [(N 76)], trans = 53}, +{fin = [(N 76)], trans = 54}, +{fin = [(N 76)], trans = 55}, +{fin = [(N 76)], trans = 56}, +{fin = [(N 76)], trans = 57}, +{fin = [(N 76)], trans = 58}, +{fin = [(N 76)], trans = 59}, +{fin = [(N 72),(N 76)], trans = 47}, +{fin = [(N 76)], trans = 61}, +{fin = [(N 76)], trans = 62}, +{fin = [(N 76)], trans = 63}, +{fin = [(N 55),(N 76)], trans = 47}, +{fin = [(N 89)], trans = 0}, +{fin = [(N 31),(N 100)], trans = 66}, +{fin = [(N 31)], trans = 66}, +{fin = [(N 26),(N 100)], trans = 68}, +{fin = [(N 26)], trans = 0}, +{fin = [(N 109)], trans = 70}, +{fin = [(N 104)], trans = 0}, +{fin = [(N 102)], trans = 72}, +{fin = [(N 8)], trans = 0}, +{fin = [(N 106)], trans = 0}, +{fin = [(N 19)], trans = 21}, +{fin = [(N 162)], trans = 0}, +{fin = [(N 160),(N 162)], trans = 0}, +{fin = [(N 158),(N 162)], trans = 78}, +{fin = [(N 158)], trans = 78}, +{fin = [(N 19),(N 162)], trans = 21}, +{fin = [(N 120)], trans = 81}, +{fin = [(N 111)], trans = 82}, +{fin = [(N 114)], trans = 0}, +{fin = [(N 111)], trans = 0}, +{fin = [(N 111)], trans = 85}, +{fin = [(N 117)], trans = 0}, +{fin = [(N 143)], trans = 87}, +{fin = [(N 135)], trans = 88}, +{fin = [(N 146)], trans = 0}, +{fin = [(N 155)], trans = 0}, +{fin = [(N 152)], trans = 91}, +{fin = [(N 152)], trans = 0}, +{fin = [(N 133)], trans = 0}, +{fin = [(N 140)], trans = 94}, +{fin = [(N 140)], trans = 0}, +{fin = [(N 131)], trans = 96}, +{fin = [(N 122)], trans = 97}, +{fin = [(N 125)], trans = 0}, +{fin = [(N 122)], trans = 0}, +{fin = [(N 122)], trans = 100}, +{fin = [(N 128)], trans = 0}]) +end +structure StartStates = + struct + datatype yystartstate = STARTSTATE of int + +(* start state definitions *) + +val A = STARTSTATE 3; +val CODE = STARTSTATE 5; +val COMMENT = STARTSTATE 9; +val EMPTYCOMMENT = STARTSTATE 13; +val F = STARTSTATE 7; +val INITIAL = STARTSTATE 1; +val STRING = STARTSTATE 11; + +end +type result = UserDeclarations.lexresult + exception LexerError (* raised if illegal leaf action tried *) +end + +type int = Int.int +fun makeLexer (yyinput: int -> string) = +let val yygone0:int= ~1 + val yyb = ref "\n" (* buffer *) + val yybl: int ref = ref 1 (*buffer length *) + val yybufpos: int ref = ref 1 (* location of next character to use *) + val yygone: int ref = ref yygone0 (* position in file of beginning of buffer *) + val yydone = ref false (* eof found yet? *) + val yybegin: int ref = ref 1 (*Current 'start state' for lexer *) + + val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) => + yybegin := x + +fun lex (yyarg as (inputSource)) = +let fun continue() : Internal.result = + let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0: int) = + let fun action (i: int,nil) = raise LexError + | action (i,nil::l) = action (i-1,l) + | action (i,(node::acts)::l) = + case node of + Internal.N yyk => + (let fun yymktext() = String.substring(!yyb,i0,i-i0) + val yypos: int = i0+ !yygone + open UserDeclarations Internal.StartStates + in (yybufpos := i; case yyk of + + (* Application actions *) + + 100 => let val yytext=yymktext() in UNKNOWN(yytext,!lineno,!lineno) end +| 102 => let val yytext=yymktext() in inc pcount; Add yytext; continue() end +| 104 => let val yytext=yymktext() in dec pcount; + if !pcount = 0 then + PROG (concat (rev (!text)),!lineno,!lineno) + else (Add yytext; continue()) end +| 106 => let val yytext=yymktext() in Add yytext; YYBEGIN STRING; continue() end +| 109 => let val yytext=yymktext() in Add yytext; continue() end +| 11 => let val yytext=yymktext() in Add yytext; continue() end +| 111 => let val yytext=yymktext() in Add yytext; continue() end +| 114 => let val yytext=yymktext() in Add yytext; dec commentLevel; + if !commentLevel=0 + then BOGUS_VALUE(!lineno,!lineno) + else continue() + end +| 117 => let val yytext=yymktext() in Add yytext; inc commentLevel; continue() end +| 120 => let val yytext=yymktext() in Add yytext; continue() end +| 122 => (continue()) +| 125 => (dec commentLevel; + if !commentLevel=0 then YYBEGIN A else (); + continue ()) +| 128 => (inc commentLevel; continue()) +| 131 => (continue()) +| 133 => let val yytext=yymktext() in Add yytext; YYBEGIN CODE; continue() end +| 135 => let val yytext=yymktext() in Add yytext; continue() end +| 14 => (YYBEGIN A; HEADER (concat (rev (!text)),!lineno,!lineno)) +| 140 => let val yytext=yymktext() in Add yytext; error inputSource (!lineno) "unclosed string"; + inc lineno; YYBEGIN CODE; continue() end +| 143 => let val yytext=yymktext() in Add yytext; continue() end +| 146 => let val yytext=yymktext() in Add yytext; continue() end +| 152 => let val yytext=yymktext() in Add yytext; inc lineno; YYBEGIN F; continue() end +| 155 => let val yytext=yymktext() in Add yytext; YYBEGIN F; continue() end +| 158 => let val yytext=yymktext() in Add yytext; continue() end +| 160 => let val yytext=yymktext() in Add yytext; YYBEGIN STRING; continue() end +| 162 => let val yytext=yymktext() in Add yytext; error inputSource (!lineno) "unclosed string"; + YYBEGIN CODE; continue() end +| 19 => let val yytext=yymktext() in Add yytext; inc lineno; continue() end +| 2 => let val yytext=yymktext() in Add yytext; YYBEGIN COMMENT; commentLevel := 1; + continue() before YYBEGIN INITIAL end +| 21 => let val yytext=yymktext() in Add yytext; continue() end +| 26 => (inc lineno; continue ()) +| 31 => (continue()) +| 34 => (OF(!lineno,!lineno)) +| 38 => (FOR(!lineno,!lineno)) +| 40 => (LBRACE(!lineno,!lineno)) +| 42 => (RBRACE(!lineno,!lineno)) +| 44 => (COMMA(!lineno,!lineno)) +| 46 => (ASTERISK(!lineno,!lineno)) +| 49 => (ARROW(!lineno,!lineno)) +| 5 => (YYBEGIN EMPTYCOMMENT; commentLevel := 1; continue()) +| 55 => (PREC(Hdr.LEFT,!lineno,!lineno)) +| 62 => (PREC(Hdr.RIGHT,!lineno,!lineno)) +| 72 => (PREC(Hdr.NONASSOC,!lineno,!lineno)) +| 76 => let val yytext=yymktext() in lookup(yytext,!lineno,!lineno) end +| 79 => let val yytext=yymktext() in TYVAR(yytext,!lineno,!lineno) end +| 8 => let val yytext=yymktext() in Add yytext; YYBEGIN COMMENT; commentLevel := 1; + continue() before YYBEGIN CODE end +| 83 => let val yytext=yymktext() in IDDOT(yytext,!lineno,!lineno) end +| 86 => let val yytext=yymktext() in INT (yytext,!lineno,!lineno) end +| 89 => (DELIMITER(!lineno,!lineno)) +| 91 => (COLON(!lineno,!lineno)) +| 93 => (BAR(!lineno,!lineno)) +| 96 => let val yytext=yymktext() in ID ((yytext,!lineno),!lineno,!lineno) end +| 98 => (pcount := 1; actionstart := (!lineno); + text := nil; YYBEGIN CODE; continue() before YYBEGIN A) +| _ => raise Internal.LexerError + + ) end ) + + val {fin,trans} = Vector.sub (Internal.tab, s) + val NewAcceptingLeaves = fin::AcceptingLeaves + in if l = !yybl then + if trans = #trans(Vector.sub(Internal.tab,0)) + then action(l,NewAcceptingLeaves +) else let val newchars= if !yydone then "" else yyinput 1024 + in if (String.size newchars)=0 + then (yydone := true; + if (l=i0) then UserDeclarations.eof yyarg + else action(l,NewAcceptingLeaves)) + else (if i0=l then yyb := newchars + else yyb := String.substring(!yyb,i0,l-i0)^newchars; + yygone := !yygone+i0; + yybl := String.size (!yyb); + scan (s,AcceptingLeaves,l-i0,0)) + end + else let val NewChar = Char.ord (CharVector.sub (!yyb,l)) + val NewChar = if NewChar<128 then NewChar else 128 + val NewState = Char.ord (CharVector.sub (trans,NewChar)) + in if NewState=0 then action(l,NewAcceptingLeaves) + else scan(NewState,NewAcceptingLeaves,l+1,i0) + end + end +(* + val start= if String.substring(!yyb,!yybufpos-1,1)="\n" +then !yybegin+1 else !yybegin +*) + in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos) + end +in continue end + in lex + end +end diff --git a/lang/mlton/pkg-plist b/lang/mlton/pkg-plist index 619539e9d99f..098b77956aab 100644 --- a/lang/mlton/pkg-plist +++ b/lang/mlton/pkg-plist @@ -116,6 +116,12 @@ lib/mlton/self/libgdtoa.a lib/mlton/self/libmlton-gdb.a lib/mlton/self/libmlton.a lib/mlton/self/sizes +%%MINGW32CROSS%%lib/mlton/mingw32/constants +%%MINGW32CROSS%%lib/mlton/mingw32/include/c-types.h +%%MINGW32CROSS%%lib/mlton/mingw32/libgdtoa.a +%%MINGW32CROSS%%lib/mlton/mingw32/libmlton-gdb.a +%%MINGW32CROSS%%lib/mlton/mingw32/libmlton.a +%%MINGW32CROSS%%lib/mlton/mingw32/sizes lib/mlton/sml/basis/Makefile lib/mlton/sml/basis/README lib/mlton/sml/basis/arrays-and-vectors/array-slice.sig @@ -162,6 +168,7 @@ lib/mlton/sml/basis/config/c/sys-types.sml lib/mlton/sml/basis/config/c/sys-word.sml lib/mlton/sml/basis/config/c/word-to-bool.sml lib/mlton/sml/basis/config/c/x86-freebsd/c-types.sml +%%MINGW32CROSS%%lib/mlton/sml/basis/config/c/x86-mingw/c-types.sml lib/mlton/sml/basis/config/choose-char.sml lib/mlton/sml/basis/config/choose-int.sml lib/mlton/sml/basis/config/choose-real.sml @@ -3102,6 +3109,7 @@ lib/mlton/world.mlton @dirrm lib/mlton/sml/basis/config/header @dirrm lib/mlton/sml/basis/config/default @dirrm lib/mlton/sml/basis/config/c/x86-freebsd +%%MINGW32CROSS%%@dirrm lib/mlton/sml/basis/config/c/x86-mingw @dirrm lib/mlton/sml/basis/config/c @dirrm lib/mlton/sml/basis/config/bind @dirrm lib/mlton/sml/basis/config @@ -3111,6 +3119,8 @@ lib/mlton/world.mlton @dirrm lib/mlton/sml @dirrm lib/mlton/self/include @dirrm lib/mlton/self +%%MINGW32CROSS%%@dirrm lib/mlton/mingw32/include +%%MINGW32CROSS%%@dirrm lib/mlton/mingw32 @dirrm lib/mlton/include/util @dirrm lib/mlton/include/platform @dirrm lib/mlton/include/gc